gpt4 book ai didi

c++ - 计算二分搜索的运行时间

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:14:57 24 4
gpt4 key购买 nike

以下二进制搜索程序使用 GetTickCount() 返回 0 毫秒的运行时间,无论在给定值列表中设置的搜索项有多大。

有没有其他方法可以获取运行时间进行比较?

代码如下:

#include <iostream>
#include <windows.h>
using namespace std;

int main(int argc, char **argv)
{
long int i = 1, max = 10000000;
long int *data = new long int[max];
long int initial = 1;
long int final = max, mid, loc = -5;
for(i = 1; i<=max; i++)
{
data[i] = i;
}

int range = final - initial + 1;
long int search_item = 8800000;

cout<<"Search Item :- "<<search_item<<"\n";

cout<<"-------------------Binary Search-------------------\n";
long int start = GetTickCount();
cout<<"Start Time : "<<start<<"\n";

while(initial<=final)
{
mid=(initial+final)/2;

if(data[mid]==search_item)
{
loc=mid;
break;
}

if(search_item<data[mid])
final=mid-1;

if(search_item>data[mid])
initial=mid+1;
}
long int end = GetTickCount();
cout<<"End Time : "<<end<<"\n";
cout << "time: " << double(end - start)<<" milliseconds \n";
if(loc==-5)
cout<<" Required number not found "<<endl;
else
cout<<" Required number is found at index "<<loc<<endl;
return 0;
}

最佳答案

您的代码如下所示:

int main()
{
// Some code...

while (some_condition)
{
// Some more code...
// Print timing result
return 0;
}
}

这就是您的代码打印零时间的原因,您只执行一次循环迭代然后退出程序。

关于c++ - 计算二分搜索的运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34980804/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com