"""
冒泡排序:由小到大依次排序
"""
import random
# 设定随机熵池 防止每次执行随机数不一致,不利于对比时间复杂度
random.seed(1100)
# 设置待排序列表的长度
num = 100
# 设定列表中内容的起始值
start_num = 100
lst1 = [random.randint(start_num, start_num + 2 * num) for _ in range(num)]
# 打印未排序列表
print(lst1)
# 方式一:n个元素需要比较n-1趟
n = 0 # 比较趟数
exchange = True # 冒泡优化,杜绝 5 6 7 9 8 这种只需要比较一趟的数据也冒泡n-1趟
count = 0 # 交换计数,无实际意义,只是为了比较
while n < len(lst1) and exchange: # 冒泡趟数
n += 1
exchange = False
for i in range(len(lst1) - n): # 每一趟中元素遍历
count += 1
if lst1[i] > lst1[i + 1]: # 交换
exchange = True
lst1[i], lst1[i + 1] = lst1[i + 1], lst1[i]
print(lst1)
print(count)
python 实现冒泡排序 --最优
最新推荐文章于 2023-08-01 16:30:55 发布