關於sparseArray稀疏陣列

2021-10-04 01:44:12 字數 2232 閱讀 2966

關於稀疏陣列

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

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

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

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

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

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

2.再將稀疏陣列中後幾行資料賦給原始陣列

五子棋棋盤的問題

上**:

public

class

sparsearray

system.out.

println()

;}/* * 將二維陣列轉換為稀疏陣列

* 1.先遍歷二維陣列得到有幾個有效值sum和行列個數

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

* 3.將二維陣列有效值存在稀疏陣列中

* */

//一般情況下不知道二維陣列行列,用兩值來記錄

int c_row=0;

//記錄列個數

int c_all=0;

//記錄二維陣列所有個數用於記錄列個數

//1.先遍歷二維陣列得到有幾個有效值sum和行列

int sum=0;

for(

int[

] row :chessarry1)}}

int c_col=c_all/c_row;

//得到列個數

system.out.

println

("sum="

+sum)

; system.out.

println

("原二維陣列的行為:"

+c_row)

; system.out.

println

("原二維陣列的列為:"

+c_col)

;//2.根據sum建立稀疏陣列 sparsearr[sum+1][3]

int sparsearr[

]=newint

[sum+1]

[3];

sparsearr[0]

[0]=c_row;

sparsearr[0]

[1]=c_col;

sparsearr[0]

[2]=sum;

//3.將二維陣列有效值存在稀疏陣列中

int count =0;

//count用於記錄是第幾個非零資料

for(

int i=

0;i}

system.out.

println

("得到的稀疏陣列為~~~");

for(

int[

] row :sparsearr)

system.out.

println()

;}system.out.

println()

;/*將稀疏陣列轉換為原二維陣列

* 1.先讀取稀疏陣列的第一行,根據資料轉換為原始二維陣列

* 2.再讀取稀疏陣列後幾行資料賦給原始二維陣列

* */

int chessarry2[

]=newint

[sparsearr[0]

[0]]

[sparsearr[0]

[1]]

;for

(int i=

1;isystem.out.

println

("得到的原二維陣列為~~~");

稀疏sparsearray陣列

將二維陣列轉成稀疏陣列 1.先遍歷二維陣列 得到非0資料的個數 int sum 0 for int i 0 i 11 i system.out.println sum sum 建立對應的稀疏陣列 int sparsearr new int sum 1 3 給稀疏陣列賦值 sparsearr 0 0 ...

稀疏sparsearray陣列

線性結構常見的有 陣列 佇列 鍊錶和棧 非線性結構包括 二維陣列 多維陣列 廣義表 樹結構 圖結構 編寫的五子棋程式中,有存檔退出和續上盤的功能 分析問題 因為該二維陣列的很多值是預設值 0,因此記錄了很多沒有意義的資料 稀疏陣列。當乙個陣列中大部分元素為 或者為同乙個值的陣列時,可以使用稀疏陣列來...

Sparsearray稀疏陣列原理及例項詳解

今天覆習下稀疏陣列相程式設計客棧關思想。問題引入 編寫的五子棋程式中,有存檔退出和續上盤的功能。如上圖所示二維陣列,大多值是預設值 0 所以記錄大量無意義的資料意義不大,此時可以引入稀疏陣列。稀疏陣列介紹 當乙個陣列大部分元素為固定值時,可以使用稀疏陣列來儲存類似陣列 稀疏陣列處理思路 稀疏陣列記錄...