算法学习笔记之一段测试多重循环运行时间的小程序
1 #include <iostream> 2 #include <Windows.h> 3 #include <time.h> 4 5 int main() 6 { 7 int n=100; 8 int sum=0; 9 clock_t start,end; 10 double timeUsed; 11 start=clock(); 12 for (int i=0;i<n;i++) 13 { 14 for (int j=0;j<n;j++) 15 { 16 for (int k=0;k<n;k++) 17 { 18 for (int l=0;l<n;l++) 19 { 20 sum=i; 21 } 22 } 23 } 24 } 25 end=clock(); 26 timeUsed=(double)(end-start)/CLOCKS_PER_SEC; 27 printf("用时%f秒\n",timeUsed); 28 //输出结果是0.184秒 29 //可以想象,如果是1000的4重循环,那就是0.184/100 000 000*1 000 000 000 000=92/3分钟,需要半个小时 30 //n=1000的4重循环,每次仅仅是执行一个赋值语句的动作,就要耗时半个小时,可见这种O(n4)时间的算法效率有多差 31 }