稀疏陣列的定義和轉化

2021-10-19 08:58:33 字數 1018 閱讀 8049

稀疏陣列

二維陣列 : 每個元素都是一維陣列

int arr = new int[10][10]

0 1 2 3 4 5 6 7 8 9

0 [0,0,0,0,0,0,0,0,0,0]

1 [0,0,1,0,0,0,0,0,0,0]

2 [0,0,2,0,0,0,0,0,0,0]

3 [0,2,0,0,0,0,0,0,0,0]

4 [0,0,0,0,0,0,0,0,0,0]

5 [0,0,0,0,0,0,0,0,0,0]

6 [0,0,0,0,0,0,0,0,0,0]

7 [0,0,0,0,0,0,0,0,0,0]

8 [0,0,0,0,0,0,0,0,0,0]

9 [0,0,0,0,0,0,0,0,0,0]

稀疏陣列

儲存原始的行數和列數

儲存非零元素的位置

行 列 元素值

10 10 3

1 2 1

3 1 2

2 2 2

用 (n+1)*3列的陣列 壓縮,n代表非零元素的個數

第一行 儲存總行數 總列數 和 非零元素的個數

接下來每一行 儲存 元素的行數 列數 和 自身元素值

// 把普通陣列 轉化為 稀疏陣列

public static int tosparse(int arr) }}

int result = new int[count + 1][3];

result[0][0] = arr.length;

result[0][1] = arr[0].length;

result[0][2] = count;

// 遍歷陣列 找到所有非零元素 儲存到結果中

int index = 0;

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

return result;

}

普通陣列和稀疏陣列的轉化

public class spartarray system.out.println sum 2.建立對應的稀疏陣列 int sparsearr new int sum 1 3 sparsearr 0 0 11 sparsearr 0 1 11 sparsearr 0 2 sum 遍歷二維陣列,把二...

普通陣列轉化稀疏陣列

package sparsearray create by author luozhiyuan qq 707530775 qq.com on 2019 08 04.time 23 44 public class sparsearray system.out.println public static...

稀疏陣列轉化二維陣列

public class sparse system.out.println system.out.println 轉化為稀疏陣列儲存 獲取有效值的個數 判斷是否有值 int sum 0 臨時變數,計數用的 for int i 0 i 9 i system.out.println 有效值的個數 su...