冒泡排序(Bubble Sort)
概念:
冒泡排序(Bubble Sort)是一种简单直观的排序算法。它重复地走访过要排序的元素列,依次比较两个相邻的元素,一层一层的将较大的元素往后移动,其现象和气泡在上升过程中慢慢变大类似,故称为冒泡排序。
分析:
1、每次遍历只排好最后一个数字,所以外层循环共需要n-1次;
2、每完成一次遍历后,下一次需要比较的数字会少一个,所以第i趟需要比较的次数为n-i-1,内层循环要遍历是n-i-1次
def bubble_sort(blist):
n = len(blist)
#外层循环控制总共需要遍历的次数,需要n-1次,range(n)不包含第n次
for i in range(n):
#内层循环控制每一次循环需要比较的次数,对于已经排好的数字不需要再比较了,则需比较n-i-1次
for j in range(0, n-i-1):
#比较两个元素,数字小的放在前面
if blist[j] > blist[j+1]:
blist[j], blist[j+1] = blist[j+1], blist[j]
return blist
arr = [11, 22, 100, 99, 89, 33, 66, 101, 2000, 0, -90]
bubble_sort(arr)
print('排序后:', bubble_sort(arr))
输出结果:
排序后: [-90, 0, 11, 22, 33, 66, 89, 99, 100, 101, 2000]