测试算法的性能
很多时候我们需要对算法的性能进行测试,最简单的方式是看算法在特定的数据集上的执行时间,简单的测试算法性能的函数实现见testSort()。
【思想】:用clock_t计算某排序算法所需的时间,(endTime - startTime)/ CLOCKS_PER_SEC来表示执行了多少秒。
【关于宏CLOCKS_PER_SEC】:以下摘自百度百科,“CLOCKS_PER_SEC是标准c的time.h头函数中宏定义的一个常数,表示一秒钟内CPU运行的时钟周期数,用于将clock()函数的结果转化为以秒为单位的量,但是这个量的具体值是与操作系统相关的。”
【代码】:
SortTestHelper.h
#pragmaonce
#ifndefSELECTIONSORT_SORTTESTHELPER_H
#defineSELECTIONSORT_SORTTESTHELPER_H
#include<iostream>
#include<ctime>
#include<cassert>
usingnamespace std;
//把测试相关的函数放到新的命名空间里
namespaceSortTestHelper {
//返回一个随机生成的数组(测试暂定义为int*类型)
//生成有n个元素的随机数组,每个元素的范围为[rangeL, rangeR]
int*generateRandomArray(intn,intrangeL,intrangeR){
assert(rangeL <=rangeR);//确保左端点<=右端点
int *arr =newint[n];
srand(time(NULL));//将当前时间设置为随机种子