-
如果单从执行效率上进行评估
- 比较不同算法对同一组输入的执行处理时间,即事后统计法
- 缺点:执行时间严格依赖于硬件以及运行时各种不确定因素
- 必须编写相应的测试代码
- 测试数据的选择难以确保公正性
- 比较不同算法对同一组输入的执行处理时间,即事后统计法
-
从以下维度来评估算法的优劣
正确性、可读性、健壮性(对不合理的输入的反应能力和处理能力)
时间复杂度:估算程序指令的执行次数(执行时间)
空间复杂度:估算所需占用的存储空间
-
一般用大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
侵删。
判断算法的好坏
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 大 O 复杂度表示法 算法的执行效率,粗略地讲,就是算法代码执行的时间。但是,如何在不运行代码的情况下,用 “ 肉...
- 概念 时间复杂度:用来定性的描述算法的执行时间的一个函数,更类似于一个耗时的趋势,函数表示为: O(f(n)) 名...
- 总结 一、什么是复杂度分析?1.数据结构和算法解决是“如何让计算机更快时间、更省空间的解决问题”。2.因此需从执行...