我知道因为数组的内存中连续和等分的特点,所以对于任意一个二维数组int[][]
LOC(i,j)=LOC(0,0) + (b*i + j)L
LOC(0,0)是该二维数组的起始存储位置,b 是每行的长度,L 是每个数据元素的宽度
所以 get 和 set 的时间复杂度是一个常数时间 O(1)
但是对于锯齿数组
int[][] ja = new int[4][];
ja[0] = new int[6];
ja[1] = new int[4];
ja[2] = new int[4];
ja[3] = new int[5];
第二维度的长度并不固定,如果要计算出 LOC(i,j)是不是需要通过 sum 确定偏移量
这样对于锯齿数组的 get 和 set 是不是 O(i-1)?