排序过程:
一次比较两个元素,如果顺序错误就交换两个元素的位置,如果顺序没有错,则继续往下遍历,从头遍历到尾,每次的排序都会将最大值或者最小值找出来。重复这样的步骤直到排序完成。下面是python的实现
def bubble_sort(alist):
'''冒泡排序'''
n = len(alist)
#从头走到尾n-1次
for j in range(n-1):
count = 0
for i in range(0, n-1-j): # 如果i+1比i的值小,就交换,每次一把最大值冒到最后一个
# 从头走到尾,如果发现某次没有发生交换,直接结束
if alist[i] > alist[i+1]:
alist[i], alist[i+1] = alist[i+1], alist[i]
count += 1
if count == 0:
return