冒泡排序算法的流程如下:
比较相邻的元素。 如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。 在这一点,最后的元素应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
感谢原作者:咖喱py
链接:http://www.jianshu.com/p/c7705776f547
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
def bubble(a):
b = len(a) - 1 #一共要循环比较的次数是列表长度-1
while b : #如果次数为0退出循环
for i in range(b):#循环b次
j = i + 1#下一个项目元素
if a[i]>a[j]:#如果当前项目元素大于下一个元素
a[i], a[j] = a[j], a[i]#就交换位置(就把大的放在后面)
b -= 1 #循环次数减一(不用每次都全部遍历比较,\
#因为每次遍历都会产生一个最大值放在后面,
#这个值就不用再参加下次的比较了,
#也就是说遍历的次数可以逐次减一,
#提高程序效率。)
print(a)#循环比较结束,输出排序结果