06. 稀疏陣列(壓縮資料來源)
阿新 • • 發佈:2021-12-14
一,稀疏陣列
1.定義
稀疏陣列可以看做是普通陣列的壓縮,但是這裡說的普通陣列是值無效資料量遠大於有效資料量的陣列
形如:
其稀疏陣列形式:
2.儲存
剛說到稀疏陣列是一種壓縮後的陣列,為什麼要進行壓縮儲存呢?
-
原陣列中存在大量的無效資料,佔據了大量的儲存空間,真正有用的資料卻少之又少
-
壓縮儲存可以節省儲存空間以避免資源的不必要的浪費,在資料序列化到磁碟時,壓縮儲存可以提高IO效率
3.儲存方式
1.普通儲存
第一行儲存原始資料總行數,總列數,總的非0資料個數
接下來每一行都儲存非0數所在行,所在列,和具體值
形如:
eg :
2.鏈式儲存
以這個為例:
a.普通鏈式儲存
b.行式鏈式儲存
c.十字鏈式儲存
4.程式碼實現
3.將稀疏陣列存到此磁碟中
我們可以使用java的IO流將稀疏陣列存放到磁碟中,原陣列和稀疏陣列比較,肯定是稀疏陣列體積更小,佔用空間更小
4.從磁碟中讀取稀疏陣列
在這裡有個缺陷就是我不能動態的知道稀疏陣列一共有幾行,所以我選擇傳參的方式,這樣其實是不太友好的
恢復原陣列