算法 - 快速排序
原理:
# 完成一轮交换 def sub_sort(lst, low, high): # 选定基准 x = lst[low] # low 向后,high 向前 while low < high: # 后面的数往前走 while lst[high] >= x and high > low: high -= 1 # 遇到小于x的数,向前甩 lst[low] = lst[high] # 前面的数往后走 while lst[low] < x and low < high: low += 1 # 遇到大于x的数,向后甩 lst[high] = lst[low] # 循环结束,将基准数放置在当前low的位置 lst[low] = x # 返回当前low的索引值 return low def quick(lst, low, high): # low 表示列表第一个元素索引,high表示最后一个元素索引 if low < high: key = sub_sort(lst, low, high) quick(lst, low, key-1) quick(lst, key+1, high) lst = [9,1,8,3,4,5,6,7,2] quick(lst, 0, len(lst)-1) print(lst) # [1, 2, 3, 4, 5, 6, 7, 8, 9]