【算法】算法的评估

1、算法的评价标准

(1)正确性
• 不含语法错误;
• 对输入数据能够得出满足要求的结果;
• 对一切合法输入,都可以得到符合要求的解。
(2)可读性
• 算法主要用于人们的阅读与交流,其次才是为计算机执行。
• 算法简单则程序结构也会简单,这便于程序调试。
(3)健壮性
• 算法应具有容错处理。
算法健壮性要求:
输入非法数据或错误操作给出提示,而不是中断程序执行;返回表示错误性质的值,以便程序进行处理。
(4)效率
• 每个问题有多个算法存在,每个算法的计算量都会不同。
• 在保证运算效率的前提下,力求算法简单。

【例】9个外观一样的金币.,其中一个赝品重量较轻。如果用天平秤鉴别真伪,一共需要称几次?
• 算法1:天平左边金币固定,丌断变换右边金币,最多称7次可鉴别出假币。
• 算法2:天平两边各一个金币,每次变换两边金币,最多称4次可鉴别出假币。
• 算法3::天平左边3个,右边3个,留下3个,最多称2次可以鉴别出假币。

2、算法性能的度量

• 从算法时间复杂度和空间复杂度评价算法优劣。

• 算法运行时间取决于以下因素:
(1)硬件速度
• 如CPU工作频率,CPU内核数,内存容量等。
(2)程序语言
• 编程语言级别越高,执行效率越低。
(3)编译质量
• 编译系统对程序优化较好时,生成的执行程序质量较高。
(4)问题规模
• 求100以内的素数不求10 000以内的素数执行时间必然丌同。
• 算法运行工作量叧不问题规模相关,或者说它是问题觃模的函数。

猜你喜欢

转载自blog.csdn.net/qq_44762986/article/details/108070314