search - 极短函数的执行时间
问题描述
我需要显示一些搜索算法的执行时间。但是,当我使用 start/end_t = clock() 时,由于精度低(即使是双精度型),它总是显示 0.00000
请告诉我如何显示这些运行时间。
int LinearSearch (int M[], int target, int size)
{
int k = 0;
for (k=0; k<size; k++)
{
if(M[k]==target)
{
return k;
}
//else return -1;
}
}
int LinearSentinelSearch (int M[],int target, int size)
{
int k = 0;
M[size]=target;
while (M[k] != target)
k++;
return k;
}
int binSearch(int List[], int Target, int Size)
{
int Mid;
int low = 0;
int high = Size -1;
int count=0;
int a;
while( low <= high)
{
Mid = (low + high) / 2;
if(List[Mid] == Target) return Mid;
else if( Target < List[Mid] )
high = Mid - 1;
else
low = Mid + 1;
}
return -1;
}
解决方案
您可以通过简单地多次执行算法N然后将总时间除以N来计算平均binSearch
执行时间。以您为例:
int i;
clock_t start, end;
start = clock();
for (i = 0 ; i < 1000 ; i++) {
binSearch(/* your actual parameters here */);
}
end = clock();
printf("Mean ticks to execute binSearch: %f\n", (end - start) / 1000.0);
推荐阅读
- firebase - Firebase Analytics (ARPPU) 已停止将 IAP 归因于用户
- javascript - 无法从 npm 下载 JavaScript API
- c - 我的字符串有隐藏字符并且比我肉眼看到的要长?
- rdf - 如何使用 jena 加载大型 hdt 文件
- javascript - 使用 NodeJs 将数据从 CSV 导入 Oracle 中的表
- java - JavaFX 从外部启用和禁用元素
- python - 使用 flask_sqlalchemy 在单个请求中添加关系和父级
- javascript - 如何在 Apache Server 上使用 ES6 模块?
- json - 是否可以使用 Swift/Codable 解码非同质数组?
- python - 如何格式化 AST 解析