我在c ++中有一个嵌套的for循环:
for(i=0;i<10000000;i++)
{
for(j=0;j<999999;j++)
{
//execute something
}
}
我想知道:
答案 0 :(得分:2)
如果你只想要测量你可以使用的时间
#include <ctime>
int start_s=clock();
// code
int stop_s=clock();
cout << "time (in milis): " << (stop_s-start_s)/double(CLOCKS_PER_SEC)*1000;
但如果你想知道如果你需要更多ram或更多的cpu内核,这个运行时是否会更好:
简短回答:这取决于“//执行某事”块
答案很长: 它不直接取决于循环边界是什么,它只取决于你在嵌套循环中做了什么 这里有几个双循环示例来演示这个
请注意,核心数与运行时间无关,因为默认情况下代码未并行化
sum = 0;
for(i=0;i<10000000;i++)
for(j=0;j<999999;j++)
sum+=1;
int arr[10000000][999999];
arr[0][0] = 0;
for(i=1;i<10000000;i++)
for(j=1;j<999999;j++)
arr[i][j]=arr[i-1][j-1];
for(i=0;i<10000000;i++)
for(j=0;j<999999;j++)
cout << "yes";
ofstream file;
file.open ("out.txt");
for(i=0;i<10000000;i++)
for(j=0;j<999999;j++)
file << "Writing to the file.\n";