数据结构(一)--稀疏数组
生活随笔
收集整理的這篇文章主要介紹了
数据结构(一)--稀疏数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
數據結構復習筆記(一)–稀疏數組
介紹
在矩陣中,若數值為0的元素數目遠遠多于非0元素的數目,并且非0元素分布沒有規律時,則稱該矩陣為稀疏矩陣。
如:
0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 5 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0轉化存儲后: 11 11 7 1 2 1 2 3 2 3 5 10 5 0 1 5 2 1 5 3 5 5 7 6實現代碼
public static void main(String[] args) {int[][] Arr = new int[6][5];Arr[0][3] = 2;Arr[1][4] = 7;Arr[2][4] = 4;Arr[4][1] = 4;//原始數組先并統計有效數據個數int sum = 0;System.out.println("原始數組:");for(int i =0;i<Arr.length;i++){for(int j=0;j<Arr[0].length;j++){System.out.print(Arr[i][j]+"\t");if(Arr[i][j]!=0) sum++;}System.out.println();}System.out.println("有效數據個數:"+sum);//稀疏矩陣初始化(最前面一行保存行,列,有效數據個數)int[][] spareArr = new int[sum+1][3];spareArr[0][0] = Arr.length;spareArr[0][1] = Arr[0].length;spareArr[0][2] = sum;//生成稀疏矩陣int index = 1;for(int i =0;i<Arr.length;i++){for(int j=0;j<Arr[0].length;j++) {if (Arr[i][j] != 0) {spareArr[index][0] = i;spareArr[index][1] = j;spareArr[index][2] = Arr[i][j];index++;}}}//打印稀疏矩陣System.out.println("稀疏矩陣轉化存儲后:");for(int i =0;i<spareArr.length;i++) {for (int j = 0; j < spareArr[0].length; j++)System.out.print(spareArr[i][j] + "\t");System.out.println();}}結果
原始數組: 0 0 0 2 0 0 0 0 0 7 0 0 0 0 4 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 有效數據個數:4 稀疏矩陣轉化存儲后: 6 5 4 0 3 2 1 4 7 2 4 4 4 1 4總結
以上是生活随笔為你收集整理的数据结构(一)--稀疏数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字节跳动香港新办公室已启用,月租金或超
- 下一篇: 开源鸿蒙 OpenHarmony 开发者