第1页共5页实验三循环次序对程序性能的影响一、实验目的本次实验以矩阵相乘为例,观察循环次序对程序执行性能的影响。二、实验要求本次实验要求对6种不同循环次序的矩阵乘法代码在矩阵大小n从50到1000(以50为步长)的范围内,分别记录不同矩阵大小的CPU时间,并把实验结果以图表形式展现。三、实验步骤(部分)#defineCLOCKS_PER_SEC((clock_t)1000)intmain(){clock_tstart,finish;inti,j,k,n;floatsum;doublecounter;for(n=50;n1001;n+=50){int**A=newint*[n];for(i=0;in;i++){A[i]=newint[n];}///////////////////////////int**B=newint*[n];for(i=0;in;i++){B[i]=newint[n];}///////////////////////////int**C=newint*[n];for(i=0;in;i++)第2页共5页{C[i]=newint[n];}///////////////////////////start=clock();/*算法*/finish=clock();counter=(double)(finish-start)/CLOCKS_PER_SEC;cout当n=n时,时间为:countermsendl;}system(pausenull);return0;}四、实验结果(1)算法一(2)算法二第3页共5页(3)算法三(4)算法四(5)算法五第4页共5页(6)算法六五、结果分析1、数据列表如下:N50100150200250300350400450500算法一000.0160.0470.0780.1730.2430.360.5130.75算法二000.0310.0320.0630.1570.250.3280.4850.719算法三000.0460.0790.1870.2670.3750.5630.8751.265算法四00.0160.0310.0640.1560.2190.3750.5620.7971.377算法五00.0150.0310.0470.110.2030.2810.4060.5780.782算法六00.0150.0310.0470.0940.1820.2660.4060.5630.765N50100150200250300350400450500算法一1.0631.391.862.7973.6725.6417.1729.05811.05914.142算法二0.9371.2351.642.2823.1254.755.7667.3128.82911.891算法三2.1693.2834.4185.9077.71910.31312.75215.6118.93824.095算法四2.073.3274.4845.867.6110.09412.79115.93819.26124.594算法五1.0621.361.7032.1562.6563.263.8914.5945.4226.328算法六1.0161.3121.7042.1092.613.1413.8124.4535.2516.1412、数据散点图如下:第5页共5页3、不同的循环算法结构,其消耗的CPU时间不同。六、实验感想通过本次实验使我了解到,不同的算法结构其CPU消耗之间的差别有时候非常大。一个好的程序不仅仅要能够成功运行,还要保证其运行速度流畅,快速。