算法问题,20分
有一个a[n][n]三对角矩阵,将其三条对角线上的元素存于数组b[3n-2],使得b[k]=a[i][j];用i j表示k的下标变换公式
-1 0 1 2 3 4 j
0 * @ @ * * *
1 * @ @ @ * *
2 * * @ @ @ *
3 * * * @ @ @
4 * * * * @ @
i
如图假设存在,a[][-1]这一列,则得:
k = ((i*3 + (j+2)-j) -1) -1 = i*2+j;
因为i,j不可能为-1,或者超过数组范围,所以这个公式是完全实用的。
我测试是对的,请您自行测试。