稀疏陣列與二維陣列相互轉換思路及原始碼實現

2022-05-15 19:25:27 字數 1819 閱讀 1390

package com.vg;

public class testsparsearray {

public static void main(string args) {

//建立乙個11*11原始陣列

//0代表沒有棋子,1代表黑棋,2代表白棋

int chessarr1 = new int[11][11];

chessarr1[1][2] = 1;

chessarr1[2][3] = 2;

chessarr1[3][3] = 2;

chessarr1[4][3] = 1;

//輸出原來的陣列

system.out.println("陣列為···");

for(int row:chessarr1) {

for(int data:row) {

system.out.printf("%d\t",data);

system.out.println();

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

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

int sum=0;

for(int i=0;ifor(int j=0;jif(chessarr1[i][j]!=0) {

sum++;

system.out.println("sum的值是"+sum);

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

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

//給稀疏陣列賦值

sparsearr[0][0] = 11;

sparsearr[0][1] = 11;

sparsearr[0][2] = sum;

//遍歷二維陣列把值放進來

int count = 0;//

for(int i=0;ifor(int j=0;jif(chessarr1[i][j]!=0) {

count++;

sparsearr[count][0]=i;

sparsearr[count][1]=j;

sparsearr[count][2]=chessarr1[i][j];

//輸出稀疏陣列的形式

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

for(int i=0;ifor(int j = 0;jsystem.out.printf("%d\t",sparsearr[i][j]);

system.out.println();

system.out.println();

//將稀疏陣列 --》 恢復成 原始的二維陣列

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

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

//1. 先讀取稀疏陣列的第一行,根據第一行的資料,建立原始的二維陣列

int chessarr2 = new int[sparsearr[0][0]][sparsearr[0][1]];

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

for(int i=1;ichessarr2[sparsearr[i][0]][sparsearr[i][1]]=sparsearr[i][2];

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

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

for(int i=0;ifor(int j= 0;jsystem.out.printf("%d\t",chessarr2[i][j]);

system.out.println();

稀疏陣列和二維陣列的相互轉換

二維陣列轉化為稀疏陣列 建立乙個原始二維陣列 0表示無子,1表示黑子,2表示白子 int arr newint 11 11 arr 1 2 1 arr 2 3 2 for int arr1 arr system.out.println 得到二維陣列的非0值 int sum 0 for int i 0...

二維陣列與稀疏陣列的相互轉化

package com.weiting.sparsearray public class sparsearray system.out.println 將二維陣列轉化為稀疏陣列 1.遍歷二維陣列得到非零的數字個數 int sum 0 for int i 0 i 11 i system.out.pri...

稀疏陣列與二維陣列的轉換

稀疏陣列的使用場景 當乙個陣列中大部分元素為0,或者為同乙個值的時候,可以使用稀疏陣列來儲存該陣列。比如這樣乙個陣列,裡面除了1和2之外其餘全為0。比如下面這張圖 左邊二維陣列為6行7列,其中有8個非零的值,所以將 6,7,8 存在第0行 後面開始記錄原二維陣列有效資料的位置,比如有效資料22,其位...