def bubblesort(num): for i in range(len(num) - 1): for j in range(len(num) - i -1): if num[j] > num[j + 1]: num[j],num[j + 1] = num[j + 1],num[j] return num lis = [4,2,7,33,6] print(bubblesort(lis)) 冒泡排序-优化 如果冒泡排序中执行一趟而没有交换,则列表已经是有序状态,可以直接结束算法
import random def bubblesort(num): for i in range(len(num) - 1): exchange = False # 默认没有交换 for j in range(len(num) - i -1): # 比较一趟 if num[j] > num[j + 1]: num[j],num[j + 1] = num[j + 1],num[j] exchange = True if not exchange: # 不交换了,证明是有序队列 break data = list(range(20)) random.shuffle(data) bubblesort(data) print(data)