-
如果单从执行效率上进行评估
- 比较不同算法对同一组输入的执行处理时间,即事后统计法
- 缺点:执行时间严格依赖于硬件以及运行时各种不确定因素
- 必须编写相应的测试代码
- 测试数据的选择难以确保公正性
- 比较不同算法对同一组输入的执行处理时间,即事后统计法
-
从以下维度来评估算法的优劣
正确性、可读性、健壮性(对不合理的输入的反应能力和处理能力)
时间复杂度:估算程序指令的执行次数(执行时间)
空间复杂度:估算所需占用的存储空间
-
一般用大O表示法来描述复杂度,它表示的是数据规模n对应的复杂度
- 忽略常数、系数、低阶
- 对数阶一般忽略底数,无论底数,只要是对数就是logn
O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)- 可以借助函数生成工具对比复杂度的大小
- 斐波那契数递归调用算法时间复杂度为2^n,非递归算法时间复杂度为 n
侵删。
判断算法的好坏
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- 大 O 复杂度表示法 算法的执行效率,粗略地讲,就是算法代码执行的时间。但是,如何在不运行代码的情况下,用 “ 肉...
- 概念 时间复杂度:用来定性的描述算法的执行时间的一个函数,更类似于一个耗时的趋势,函数表示为: O(f(n)) 名...
- 总结 一、什么是复杂度分析?1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。2.因此需从执行...