冒泡排序
冒泡排序是一种基础的排序方法,它就是元素两两对比,谁大谁就往后移动,直到最大的元素排在最后,接着再循环一趟,从头开始两两对比,但是上一次排序出的最大元素就不再比较了(如图中黄色柱子部分),重复循环,直至整个列表完成排序工作。
代码如下:
def bubble_sort(li):
for j in range(0 , len(li) - 1): # 外层循环
count = 0 # 设定一个标识
for i in range(len(li) - 1 - j): # 内层循环
if li[i] > li[i+1]:
li[i] , li[i+1] = li[i+1] , li[i]
count += 1 # 内层循环发生变化,则标识改变
if count == 0: # 标识不变说明已经排序到最优
return li
if __name__ == '__main__':
li = [31, 42, 24, 56, 75, 51, 22, 65, 47, 87]
bubble_sort(li)
print(li)