稀疏陣列就是將乙個使用率不高的二維陣列轉換為乙個使用率高的二維陣列,節省空間。
//使用率不高的二維陣列
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 //下邊為記錄有效資料的具體位置,在原陣列中的長、寬、原始資料
2 4 1
4 4 2
public
static
void
main
(string[
] args)
system.out.
println()
;}//遍歷二維陣列得到非零資料的個數
int sum=0;
for(
int i =
0; i < chessarr.length; i++)}
} system.out.
println
("原始二維陣列的非零資料個數為:"
+sum)
;//將原始的陣列轉為稀疏陣列
//建立對應的稀疏陣列
int sparsearr[
]=newint
[sum+1]
[3];
sparsearr[0]
[0]= chessarr.length;
sparsearr[0]
[1]= chessarr[0]
.length;
sparsearr[0]
[2]= sum;
//遍歷二維陣列將非零的值新增到稀疏陣列中
int count =0;
for(
int i =
0; i < chessarr.length; i++)}
} system.out.
println()
; system.out.
println
("得到的稀疏陣列為:");
for(
int[
] is : sparsearr)
system.out.
println()
;}//將稀疏陣列再轉換為原來的二維陣列
system.out.
println
("遍歷稀疏陣列得到原來的二維陣列");
int chessarr1[
]=newint
[sparsearr[0]
[0]]
[sparsearr[0]
[1]]
;for
(int i=
1;i)for
(int
is : chessarr1)
system.out.
println()
;}
資料結構 稀疏陣列
資料結構 當乙個陣列中大部分元素為同乙個值時可以使用稀疏陣列來存該陣列 二維陣列轉稀疏陣列 稀疏陣列轉回原始二維陣列 稀疏陣列 public class sparsearray system.out.println 將二維陣列轉成稀疏陣列 1.先遍歷得到非0資料的個數 int sum 0 for i...
資料結構 稀疏陣列
當乙個陣列中大部分元素為 或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列。這樣就可以不用記錄很多沒有意義的資料。它是對二維陣列的一種優化 壓縮了二維陣列 稀疏陣列的處理方法是 稀疏陣列的應用場景 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...