- 0
- 0
- 约3.53千字
- 约 6页
- 2026-07-20 发布于河北
- 举报
算法性能优化面试题(含详细真实面试答案)
一、基础核心原理题(必问)
1、算法时间复杂度、空间复杂度的核心定义是什么?面试中怎么快速分析?
参考答案:
时间复杂度就是用来衡量算法执行时间随数据量增长的变化趋势,不看具体执行次数,只看最高阶量级,忽略常数、低阶、系数。空间复杂度同理,衡量算法运行过程中额外开辟的内存空间大小,不计入输入数据本身的空间,只算临时变量、数组、递归栈等额外空间。
日常分析有固定套路:单层循环一般O(n),嵌套循环看层数,双层就是O(n2);二分、折半查找是O(logn);递归看分支和深度;哈希查找、数组随机访问是O(1)。
常见优先级:O(1)O(logn)O(n)O(nlogn)O(n2)O(2?)
面试加分点:工程中不仅看理论复杂度,还要看常数开销,比如同样O(n)的算法,数组遍历比链表遍历快很多,因为数组连续内存、缓存命中率更高。
2、为什么O(logn)的算法效率远高于O(n)?实际业务中体现在哪里?
参考答案:
核心是增长速度差异,n越大,差距越夸张。比如数据量100万时,O(n)需要遍历近百万次,而O(log?n)只需要大概20次。
业务中最典型的场景:有序数组二分查找、二叉搜索树查询、快速幂、归并排序/堆排序的nlogn复杂度。海量数据检索场景,线性遍历完全扛不住,只能用对数级复杂度算法。
3、最优、最坏、平均时间复杂度分
原创力文档

文档评论(0)