实现思路: 使用双重for循环,内层变量为i, 外层为j,在内层循环中不断的比较相邻的两个值(i, i+1)的大小,如果i+1的值大于i的值,交换两者位置,每循环一次,外层的j增加1,等到j等于n-1的时候,结束循环
# 冒泡排序 def bubble(l): # 外层循环: 对应重复走访数据的次数 for i in range(len(l) - 1): # 内层循环: 对应每次走访数据时,相邻数据对比次数 for j in range(len(l) - i - 1): # 比较相邻数据 - 从小到大 if l[j] > l[j+1]: # 若前者大于后者,则交换 l[j], l[j+1] = l[j+1], l[j] print('重复走访数据次数:', i + 1) # 原始数据 - 学生身高 #values = [150,120,170,160,172,144,187,200,178,166] lst = [250, 300, 120, 144, 150, 160, 166, 170, 172, 178, 187, 200] print('原数据', lst) # 按照从小到打排序 bubble(lst) # 打印排序后结果 print('排序后', lst)