Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
*8.16(對二維數組排序)編寫一個方法,使用下面的方法頭對二維數組排序。這個方法首先按行排序,然后按列排序
- 題目
- 題目描述
- 破題
- 代碼
- 運行實例
題目
題目描述
*8.16(對二維數組排序)編寫一個方法,使用下面的方法頭對二維數組排序:
public static void sort(int m[][])
這個方法首先按行排序,然后按列排序
例如:數組{{4,2}, {1,7}, {4,5}, {1,2}, {1,1}, {4,1}},被排序為{{1,1}, {1,2}, {1,7}, {4,1}, {4,2}, {4,5}}
破題
代碼
public class Test8_16 {public static void main(String[] args) {//1. 這里因為沒有要求獲取用戶輸入,所以沒必要再從控制臺獲取,完全可以使用題目中給出的數組int[][] array = {{4,2}, {1,7}, {4,5}, {1,2}, {1,1}, {4,1}};//2. 調用方法sort,將原數組傳入sort(array);}public static void sort(int m[][]){//3. sort方法:新建一個int[]對象用于臨時存儲,長度為2int[] temp = new int[2];//4. sort方法:使用雙層for循環,遍歷第i1個數組和第i2個數組for (int i1 = 0 ; i1 < m.length - 1; i1++){for (int i2 = i1 + 1 ; i2 < m.length ; i2++){//5. sort方法:比較數組[i1][0]和[i2][0]數值大小,大于則將兩個子數組進行交換if (m[i1][0] > m[i2][0]){//交換temp[0] = m[i1][0];temp[1] = m[i1][1];m[i1][0] = m[i2][0];m[i1][1] = m[i2][1];m[i2][0] = temp[0];m[i2][1] = temp[1];}}}//5. sort方法:比較數組[i1][1]和[i2][1]數值大小,大于則將兩個子數組進行交換for (int i1 = 0 ; i1 < m.length - 1; i1++){for (int i2 = i1 + 1 ; i2 < m.length ; i2++){if (m[i1][0] == m[i2][0]){if (m[i1][1] > m[i2][1]){temp[0] = m[i1][0];temp[1] = m[i1][1];m[i1][0] = m[i2][0];m[i1][1] = m[i2][1];m[i2][0] = temp[0];m[i2][1] = temp[1];}}}}//6. sort方法:輸出結果for (int i = 0 ; i < 5 ; i++){for (int j = 0 ; j < 2; j++){System.out.print(m[i][j] + " ");}System.out.println();}} }運行實例
1 1 1 2 1 7 4 1 4 2總結
以上是生活随笔為你收集整理的Java黑皮书课后题第8章:*8.16(对二维数组排序)编写一个方法,使用下面的方法头对二维数组排序。这个方法首先按行排序,然后按列排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第8章:*8.15(
- 下一篇: Java黑皮书课后题第8章:**8.17