aaaa成人_日本一道本在线视频_国产高潮流白浆喷水在线观看_韩国专区福利一区二区_一区二区不卡视频_看全色黄大色黄大片女图片第一次

×

JAVA描述算法和數據結構(01):稀疏數組和二維數組轉換

分類:互聯網熱點 編輯:it知事 瀏覽量:2
2020-07-13 16:55:23
本文源碼:[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)、二維數組的非零元素寫入稀疏數組 ``` 稀疏數組轉二維數組 ``` 1)、讀取稀疏數組的首行,創建二維數組 2)、根據稀疏數組描述的有效元素,給二維數組賦值 ``` ## 2、代碼實現 1)、核心流程 ``` 1、棋盤:基于二維數組 2、二維數組轉稀疏數組 3、稀疏數組轉二維數組 ``` 2)、方法一:生成二維數組 ``` public static int[][] printChess (){ // 二維數組表示 11 * 11 的棋盤,0表示沒有棋,1表示 黑, 2 表示藍 int chessArray[][] = new int; chessArray = 1; chessArray = 2; for (int[] row : chessArray) { for (int data : row) { System.out.printf("%d\t", data); } System.out.println(); } return chessArray ; } ``` 3)、方法二:轉為稀疏數組 ``` public static int[][] convertTwoArray (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[][] = new int[unZeroSum+1] ; sparseArray = 11 ;// 0行0列值:11 sparseArray = 11 ;// 0行1列值:11 sparseArray = unZeroSum ;// 0行2列值:unZeroSum // 遍歷二維數組,將非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 = chessArray; } } } // 輸出稀疏數組的形式 for (int i = 0; i < sparseArray.length; i++) { System.out.printf("%d\t%d\t%d\t\n", sparseArray, sparseArray, sparseArray); } return sparseArray ; } ``` 4)、方法三:轉為二維數組 ``` public static void convertSparseArray (int sparseArray[][]){ // 讀取稀疏數組首行創建二維數組==>> int chessArray[][] = new int; int chessArray[][] = new int[sparseArray][sparseArray] ; // 非零元素賦值給二維數組 for(int i = 1; i < sparseArray.length; i++) { // 幾行、幾列、是什么值 chessArray[sparseArray][sparseArray] = sparseArray; } // 打印二維數組 for (int[] row : chessArray) { for (int data : row) { System.out.printf("%d\t", data); } System.out.println(); } } ``` 5)、主程序調用 ``` public static void main(String[] args) { // 棋盤:基于二維數組 int chessArray[][] = printChess () ; System.out.println("=========================="); // 二維數組轉稀疏數組 int sparseArray[][] = convertTwoArray(chessArray) ; System.out.println("=========================="); // 稀疏數組轉二維數組 convertSparseArray(sparseArray); } ``` 三、源代碼地址 ``` GitHub·地址 https://github.com/cicadasmile/model-arithmetic-parent GitEE·地址 https://gitee.com/cicadasmile/model-arithmetic-parent ```

聲明:免責聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,也不承認相關法律責任。如果您發現本社區中有涉嫌抄襲的內容,請發

送郵件至:operations@xinnet.com進行舉報,并提供相關證據,一經查實,本站將立刻刪除涉嫌侵權內容。本站原創內容未經允許不得轉載,或轉載時

需注明出處:新網idc知識百科

免費咨詢獲取折扣

Loading
主站蜘蛛池模板: 亚洲精品免费av | 尤物网址在线观看 | 伊人中文字幕在线观看 | 久草国内 | 免费无码又爽又刺激高潮视频 | 国产第二区国产一级片播放 | 高清无码免费视频专区 | 亚洲欧美日韩在线观看一区二区三区 | 特级做a爰片免费看一区 | 国产精品VA在线播放我和闺蜜 | 亚洲а∨天堂久久精品2021 | 亚洲区色 | 色片在线观看 | jvid视频在线观看免费 | 视频自拍一区 | 色七七av| 任你操精品视频 | 午夜短视频| 欧美精欧美乱码一二三四区 | 亚洲一区中文日韩 | 欧美一区欧美二区 | 男男GV白嫩小受GV在线播放 | 欧美激情精品久久久久久黑人 | 欧美精品一区二区三区四区 | 囯产精品久久久久久久久久妞妞 | 国产高清一二区 | 欧美亚成人 | 精品十八禁免费观看 | 永久免费A∨片在线观看 | 啊灬啊灬啊灬快灬深高潮了 | 刀光枪影免费版 | 91九色性视频 | 大乳三级a做爰大乳 | 国产亚洲精品一区二555 | 2020久久超碰国产精品最新 | 日韩黄色大片在线观看 | 国产免费午夜福利片在线 | 国内不卡的一区二区三区中文字幕 | 色悠久久久久久久综合网伊人 | 91蜜桃视频在线观看 | 久久国产精品视频 |