极短函数的执行时间

问题描述 投票:0回答:1

我需要显示一些搜索算法的执行时间。然而,当我使用startend_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;

}
search execution
1个回答
0
投票

你可以计算出 卑鄙 通过简单地多次执行算法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);
© www.soinside.com 2019 - 2024. All rights reserved.