思想:按顺序从前至后遍历整个列表,相邻两数比较,若不满足顺序,则交换
不断重复,完成排序
从小到大
# 使用随机数赋值列表 import random a = [] for i in range(10): a.append(random.randint(1, 100)) print(a) for i in range(len(a) - 1): k = 0 for j in range(len(a) - 1 - i): if a[j] > a[j + 1]: k = a[j] a[j] = a[j + 1] a[j + 1] = k print(a)
优化
# 使用随机数赋值列表 import random a = [] for i in range(10): a.append(random.randint(1, 100)) print(a) for i in range(len(a) - 1): b = 1 for j in range(len(a) - 1 - i): if a[j] > a[j + 1]: tmp = a[j] a[j] = a[j + 1] a[j + 1] = tmp b = 0 # 只要发生交换就变成0 print(f"第{j+1}轮比较结束后,列表变成\n{a}") if b: # 即未发生交换 print("列表已经有序!") break print(a)
从大到小
if a[j] > a[j + 1]:
改成
if a[j] < a[j + 1]:
使用内置函数
从小到大
a.sort()
从大到小
a.sort(reverse=True)
或者
a.sort()
a.reverse()