数据结构(一)--稀疏数组
生活随笔
收集整理的這篇文章主要介紹了
数据结构(一)--稀疏数组
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
數(shù)據(jù)結(jié)構(gòu)復(fù)習(xí)筆記(一)–稀疏數(shù)組
介紹
在矩陣中,若數(shù)值為0的元素?cái)?shù)目遠(yuǎn)遠(yuǎn)多于非0元素的數(shù)目,并且非0元素分布沒(méi)有規(guī)律時(shí),則稱(chēng)該矩陣為稀疏矩陣。
如:
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轉(zhuǎn)化存儲(chǔ)后: 11 11 7 1 2 1 2 3 2 3 5 10 5 0 1 5 2 1 5 3 5 5 7 6實(shí)現(xiàn)代碼
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;//原始數(shù)組先并統(tǒng)計(jì)有效數(shù)據(jù)個(gè)數(shù)int sum = 0;System.out.println("原始數(shù)組:");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("有效數(shù)據(jù)個(gè)數(shù):"+sum);//稀疏矩陣初始化(最前面一行保存行,列,有效數(shù)據(jù)個(gè)數(shù))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("稀疏矩陣轉(zhuǎn)化存儲(chǔ)后:");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();}}結(jié)果
原始數(shù)組: 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 有效數(shù)據(jù)個(gè)數(shù):4 稀疏矩陣轉(zhuǎn)化存儲(chǔ)后: 6 5 4 0 3 2 1 4 7 2 4 4 4 1 4總結(jié)
以上是生活随笔為你收集整理的数据结构(一)--稀疏数组的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 字节跳动香港新办公室已启用,月租金或超
- 下一篇: 开源鸿蒙 OpenHarmony 开发者