稀疏陣列轉換

2021-10-24 10:59:39 字數 1597 閱讀 3327

/**

* @classname sparsearray

* @author jopenchen

* @date 2020-09-07 19:51

* @description 稀疏陣列

*/public

class

sparsearray

system.out.

println()

;}// 陣列變化的記錄數

int recordsum =0;

// 遍歷獲取記錄數

for(

int row[

]: originalarray)}}

// 建立稀疏陣列

int[

] sparsearray =

newint

[recordsum +1]

[3];

int count =0;

sparsearray[count][0

]= originalarray.length;

sparsearray[count][1

]= originalarray[0]

.length;

sparsearray[count][2

]= recordsum;

// 遍歷轉化為稀疏陣列

for(

int i =

0; i < originalarray.length; i ++)}

}// 遍歷列印

system.out.

println

("稀疏陣列:");

for(

int[

] row : sparsearray)

system.out.

println()

;}// 還原陣列

int[

] restorearray =

newint

[sparsearray[0]

[0]]

[sparsearray[0]

[1]]

;for

(int i =

1; i < sparsearray.length; i ++

)// 遍歷列印

system.out.

println

("還原陣列:");

for(

int[

] row : restorearray)

system.out.

println()

;}double compression =

(double

)(sparsearray.length * sparsearray[0]

.length)

/(originalarray.length * originalarray[0]

.length)

; system.out.

println

("壓縮率為:"

+ compression +

"%");}

}

執行結果:

原陣列與稀疏陣列的轉換

今天剛學乙個稀疏陣列,記錄 首先要獲取原陣列,在此可建立乙個陣列,並且給陣列賦值,在程式中有時可能並不會給陣列所有的位置都賦值,那麼沒有賦值的位置就造成了浪費!int array newint 11 11 array 1 2 1 array 2 3 2 array 4 5 13 array 6 7 ...

二維陣列轉換為稀疏陣列

二維陣列轉換為稀疏陣列 二維陣列轉換稀疏陣列的思路 1.遍歷原始的二維陣列,得到有效資料的個數sum sum有多少個,稀疏陣列就有sum 1行 2.根據sum的個數建立稀疏陣列sparsearray int sum 1 3 列為固定值,行不確定 3.將二維陣列的有效資料放入稀疏陣列中 0 0 0 1...

稀疏陣列與二維陣列的轉換

稀疏陣列的使用場景 當乙個陣列中大部分元素為0,或者為同乙個值的時候,可以使用稀疏陣列來儲存該陣列。比如這樣乙個陣列,裡面除了1和2之外其餘全為0。比如下面這張圖 左邊二維陣列為6行7列,其中有8個非零的值,所以將 6,7,8 存在第0行 後面開始記錄原二維陣列有效資料的位置,比如有效資料22,其位...