二 稀疏陣列

2022-06-28 02:57:12 字數 1843 閱讀 2992

先看乙個實際需求,編寫乙個五子棋程式,有存檔和續上盤的功能。

當乙個陣列中大部分元素為0,或者為同乙個值時,可以使用稀疏陣列來儲存改陣列。

稀疏陣列的處理方法是:

使用稀疏陣列,來保留類似前面的二維陣列(棋盤、地圖)

把稀疏陣列存檔,並且可以重新恢復原來的二維陣列

整體思路

1. 遍歷原始的二維陣列,得到有效資料的個數 sum

2. 根據sum 就可以建立 稀疏陣列 sparsearr int[sum + 1] [3]

3. 將二維陣列的有效資料資料存入到 稀疏陣列

1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列,比如上面的 chessarr2 = int [11][11]

2. 在讀取稀疏陣列後幾行的資料,並賦給原始的二維陣列即可.

package com.com.jdy;

public class sparsearray

/*** 稀疏陣列轉原始的二維陣列的思路

* step1:先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列,比如上面的 chessarr2 = int [11][11]

* step2: 再讀取稀疏陣列後幾行的資料,並賦給原始的二維陣列即可.

* @param sparsearr

*/public static void sparsetoorigin(int sparsearr)

system.out.println("恢復後的稀疏陣列~~~~~~");

for (int rows : chessarr2)

system.out.println();}}

/***二維陣列轉稀疏陣列

*  1. 遍歷原始的二維陣列,得到有效資料的個數 sum

*  2. 根據sum 就可以建立 稀疏陣列 sparsearr int[sum + 1] [3]

*  3. 將二維陣列的有效資料資料存入到 稀疏陣列

*/public static int origintosparse(int chessarr)}}

//step2:根據sum 就可以建立 稀疏陣列 sparsearr int[sum + 1] [3]

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

//step3:將二維陣列的有效資料資料存入到稀疏陣列

sparsearrays[0][0]=11;

sparsearrays[0][1]=11;

sparsearrays[0][2]=sum;

int count =0;

for (int i = 0; i < 11; i++) }}

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

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

return sparsearrays;

}public static int createoriginarr()

system.out.println();

}return chessarr;}}

稀疏二維陣列

package com.atguigu.sparsearray public class sparsearray system.out.println 計算原始二維陣列裡面非0值的個數,並輸出 int sum 0 for int is chessarr system.out.println sum ...

二維陣列與稀疏陣列

一維數00組的集合,二維陣列可以由多個一維陣列構成 二維陣列的建立 int a 推薦使用 int a2 直接建立 int a new int x 可以不進行定義也可以定義 int a int a new int,二維陣列的迭代 int b1 newint for int i 0 i 實現 packa...

二維陣列與稀疏陣列

二維陣列 陣列中的每乙個元素又是乙個陣列 宣告int a public static void main string args 0 1 2 0 1 2 0 1 2 0 1 2 newint 3 建立乙個長度為3的二維陣列,其中每乙個一維陣列的值為空 null 二維陣列遍歷 迴圈每次取出二維陣列中的...