冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
用一个动图来解释一下

代码实现:
def bubble_sort(lst):
for i in range(len(lst)-1):
for j in range(len(lst)-1-i):
if lst[j+1]>lst[j]:
lst[j],lst[j+1]=lst[j+1],lst[j]
lst=list(range(100))
import random
random.shuffle(lst)
print(lst)
bubble_sort(lst)
print(lst)
结果为:

注意:
i循环len(lst)-1次 可以这样理解 8个数只用排7次 最后一个数自动排好
j 循环的意义为:
由于最左侧的值已经有序,不再比较,每次都减少遍历次数
什么时候最快
当输入的数据已经是正序时(都已经是正序了,我还要你冒泡排序有何用啊)。

最低0.47元/天 解锁文章
1707

被折叠的 条评论
为什么被折叠?



