稀疏陣列的實現
阿新 • • 發佈:2022-03-13
1 ,建立一個二維陣列 賦予初始值
int[][] sparsearr = new int [11][11];
sparsearr[1][2] = 1;
sparsearr[2][2] = 2;
sparsearr[3][2] = 2;
sparsearr[4][2] = 2;
2 根據原始陣列 建立稀疏陣列
2.1 計算原始陣列的有效值個數 num
int num = 0; for (int[] s1:sparsearr) { for (int s2: s1) { if (s2 != 0){ num += 1; } } }
2.2 初始化稀疏陣列的第0行
int[][] array = new int[num+1][3];
array[0][0] = sparsearr.length;
array[0][1] = sparsearr[0].length ;
array[0][2] = num;
2.3 遍歷原陣列 存入稀疏陣列
int[][] array = new int[num+1][3]; array[0][0] = sparsearr.length; array[0][1] = sparsearr[0].length ; array[0][2] = num; for (int i= 0;i<sparsearr.length-1;i++){ for (int j =0;j<sparsearr[0].length-1;j++){ if (sparsearr[i][j] != 0){ count ++ ; array[count][0] = i; array[count][1] = j; array[count][2] = sparsearr[i][j]; } } }
根據稀疏陣列還原 原陣列
1 初始化二維陣列 //array 為稀疏陣列
2遍歷稀疏陣列 給初始陣列賦值
for (int j = 0;j<array[0].length;j++){
init[array[i][0]][array[i][1]] = array[i][2];
}
}