小编sli*_*eel的帖子

优化Conway在C中的生命游戏的邻居计数功能

在Conway的生命游戏实现中优化返回单元格邻居数量的函数时遇到一些麻烦.我正在努力学习C并且只是在编码方面做得更好.我不是很擅长识别潜在的优化,我花了很多时间在线阅读各种方法,但它并没有真正点击我.

具体来说,我试图弄清楚如何以最有效的方式展开这个嵌套for循环,但每次我尝试我只是让运行时更长.我包括该功能,我认为不需要任何其他上下文.感谢您提出的任何建议!

这是countNeighbors()函数的代码:

static int countNeighbors(board b, int x, int y)
{
   int n = 0;

   int x_left = max(0, x-1);
   int x_right = min(HEIGHT, x+2);
   int y_left = max(0, y-1);
   int y_right = min(WIDTH, y+2);

   int xx, yy;
   for (xx = x_left; xx < x_right; ++xx) {
       for (yy = y_left; yy < y_right; ++yy) {
           n += b[xx][yy];
       }
   }

   return n - b[x][y];
}
Run Code Online (Sandbox Code Playgroud)

c optimization for-loop

3
推荐指数
1
解决办法
385
查看次数

标签 统计

c ×1

for-loop ×1

optimization ×1