虛擬機器的安裝與使用 虛擬機器的安裝與使用
阿新 • • 發佈:2022-03-14
稀疏陣列介紹
- 當一個數組中大部分元素為0,或者為同一值的陣列時,可以使用稀疏陣列來儲存該陣列。
- 稀疏陣列的處理方式是:
- 記錄陣列一共有幾行幾列,有多少個不同值。
- 把具有不同值的元素和行列及值記錄在一個小規模的陣列中,從而縮小程式的規模。
如下圖:左邊是原始陣列,右邊是稀疏陣列
參考程式碼:
public static void main(String[] args) { //建立一個二維陣列 int[][] array = new int[6][7]; array[0][3] = 22; array[0][6] = 15; array[1][5] = 17; //轉換為稀疏陣列儲存 //獲取有效值的個數 int sum = 0; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if (array[i][j]!=0){ sum++; } } } System.out.println("有效值的個數有:"+sum+"個"); //建立一個稀疏陣列的陣列 int[][] array2 = new int[sum+1][3]; array2[0][0] = 6; array2[0][1] = 7; array2[0][2] = sum; //遍歷二維陣列,將非零的值,存放在稀疏陣列中 int count = 0; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { if (array[i][j]!=0){ count++; array2[count][0] = i; array2[count][1] = j; array2[count][2] = array[i][j]; } } } //輸出稀疏陣列 System.out.println("稀疏陣列:"); for (int i = 0; i < array2.length; i++) { System.out.println(array2[i][0]+"\t" + array2[i][1]+"\t" +array2[i][2]); } }
程式碼結果:
有效值的個數有:3個
稀疏陣列:
6 7 3 //有幾行 有幾列 有效值個數
0 3 22 //陣列下標 陣列下標 值
0 6 15
1 5 17