迭代大方阵中每个小方块的更有效方法

时间:2017-04-10 11:00:13

标签: c arrays

我在前几个月通过高中课程学习C语言编码。最近有人向我提到,通常有一种方法可以提高代码的效率,我认为我的问题可以提高效率。我不确定如何,但我有预感,它可以更快。

我们给出了行和列大小为n的2D正方形整数数组。我们在2D方阵中有子行,行和列大小为s。我们总是可以假设s会均匀地划分n。我编写了以下代码来迭代每个子方案

目前我的代码看起来像这样:

int **grid;
int s, i, j, k, l;

// reading in inputs, other processing

for (i = 0; i < n; i += s) {
    for (j = 0; j < n; j += s) {
        for (k = 0; k < s; k++) {
            for (l = 0; l < s; l++) {
                printf("%d \n", grid[i + k][j + l]);
            }
        }
        printf("next subsquare: \n");
    }
}

正如你所看到的,我已经有4个嵌套for循环,我觉得以这种格式使用它有点麻烦。有一个更好的方法吗?稍后,我可能会对每个子方格进行求和,或者对每个子方格执行一些其他操作。

0 个答案:

没有答案