資料結構 稀疏陣列

2021-10-03 15:59:11 字數 1250 閱讀 1166

package com.hadwinling.sparearray;

public class sparearray

system.out.println();

} //將二維陣列轉為稀疏陣列的思路

//1.先遍歷二維陣列得到 非0 的資料個數

int sum = 0;

for (int i = 0; i < chessarrary.length; i++)

}} system.out.println("非0 的值"+sum);

//2.建立對應的稀疏陣列

int sparsearray = new int[sum+1][3];

//給稀疏陣列賦值

sparsearray[0][0] = chessarrary.length;

sparsearray[0][1] = chessarrary.length;

sparsearray[0][2] = sum;

//3.先遍歷二維陣列,講非0 的值存放到sparsearray中

int count = 0 ;//count 用於記錄是第幾個非0 的資料

for (int i = 0; i < chessarrary.length; i++)

}} //4.輸出稀疏陣列的形式

system.out.println();

system.out.println("得到的稀疏陣列");

for (int i = 0; i < sparsearray.length; i++)

/*//將稀疏陣列恢復為原來的二維陣列

//1.先讀書稀疏陣列的第一行,根據第一行的數,建立原來的二維陣列,

//2.在讀取稀疏陣列後幾行的資料,並賦值給原來的二維陣列

*///1.先讀書稀疏陣列的第一行,根據第一行的數,建立原來的二維陣列,

int chessarray2 = new int[sparsearray[0][0]] [sparsearray[0][1]];

//2 .在讀取稀疏陣列後幾行的資料(第二行開始),並賦值為原始的二維陣列

for (int i = 1; i < sparsearray.length; i++)

//輸出恢復後的二維陣列

system.out.println("恢復後的二維陣列");

for (int row : chessarray2)

system.out.println();

} }}

資料結構 稀疏陣列

資料結構 當乙個陣列中大部分元素為同乙個值時可以使用稀疏陣列來存該陣列 二維陣列轉稀疏陣列 稀疏陣列轉回原始二維陣列 稀疏陣列 public class sparsearray system.out.println 將二維陣列轉成稀疏陣列 1.先遍歷得到非0資料的個數 int sum 0 for i...

資料結構 稀疏陣列

當乙個陣列中大部分元素為 或者為同乙個值的陣列時,可以使用稀疏陣列來儲存該陣列。這樣就可以不用記錄很多沒有意義的資料。它是對二維陣列的一種優化 壓縮了二維陣列 稀疏陣列的處理方法是 稀疏陣列的應用場景 1.使用稀疏陣列來儲存二維陣列 大部分數字為0 棋盤,地圖 2.把稀疏陣列存檔,並且可以恢復為原來...

資料結構 稀疏陣列

稀疏陣列就是將乙個使用率不高的二維陣列轉換為乙個使用率高的二維陣列,節省空間。使用率不高的二維陣列 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 下邊為記錄有效資料的具體位置,在原陣...