2026年华为技术研发部面试题目与解答.docxVIP

  • 0
  • 0
  • 约7.64千字
  • 约 22页
  • 2026-10-19 发布于福建
  • 举报

2026年华为技术研发部面试题目与解答.docx

第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)

1亿VIP精品文档

相关文档