冒泡排序思路
列表每两个相邻的数,如果前边的比后边的大,那么交换这两个数......
# 冒泡简单版 # 时间复杂度:O(n*n) def bubble_sort(li): # i表示第i趟,共n-1趟 for i in range(len(li) - 1): # 第i趟,无序区范围0 --- (n-i-1) for j in range(len(li) - i - 1): if li[j] > li[j + 1]: li[j], li[j + 1] = li[j + 1], li[j] return li li = [8, 5, 7, 9, 4, 2, 6, 1, 3,-9,-7,-4] bubble_sort(li)
# 冒泡升级版 # 时间复杂度:O(n*n) def bubble_sort(li): for i in range(len(li) - 1): 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 if not exchange: return li li = [8, 5, 7, 9, 4, 2, 6, 1, 3, -9, -7, -4, -20] bubble_sort(li)