4.2.1 存储结构 4.3.1 BF算法 4.3.2 KMP算法 4.3.3 BF vs KMP 4.4.1 二维数组 4.4.2 多维数组 4.5.1 特殊矩阵 4.5.2 三元组表 4.5.3 十字链表 4.6.1 广义表
设置行列数生成矩阵,切换存储方式观察内存排列差异
矩阵视图
💾内存排列
行优先地址公式
LOC(aij) = LOC(a00) + (i * n + j) * L
💡原理说明

二维数组在内存中必须以一维线性方式存储。行优先按从左到右、从上到下的顺序存储;列优先按从上到下、从左到右的顺序存储。 不同编程语言默认方式不同:C/C++/Python 使用行优先,Fortran/MATLAB 使用列优先。

存储方式地址计算公式典型语言
行优先LOC(aij) = base + (i * n + j) * LC, C++, Java, Python
列优先LOC(aij) = base + (j * m + i) * LFortran, MATLAB, R