亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Java將二維數組的行排序為升序,將列排序為降序

Java將二維數組的行排序為升序,將列排序為降序

catspeake 2022-01-06 17:55:43
拜托,有人可以幫助我,我需要按降序對二維數組列進行排序嗎?我使用此代碼將數組行按升序排序,但現在必須將列按降序排序。// Initialize arraystatic int[][] sortArray = new int[7][7];public static void main(String args[]) {    //initialize array values with random numbers    for (int i = 0; i < sortArray.length; i++) {        for (int j = 0; j < sortArray[i].length; j++) {            sortArray[i][j] = (int) (Math.random() * 100);        }    }    System.out.println("\n" + "Before sorting");    displayArray();    //Print out sorted array    for (int i = 0; i < sortArray.length; i++) {        bubbleSort(sortArray[i]);    }    System.out.println("\n" + "Array rows in ascending order");    displayArray();    //Print out sorted columns of array    for (int i = 0; i < sortArray.length; i++) {        sortSort(sortArray[i]);    }    System.out.println("\n" + "Array column in descending order");    displayArray();}// Sort rows into ascending orderpublic static void bubbleSort(int[] numArray) {    int n = numArray.length;    int temp = 0;    for (int i = 0; i < n; i++) {        for (int j = 1; j < (n - i); j++) {            if (numArray[j - 1] > numArray[j]) {                temp = numArray[j - 1];                numArray[j - 1] = numArray[j];                numArray[j] = temp;            }        }    }}//Sort cols into descending orderpublic static void sortSort(int[] colArray) {    int n = colArray.length;    int temp = 0;    for (int i = 0; i < n; i++) {        for (int j = 1; j < (n - i); j++) {            if (colArray[j - 1] < colArray[j]) {                temp = colArray[j - 1];                colArray[j - 1] = colArray[j];                colArray[j] = temp;            }        }    }}
查看完整描述

3 回答

?
墨色風雨

TA貢獻1853條經驗 獲得超6個贊

int[] colArray = new int[] { 2, 9, 4, 5};

int n = colArray.length;

int temp = 0;



for (int i = 0; i < n; i++) {

  for (int j = 1; j < (n - i); j++) {


      if (colArray[j - 1] > colArray[j]) {

          temp = colArray[j - 1];

          colArray[j - 1] = colArray[j];

          colArray[j] = temp;

      }


  }

 }

 Arrays.stream(colArray).forEach(data -> System.out.println(data));


查看完整回答
反對 回復 2022-01-06
?
開滿天機

TA貢獻1786條經驗 獲得超13個贊

只需更換


if (colArray[j - 1] < colArray[j]) {

...

}

和:


if (colArray[j - 1] > colArray[j]) {

...

}

> 代替 <


查看完整回答
反對 回復 2022-01-06
?
不負相思意

TA貢獻1777條經驗 獲得超10個贊

首先,你的數組不是 2D :),只是因為數組的每個元素都有一個像 Arr[0] 這樣的數字被調用,并且它的值是例如 5 它并不意味著它的 2D。


但是為了將數組按降序排序,您可以使用以下代碼:


            int n = intArray.length;

            int temp = 0;


            for(int i=0; i < n; i++){

                    for(int j=1; j < (n-i); j++){


                            if(intArray[j-1] < intArray[j]){

                                    //swap the elements!

                                    temp = intArray[j-1];

                                    intArray[j-1] = intArray[j];

                                    intArray[j] = temp;

                            }


                    }

            }


查看完整回答
反對 回復 2022-01-06
  • 3 回答
  • 0 關注
  • 357 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號