資料結構:
當乙個陣列中大部分元素為同乙個值時可以使用稀疏陣列來存該陣列
二維陣列轉稀疏陣列:
稀疏陣列轉回原始二維陣列:
/**
* 稀疏陣列
*/public
class
sparsearray
system.out.
println()
;}//將二維陣列轉成稀疏陣列
//1.先遍歷得到非0資料的個數
int sum =0;
for(
int i =
0; i < chessarr1[0]
.length; i ++)}
}//2.建立對應的稀疏陣列
int sparsearr[
]=newint
[sum +1]
[3];
//給稀疏陣列賦值
sparsearr[0]
[0]=
11;sparsearr[0]
[1]=
11;sparsearr[0]
[2]= sum;
//3.遍歷二維陣列,將非0的值存放到稀疏陣列中
int count =0;
//用於記錄是第幾個非0資料
for(
int i =
0; i < chessarr1.length; i ++)}
}//輸出稀疏陣列
system.out.
println()
; system.out.
println
("得到的稀疏陣列為:");
for(
int i =
0; i < sparsearr.length; i++
) system.out.
println()
;//將稀疏陣列恢復為原始陣列
//1.先讀取稀疏陣列的第一行,根據第一行資料,建立原始二維陣列
int chessarr2[
]=newint
[sparsearr[0]
[0]]
[sparsearr[0]
[1]]
;//2.再讀取稀疏陣列後幾行的資料,在對應的位置存入值即可
for(
int i =
1; i < sparsearr.length; i++
)//輸出恢復後的二維陣列
system.out.
println
("恢復後的二維陣列");
for(
int[
] row : chessarr2)
system.out.
println()
;}}}
資料結構 稀疏陣列
當乙個陣列中大部分元素為 或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列。這樣就可以不用記錄很多沒有意義的資料。它是對二維陣列的一種優化 壓縮了二維陣列 稀疏陣列的處理方法是 稀疏陣列的應用場景 1.使用稀疏陣列來儲存二維陣列 大部分數字為0 棋盤,地圖 2.把稀疏陣列存檔,並且可以恢復為原來...
資料結構 稀疏陣列
package com.hadwinling.sparearray public class sparearray system.out.println 將二維陣列轉為稀疏陣列的思路 1.先遍歷二維陣列得到 非0 的資料個數 int sum 0 for int i 0 i chessarrary.l...
資料結構 稀疏陣列
稀疏陣列就是將乙個使用率不高的二維陣列轉換為乙個使用率高的二維陣列,節省空間。使用率不高的二維陣列 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 2 0 對應的稀疏陣列 5 4 3 第一行記錄 原陣列的長度 寬度 有效資料數 2 2 1 下邊為記錄有效資料的具體位置,在原陣...