问题 单项选择题

按行优先顺序存储下三角矩阵


的非零元素,则计算非零元素aij(1≤j≤i≤n)的地址的公式为

A.LOC(aij)=LOC(a11)+i×(i+1)/2+j

B.LOCij=LOC(a11)+i×(i+1)/2+(j-1)

C.LOC(aij)=LOC(a11)+i×(i-1)/2+j

D.LOC(aij)=LOC(a11)+i×(i-1)/2+(j-1)

答案

参考答案:D

解析: 如果按行优先顺序列出下三角矩阵中的非零元素,得到如下序列A11,A21,A22,…An1,An2…Ann,把它顺序存储在内存中,第一行到第i行共有非零元素的个数为[i× (i-1)/2],因此非零元素Aij(1≤j≤i≤n)的地址的公式为LOC(Aij)=LOC(A11)+i×(i-1)/2+ (j-1)(此处假设每个元素只占一个存储单元)因此本题正确答案是选项D。实际上这相当于是个等差数列求和的问题。鉴于题目的特殊性,可以考虑用特例法来解,这就是令i=1,j=1,检验哪个选项是正确的。

单项选择题