如何使用C计算数据结构中的行主要和列主要实现。我想知道正确的示例,而不是程序代码。
答案 0 :(得分:1)
在行主要元素中逐行遍历,而在列中,主要元素逐列遍历。
例如,详情请查看https://en.wikipedia.org/wiki/Row-_and_column-major_order
上面的数学表达式是: -
让我们考虑一个大小为m * n和size-of-int s字节的int数组
案例1:如果数组索引以 0 开始
在 RMO (行主要订单)中访问元素a[i][j]
,我们应该跨越i
行,每行包含等于列数和j
列的元素。因此,&a[i][j]=(i∗n+j)∗s+base
以及类似&a[i][j]=(j∗m+i)∗s+base
的数组存储在 CMO (列主要订单)中。
案例2:如果数组索引以 1 开始
RMO: &a[i][j]=((i−1)∗n+j−1)∗s+base
CMO: &a[i][j]=((j−1)∗m+i−1)∗s+base