冒泡排序
1.列表每两个相邻的数,如果前面比后面大,则交换这两个数的位置;
2.一趟排序结束之后,则有序区增加一个数,无序区减少一个数。(比如第一趟结束之后,最大的数到了最后的位置);
3.如果遍历一趟都没有交换位置的动作发生,则排序完成。
代码实现:
1 def bubble_sort(li): 2 for i in range(len(li)-1): #第i趟 3 exchange = False 4 for j in range(len(li)-i-1): 5 if li[j] > li[j+1]: 6 li[j], li[j+1] = li[j+1], li[j] 7 exchange = True 8 if not exchange: 9 return 10 11 12 li = list(range(10000)) 13 random.shuffle(li) 14 15 bubble_sort(li)