2026年技术级面试题及答案.docxVIP

  • 0
  • 0
  • 约4.62千字
  • 约 14页
  • 2026-03-25 发布于福建
  • 举报

第PAGE页共NUMPAGES页

2026年技术级面试题及答案

一、编程语言与数据结构(共5题,每题10分,总分50分)

1.题目:

请用Python实现一个函数,输入一个非负整数`n`,返回其二进制表示中`1`的个数。例如,输入`5`(二进制`101`),返回`2`。

答案:

python

defcount_bits(n):

count=0

whilen:

count+=n1

n=1

returncount

解析:

使用位运算,每次与`1`进行``操作,统计最低位的`1`的个数,然后右移一位继续统计,直到`n`为`0`。时间复杂度为`O(logn)`。

2.题目:

请解释快速排序和归并排序的时间复杂度,并说明在什么情况下选择哪种排序更合适。

答案:

-快速排序:

-平均时间复杂度:`O(nlogn)`,最坏情况`O(n^2)`(当数组已排序或逆序时)。

-空间复杂度:`O(logn)`(递归栈深度)。

-适用场景:内存使用有限,数据量较大时优先选择,因无需额外空间。

-归并排序:

-时间复杂度:`O(nlogn)`(稳定)。

-空间复杂度:`O(n)`(需要额外空间存储临时数组)。

-适用场景:需要稳定排序,允许额外空间时(如链表排序)。

解析:

快速排序在平均情况下效率高,但稳定性差;归并排序稳定且适合链表,但

文档评论(0)

1亿VIP精品文档

相关文档