小白向-用python实现快速排序
一、快速排序的定义
快速排序(Quick Sort)是一种分治算法,它通过选取一个基准值(pivot),将数组划分为两部分,递归排序,最终实现排序。
二、快速排序的发展历史
快速排序由 Tony Hoare 于 1960 年提出,是当今最常用的排序算法之一,广泛应用于计算机科学领域。
三、快速排序的排序过程
- 选取一个基准元素(通常是中间值);
- 将数组分成小于基准值和大于基准值的两部分;
- 递归对子数组排序,最终合并。
四、快速排序的基本原理
利用分治策略,通过不断拆分数组并排序,最终使整个数组有序。
五、快速排序的特点
- 不稳定:排序过程中可能改变相等元素的顺序;
- 平均时间复杂度 O(n log n)。
六、快速排序的优点
- 速度快:在大多数情况下比 O(n²) 级别的排序更高效;
- 递归实现,代码简洁。
七、快速排序的缺点
- 最坏情况 O(n²);
- 递归调用可能导致栈溢出。
Python 代码实现
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = arr[len(arr) // 2]
left = [x for x in arr if x < pivot]
middle = [x for x in arr if x == pivot]
right = [x for x in arr if x > pivot]
return quick_sort(left) + middle + quick_sort(right)
print(quick_sort([10, 7, 8, 9, 1, 5]))