本文源碼:[GitHub·點這里] || [GitEE·點這里]
# 一、根本簡介
## 1、根基概念
在矩陣中,若數值為0的元素數量遠遠多于非0元素的數量,并且非0元素分布沒有規律時,則稱該矩陣為稀疏矩陣;與之相反,若非0元素數量占多數時,則稱該矩陣為濃密矩陣。定義非零元素的總數比上矩陣所有元素的總數為矩陣的濃密度。
## 2、處置方式
“`
1)、紀實數組一共有幾行幾列,有幾多個差異的值
2)、把具有差異值的元素的行列及值紀實在稀疏數組中,可以縮小步驟代碼的復雜度。
“`
## 3、圖解繪出
“`
稀疏數組表明
3 4 4 二維數組,3行,4列,4個非0的值;
1 2 2 一行,2列的值是2;
1 3 3 一行,3列的值是3;
…以此類推
“`
## 4、五子棋配景
“`
採用稀疏數組繪出
行 列 值
11 11 2
1 2 1
2 3 2
“`
# 二、代碼實現
## 1、轉換流程
二維數組轉稀疏數組
“`
1)、遍歷二維數組,得到非零元素的個數
2)、創造稀疏數組
3)、二維數組的非零元素寫入稀疏數運彩分析ptt組
“`
稀疏數組轉二維數組
“`
1)、讀取稀疏數組的首行,創造二維數組
2)、依據稀疏數組繪出的有效元素,給二維數組賦值
“`
## 2、代碼實現
1)、核心流程
“`
1、棋盤:基于二維數組
2、二維數組轉稀疏數組
3、稀疏數組轉二維數組
“`
2)、想法一:生成二維數組
“`
public static int[][] printChess (){
二維數組表明 11 * 11 的棋盤,0表明沒有棋,1表明 黑, 2 表明藍
int chessArray[][] = ne int;
chessArray = 1;
chessArray = 2;
for (int[] ro chessArray) {
for (int data ro) {
System.out.printf(“d\t”, data);
}
System.out.println();
}
return chessArray ;
}
“`
3)、想法二:轉為稀疏數組
“`
public static int[][] conv世足彩卷怎麼買ertToArray (int chessArray[][]){
有效元素:先遍歷二維數組 得到非0數據的個數
int unZeroSum = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (chessArray != 0) {
unZeroSum++;
}
}
}
行:有效元素+1,列:3列
int sparseArray[][] = ne int[unZeroSum+1] ;
sparseArray = 11 ; 0行0列值:11
sparseArray = 11 ; 0行1列值:11
sparseArray = unZeroSum ; 0行2列值:unZeroS台灣運彩朋友圈um
遍歷二維數組,將非0的值存放到稀疏數組中
unZeroCount 用于記錄是第幾個非0數據,也就是稀疏數組的行
int unZeroCount = 0;
for (int i = 0; i < 11; i++) {
for (int j = 0; j < 11; j++) {
if (chessArray != 0) {
unZeroCount++;
sparseArray = i;
sparseArray = j;
sparseArray = ches世足運彩討論區sArray;
}
}
}
輸出稀疏數組的形式
for (int i = 0; i > int chessArray[][] = ne int;
int chessArray[][] = ne int[sparseArray][sparseArray] ;
非零元素賦值給二維數組
for(int i = 1; i < sparseArray.length; i++) {
幾行、幾列、是什么值
chessArray[sparseArray][sparseArray] = sparseArray;
}
打印二維數組
for (int[] ro chessArray) {
for (int data ro) {
System.out.printf("d\t", data);
}
System.out.println();
}
}
“`
5)、主程序調用
“`
public static vo main(String[] args) {
棋盤:基于二維數組
int chessArray[][] = printChess () ;
System.out.println("==========================");
二維數組轉稀疏數組
int sparseArray[][] = convertToArray(chessArray) ;
System.out.println("==========================");
稀疏數組轉二維數組
convertSparseArray(sparseArr韻采 pttay);
}
“`
三、源代碼地址
“`
GitHub·地址
sgithub.cicadasmilemodel-arithmetic-parent
GitEE·地址
sgitee.cicadasmilemodel-arithmetic-parent
“`