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

2021-10-06 13:49:14 字數 876 閱讀 8129

今天開始更新資料結構與演算法

這是資料結構的第一篇

大神可以無視,小白可以湊合看看,為了給小白看的清楚,裡面加了每一步的演示,複製到ide中即可執行。

package learn;

/** * @author yuyi

* 稀疏陣列的**實現

* 第一行記錄原陣列幾行幾列,多少個有效值

* 接下來是所在行列的位置以及值的內容

* 稀疏陣列的開始也是從零開始

*/public class sparsearray

system.out.println();

}system.out.println("*************************==");

for(int a:array1)}}

system.out.println(sum);

//根據上方新建稀疏陣列

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

array2[0][0]=11;

array2[0][1]=11;

array2[0][2]=sum;

int count=0;

for(int i=0;ifor(int j=0;j}

//展示得到的稀疏陣列

for(int i=0;isystem.out.println();

}/**

* 還原為原矩陣

*/int array3 = new int[array2[0][0]][array2[0][1]];

for(int i=1;i//展示還原的陣列

for(int a:array3)

system.out.println();}}

}

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

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

稀疏陣列(與二維陣列互相轉換)

二維陣列的省記憶體的儲存方法,一般是n行3列,三列分別為行,列,值。二維陣列轉稀疏陣列 1.遍歷整個二維陣列,檢視有多少個有效數字 2.根據有效數字的個數,建立稀疏陣列 3.遍歷二維陣列,將有效的數字放入稀疏陣列中稀疏陣列轉二維陣列 1.根據稀疏陣列第一行建立空二維陣列 2.讀取稀疏陣列後幾行資料,...

二維陣列與稀疏陣列

一維數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...