1.快速排序
快速排序是一种交换排序。
快速排序由C. A. R. Hoare在1962年提出。
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分:分割点左边都是比它小的数,右边都是比它大的数。
然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
详细的图解往往比大堆的文字更有说明力
下面上图说明一下,不过这个动态图略显复杂,我也看得晕晕的
2.废话不多说,直接上代码
1 # 递归实现 快排 2 def quickSort(arr): 3 if len(arr) <= 1: 4 return arr 5 mid = arr[len(arr) // 2] 6 left, right = [], [] 7 arr.remove(mid) 8 for item in arr: 9 if item >= mid: 10 right.append(item) 11 else: 12 left.append(item) 13 return quickSort(left) + [mid] + quickSort(right) 14 15 l2 =list(random.choices([x for x in range(100)],k=20)) 16 print(‘l2=‘,l2) 17 l2=quickSort(l2) 18 print(‘l2=‘,l2)
原文:https://www.cnblogs.com/jeffrey04118110/p/11784292.html