- 0
- 0
- 约7.64千字
- 约 22页
- 2026-10-19 发布于福建
- 举报
第PAGE页共NUMPAGES页
2026年华为技术研发部面试题目与解答
一、编程与算法(共5题,每题10分,总分50分)
1.题目:
编写一个函数,实现快速排序算法。输入一个整数数组,输出排序后的数组。要求:不得使用现成的排序库函数,并说明时间复杂度和空间复杂度。
答案与解析:
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)
解析:
快速排序的核心是分治思想。选择一个基准值(pivot),将数组分为三部分:小于基准值的、等于基准值的、大于基准值的。然后递归地对左右两部分进行排序。时间复杂度平均为O(nlogn),最坏情况为O(n2)(当数组已经有序时)。空间复杂度为O(logn),因为递归调用栈的深度为logn。
2.题目:
给定一个包含重复元素的数组,找出所有和为给定值的三元组。例如,输入数组`[1,-2,
原创力文档

文档评论(0)