python基础--快速排序

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)

猜你喜欢

转载自www.cnblogs.com/jeffrey04118110/p/11784292.html