设n阶下三角矩阵A[0..n-1,0..n-1]已压缩到一维数组B[1..m]中,若按行为主序存储,则A[i][j](i≥j)对应的B中存储位置为多少?给出推导过程
时间: 2023-06-03 17:05:53 浏览: 223
三角矩阵-数据结构 数组
我可以回答这个问题。根据下三角矩阵的定义,只有矩阵的下三角部分有非零元素,而上三角部分全是零。因此,只需要存储下三角部分中所有的非零元素即可。
对于矩阵中每一个下三角元素A[i][j](i≥j),可以通过如下公式将其存储到一维数组B中:
B[(i-1)*i/2 + j] = A[i][j]
其中,(i-1)*i/2是下标的累加和,表示前i-1行下三角部分中非零元素的总数,加上j即可表示该元素在一维数组中的位置。
因此,A[i][j](i≥j)对应的B中存储位置为B[(i-1)*i/2 + j]。
阅读全文