34、实现快速排序。
快速排序简介
快速排序是一种通过递归工作的算法,其平均时间复杂度为 O(n log n) ,最坏情况复杂度为 O(n²) 。
工作原理
- 基本情况 :当序列中仅有一个元素时,与归并排序相同,无需进一步排序。
- 选择基准 :当序列中有多个元素时,随机选择一个元素作为基准(pivot)。
- 划分序列 :将序列拆分为三部分:
- 小于基准的元素
- 等于基准的元素
- 大于基准的元素 - 递归排序 :对小于和大于基准的元素序列进行递归排序。
- 合并结果 :最后输出排序后的小于基准的元素、等于基准的元素和排序后的大于基准的元素。
Python实现示例
import random
def quick_sort(arr):
if len(arr) <= 1:
return arr
pivot = random.choice(arr)
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)
35、通过修改快速排序算法来实现选择第 k 小元素的算法。
实现思路
当将序列按小于、等于和大于枢轴元素拆分后,若只关注最终会

最低0.47元/天 解锁文章
661

被折叠的 条评论
为什么被折叠?



