算法的性能标准和后期测试

一、算法的性能标准


(1)正确性 (Correctness) 算法应满足具体问题的需求。
(2)可读性(Readability) 算法应该容易阅读。以有利于阅读者对程序的理解。
(3)可使用性(Usability) 要求算法能够很方便的使用。
(4)效率(Efficiency)  效率指的是算法执行的时间和空间利用率。通常这两者与问题的规模有关。
(5)健壮性 (Robustness) 算法应具有容错处理的功能。当输入非法数据时,算法应对其作出反应,而不应产生莫名其妙的输出结果。
(6)简单性 (Simplicity) 算法所采用的数据结构和方法越简单越好。

二、算法的后期测试

对一个算法要作出全面的分析可分成两个阶段进行,即 事前分析事后测试
事前分析要求事前求出该算法的一个时间界限函数。
事后测试则要求在算法执行后通过算法执行的时间和实际占用空间的统计资料来分析。
事后分析要求在算法中的某些部位插装时间函数   time ( ),测定算法完成某一功能所花费时间。

计时程序如下所示:
    
      double start, stop;
      time(&start);	
      int k = selectSort (a, n);
      time(&stop);			
      double runTime = stop - start;
      cout << " " << n << " " << runTime << endl;

 
   

注意:事实上,算法运行时间要受输入规模、利用编译程序生成的目标代码的质量、计算机程序指令系统的品质和速度等制约。





你可能感兴趣的:(算法的性能标准,算法的后期测试)