/**
* @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,其位...