- 1
- 0
- 约6.98千字
- 约 21页
- 2026-07-17 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年程序员面试算法题训练及答案
一、排序算法
共3题,每题10分
1.快速排序优化
给定一个包含重复元素的数组,实现快速排序,要求平均时间复杂度为O(nlogn),最坏情况下不退化。
答案与解析
python
defquick_sort(arr):
iflen(arr)=1:
returnarr
pivot=arr[len(arr)//2]
left=[xforxinarrifxpivot]
middle=[xforxinarrifx==pivot]
right=[xforxinarrifxpivot]
returnquick_sort(left)+middle+quick_sort(right)
解析:使用三路划分法(left,middle,right)避免重复元素导致性能退化。
2.堆排序实现
实现一个最小堆,并使用堆排序对数组进行升序排序。
答案与解析
python
defheapify(arr,n,i):
smallest=i
l=2i+1
r=2i+2
iflnandarr[l]arr[smallest]:
smallest=l
ifrnandarr[r]
原创力文档

文档评论(0)