- 0
- 0
- 约5.03千字
- 约 8页
- 2026-04-30 发布于四川
- 举报
|
要想游刃有余地解决今后你要面对的问题,光是熟知每种数据结构和算法的功能、特点、
时间空间复杂度,还是不够的。毕竟工程上的问题不是算法题。算法题的背景、条件、限
制都非常明确,我们只需要在规定的输入、输出下,找最优解就可以了。
而工程上的问题往往都比较开放,在选择数据结构和算法的时候,我们往往需要综合各种
因素,比如编码难度、成本、数据特征、数据规模等,最终选择一个工程的最合适
解,而非理论上的最优解。
为了让你能做到活学活用,在实际的软件开发中,不生搬硬套数据结构和算法,今天,我
们就聊一聊,在实际的软件开发中,如何权衡各种因素,合理地选择使用哪种数据结构和
算法?关于这个问题,我总结了六条经验。
1.时间、空间复杂度不能跟性能划等号
我们在学习每种数据结构和算法的时候,都详细分析了算法的时间复杂度、空间复杂度,
但是,在实际的软件开发中,复杂度不能与性能简单划等号,不能表示执行时间和内存消
耗的确切数据量。为什么这么说呢?有下面几点。
复杂度不是执行时间和内存消耗的精确值
在用大O表示法表示复杂度的时候,我们会忽略掉低阶、常数、系数,只保留高阶,并且
它的度量单位是语句的执行频度。每条语句的执行时间,并非是相同、确定的。
原创力文档

文档评论(0)