二元数组排序

二元数组按照第一个元素从小到大排序,若第一个相同第二个按照从大到小排序

  1. public class ErYuanZu {  
  2.     
  3.     public static void main(String[] args) {  
  4.         int[][] arrs = { { 12 }, { 34 }, { 32 }, { 36 }, { 24 }, { 22 } };  
  5.     
  6.         System.out.println("排序前:");  
  7.     
  8.         print(arrs);  
  9.         System.out.println("");  
  10.         System.out.println("排序后:");  
  11.         BubbleSort(arrs);  
  12.         print(arrs);  
  13.     }  
  14.     
  15.     public static void BubbleSort(int[][] arr) {    
  16.         boolean flag = true;  
  17.         for (int i = 0; i < arr.length - 1 && flag; i++) {  
  18.             flag = false;  
  19.             for (int j = arr.length - 2; j >= i; j--) {  
  20.                 if (arr[j][0] > arr[j + 1][0] || (arr[j][0] == arr[j + 1][0] && arr[j][1] < arr[j + 1][1])) {  
  21.                     swap(arr, j, j + 1);  
  22.                     flag = true;  
  23.                 }  
  24.     
  25.             }  
  26.         }  
  27.     
  28.     }  
  29.     
  30.     private static void swap(int[][] arr, int j, int i) {  
  31.         int temp1;  
  32.         int temp2;  
  33.         temp1 = arr[j][0];  
  34.         temp2 = arr[j][1];  
  35.     
  36.         arr[j][0] = arr[i][0];  
  37.         arr[j][1] = arr[i][1];  
  38.     
  39.         arr[i][0] = temp1;  
  40.         arr[i][1] = temp2;  
  41.     }  
  42.     
  43.     private static void print(int[][] arr) {  
  44.         for (int i = 0; i < arr.length; i++) {  
  45.             System.out.print("{" + arr[i][0] + "," + arr[i][1] + "}   ");  
  46.     
  47.         }  
  48.     }  
  49. }  

运行结果

  1. 排序前:  
  2. {1,2}   {3,4}   {3,2}   {3,6}   {2,4}   {2,2}     
  3. 排序后:  
  4. {1,2}   {2,4}   {2,2}   {3,6}   {3,4}   {3,2}     
原文地址:https://www.cnblogs.com/wwjldm/p/6952131.html