# 冒泡排序(bubble sort)
# 1、列表每两个相邻的数,如果前面比后面大,则交换这两个数
# 2、一趟排序完成后,则无序区减少一个数,有序区增加一个数
# 总结:总共有n个数(for只有n-1个下标),走n趟,最后一趟不用走(n-1),无序区的比较(因为是当前这个数和后一个数比较),不需要走到最后一个数,所以再次减一
import random
def bubble_sort(li):
for i in range(len(li) - 1): # 第i趟,从零开始
exchange = False
for j in range(len(li) - i - 1):
if li[j] > li[j + 1]:
li[j], li[j + 1] = li[j + 1], li[j]
exchange = True
print(li)
if not exchange:
return
li = [1, 3, 2, 4, 5, 6]
# li = [1, 2, 3, 4, 5, 6]
# li = [6, 5, 4, 3, 2, 1]
# li = [random.randint(0, 10000) for i in range(1000)]
print(li)
bubble_sort(li)
冒泡排序算法
最新推荐文章于 2024-09-27 11:17:47 发布