解:由于C语言中数组的行、列下界均为0, 该数组行上界为5-1=4列上界为4-=3,所以该数 组的元素数目共有(4-0+1)(3-0+1)=5*4=20个。 又由于C语言采用行序为主序的存储方式则 有 LOC(a32)=LOC(a0o)+(in+j*k =2000+(3*4+2)*4=2056
解:由于C语言中数组的行、列下界均为0, 该数组行上界为5-1=4,列上界为4-l=3,所以该数 组的元素数目共有(4-0+1)*(3-0+1)=5*4=20个。 又由于C语言采用行序为主序的存储方式,则 有: LOC(a3,2 )=LOC(a0,0 )+(i*n+j)*k =2000+(3*4+2)*4=2056
5.1.3特殊矩阵的压缩存储 特殊矩阵是指非零元素或零元素的分布有一定规 律的矩阵,为了节省存储空间,特别是在高阶矩阵的情 况下,可以利用特殊矩阵的规律,对它们进行压缩存储, 也就是说,使多个相同的非零元素共享同一个存储单 元对零元素不分配存储空间。 特殊矩阵的主要形式有对称矩阵、对角矩阵等,它 们都是方阵,即行数和列数相同
5.1.3 特殊矩阵的压缩存储 特殊矩阵是指非零元素或零元素的分布有一定规 律的矩阵,为了节省存储空间,特别是在高阶矩阵的情 况下,可以利用特殊矩阵的规律,对它们进行压缩存储, 也就是说,使多个相同的非零元素共享同一个存储单 元,对零元素不分配存储空间。 特殊矩阵的主要形式有对称矩阵、对角矩阵等,它 们都是方阵,即行数和列数相同
1.对称矩阵的压缩存储 若一个n阶方阵A[m中的元素满足 a1=a1(0ijsn-1),则称其为n阶对称矩阵。 由于对称矩阵中的元素关于主对角线对称因此 在存储时可只存储对称矩阵中上三角或下三角中的 元素,使得对称的元素共享一个存储空间。这样,就 可以将n2个元素压缩存储到个元素的空间中。不失 一般性我们以行序为主序存储其下三角(包括对角 线)的元素
1. 对称矩阵的压缩存储 若 一 个 n 阶方阵 A[n][n] 中 的 元 素 满 足 ai,j=aj,i(0≤i,j≤n-1),则称其为n阶对称矩阵。 由于对称矩阵中的元素关于主对角线对称,因此 在存储时可只存储对称矩阵中上三角或下三角中的 元素,使得对称的元素共享一个存储空间。这样,就 可以将n 2个元素压缩存储到个元素的空间中。不失 一般性,我们以行序为主序存储其下三角(包括对角 线)的元素
n2个元素←→n(n+1)2个元素 A0.n1-1,0.n-1←→B[0.n(n+1)/2-1 aillil←→bk i(i+1) 2 +j iej iG +1)+i i<i 2
n 2个元素←→ n(n+1)/2个元素 A[0..n-1,0..n-1] ←→ B[0..n(n+1)/2-1] a[i][j] ←→ b[k] 2 i(i + 1) k= + j i≥j + i i<j 2 j(j + 1)
上三角矩阵: i*(2n-i+1) +i-jij时 2 n(n+ i>i时 2
上三角矩阵: 2 i *(2n − i + 1) 2 n(n + 1) k= + i – j i≤j时 i>j时