跳到正文
前端知识库
算法

复杂度与基础 高频追问 Q&A

A: 不是。复杂度描述增长趋势,实际耗时还受常数、语言和硬件影响。(深入阅读:复杂度分析方法与陷阱)

2 分钟

复杂度与基础 高频追问 Q&A

1. Q: 时间复杂度和实际耗时是一回事吗?

A: 不是。复杂度描述增长趋势,实际耗时还受常数、语言和硬件影响。(深入阅读:复杂度分析方法与陷阱

2. Q: 为什么忽略低阶项和常数项?

A: 当 n 足够大时,高阶项主导整体增长。(深入阅读:复杂度分析方法与陷阱

3. Q: 均摊复杂度怎么解释?

A: 多次操作平均后的成本,如动态数组扩容单次最坏 O(n),均摊 O(1)。(深入阅读:复杂度分析方法与陷阱

4. Q: 递归复杂度怎么估算?

A: 先写递推式,再用主定理或递推展开近似求解。(深入阅读:复杂度分析方法与陷阱

5. Q: 面试中复杂度答题顺序?

A: 先时间后空间,再说明最坏/平均/均摊并给出关键瓶颈。(深入阅读:复杂度与基础知识速览复杂度分析方法与陷阱

6. Q: 如何根据题目选择数据结构?

A: 先列出核心操作,再选择能把瓶颈降到目标复杂度的结构:判重用 Set,映射用 Map,动态最值用堆,层次关系用树,多对多关系用图。(深入阅读:数据结构选型速记

7. Q: 连续两段循环和嵌套循环怎么分析?

A: 连续执行取高阶项,嵌套执行通常相乘;例如 O(n) + O(n^2)O(n^2),两层各执行 n 次为 O(n^2)。(深入阅读:复杂度分析方法与陷阱