/*
* 1.稀疏陣列介紹:
* 如果原陣列的非0元素的個數有n個,則稀疏陣列有n+1行,列數不變,一共有三列
* 第一行儲存的資料: 原始陣列的行 原始陣列儲存的列 原始陣列中非0的元素個數
* 第二行儲存的資料: 第乙個非0元素所在的行 第乙個非0元素所在的列 第乙個非0元素的值
* ..........
* * 2.二維陣列轉化為稀疏陣列:
* 遍歷二維陣列,求出原始二維陣列中非0元素的個數sum
* 建立稀疏陣列a[sum+1][3]
* 將原始二維陣列的非0元素的值存入到稀疏陣列中
* * 3.稀疏陣列恢復為原始二維陣列
* 先利用稀疏陣列第一行的元素建立乙個二維陣列
* 將稀疏陣列後n-1行的元素賦值給新建立的二維陣列
* */
public
class
sparsearray
//2.將二維陣列轉化為稀疏陣列
求出二維陣列中非0元素的個數
int sum=0;
for(
int[
] row:array)
建立乙個稀疏陣列
int sparsearray[
]=newint
[sum+1]
[3];
sparsearray[0]
[0]=
6;//記錄行數
sparsearray[0]
[1]=
6;//記錄列數
sparsearray[0]
[2]=sum;
//記錄非0資料的個數
將原始陣列中的非0元素儲存到稀疏陣列中
int count=0;
//當前是第幾個非0元素
for(
int i=
0;i}//3.輸出稀疏陣列
system.out.
println
("稀疏陣列元素如下:");
for(
int i=
0;i)//4.恢復二維陣列
int recoverarray[
]=newint
[sparsearray[0]
[0]]
[sparsearray[0]
[1]]
;for
(int i=
1;i) system.out.
println
("恢復後的二維陣列:");
for(
int[
] row:array)
}}
稀疏陣列轉化二維陣列
public class sparse system.out.println system.out.println 轉化為稀疏陣列儲存 獲取有效值的個數 判斷是否有值 int sum 0 臨時變數,計數用的 for int i 0 i 9 i system.out.println 有效值的個數 su...
二維陣列與一維陣列之間的轉化
一維陣列轉換為二位陣列 include include define row 3 define col 2 intmain int argc,char ar int arr2d row col int i,j 一維維整型陣列轉換為二維整型陣列 for i 0 i 二維整型陣列列印顯示 for 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...