| 
 
| 我的程序由于for循环过多而导致速度很慢,求高手帮忙优化啊! 原代码比较复杂,我已经将其简化如下:
 int width = 8000;
 int cell[4][4], p[4][8000];//p中各个元素的值或为0或为1
 int i, j, r = 2;
 for(i=0; i<(4+1)/2; i++)
 {
 for(j=i; j<(4+1)/2; j++)
 {
 if ( ((i-r)*(i-r)+(j-r)*(j-r)) < (r+0.5)*(r+0.5) )
 {
 cell[i][j]         = 1;
 cell[i][4-1-j] = 1;
 cell[j][i]         = 1;
 cell[j][4-1-i] = 1;
 cell[4-1-i][j] = 1;
 cell[4-1-i][4-1-j] = 1;
 cell[4-1-j][i] = 1;
 cell[4-1-j][4-1-i] = 1;
 }
 }
 }
 int n = 0;
 for(int k = 0; k < 8000; k++)
 {
 n = 0;
 for(i = 0; i < 4; i++)
 for(j = 0; j < 4; j++)
 {
 if(cell[i][j] != 0 && p[i][k] != 0)
 n++;
 }
 //后面还有类似的for循环,且会对cell的值做修改
 }
 | 
 |