1. 程式人生 > 其它 >06. 稀疏陣列(壓縮資料來源)

06. 稀疏陣列(壓縮資料來源)

一,稀疏陣列

1.定義

稀疏陣列可以看做是普通陣列的壓縮,但是這裡說的普通陣列是值無效資料量遠大於有效資料量的陣列

形如:

其稀疏陣列形式:

2.儲存

剛說到稀疏陣列是一種壓縮後的陣列,為什麼要進行壓縮儲存呢?

  • 原陣列中存在大量的無效資料,佔據了大量的儲存空間,真正有用的資料卻少之又少

  • 壓縮儲存可以節省儲存空間以避免資源的不必要的浪費,在資料序列化到磁碟時,壓縮儲存可以提高IO效率

3.儲存方式

1.普通儲存

第一行儲存原始資料總行數,總列數,總的非0資料個數

接下來每一行都儲存非0數所在行,所在列,和具體值

形如:

eg :

2.鏈式儲存

以這個為例:

a.普通鏈式儲存

b.行式鏈式儲存

c.十字鏈式儲存

4.程式碼實現

3.將稀疏陣列存到此磁碟中

我們可以使用java的IO流將稀疏陣列存放到磁碟中,原陣列和稀疏陣列比較,肯定是稀疏陣列體積更小,佔用空間更小

4.從磁碟中讀取稀疏陣列

在這裡有個缺陷就是我不能動態的知道稀疏陣列一共有幾行,所以我選擇傳參的方式,這樣其實是不太友好的

恢復原陣列

5.完整程式碼