1. 程式人生 > >java數據結構至對稱矩陣壓縮存儲

java數據結構至對稱矩陣壓縮存儲

數組存儲 選擇題 關系 維數 壓縮存儲 bsp strong 我們 需要

剛剛刷java選擇題,遇到的對稱矩陣壓縮存儲問題,我們知道對稱矩陣是aij=aji的矩陣,壓縮存儲可以采用一維數組和二維數組存儲。

此處只討論一維數組存儲的形式,設數組下標從0開始,對稱矩陣為n維矩陣。

此矩陣有n*n個元素,主對角線上有n個,因為aij=aji,所以只需要存儲上三角或者下三角的元素即可,所以數組的容量為(n*n-n)/2+n=n(n+1)/2

(註:-n是先去除主對角線上的元素)

n階對稱矩陣的壓縮存儲對應關系

aij=aji 1<=i<=n,1<=j<=n

元素個數m = n*(n+1)/2

打印對稱矩陣第i行,第j列的元素,與一維數組的下標關系為:

i*(i-1)/2+j-1 當i>=j

k=

j*(j-1)/2+i-1 當i<j

java數據結構至對稱矩陣壓縮存儲