Java二維數組冒泡排序

以前都是將二維轉換成一維數組排序,今天老師要求不轉換試了一下,仔細分析了一下冒泡,寫了這個大家可以試試其他的排序方法,應該都可以用

import java.util.Arrays;
class Test 
{
	public static void main(String[] args) 
	{
		int[][] arr={{11,15,32,21},{2,3},{4,5,6}};
		int sum=0;
        for(int[] i: arr)
			for(int j:i)
			if(j>0x8fffffff&&j<0x7fffffff)
			sum++;
		for (int k = 0;k < sum; k++) {
        for (int i = 0;i < arr.length; i++) {
        for (int j = 0;j < arr[i].length; j++) {
        if ((j+1)%arr[i].length != 0) {//不是每行最後的元素
        if (arr[i][j] > arr[i][j+1]) {
         int temp = arr[i][j];
        arr[i][j] = arr[i][j+1];
       arr[i][j+1] = temp;
      }
      } else {
       if (i+1 != arr.length) {//不是最後一行
       if (arr[i][j] > arr[i+1][(j+1)%arr[i].length]) {
        int temp = arr[i][j];
        arr[i][j] = arr[i+1][(j+1)%arr[i].length];
        arr[i+1][(j+1)%arr[i].length] = temp;
      }
     }
    }
   }
  }
 }
		for(int[] i: arr)
			for(int j:i)
			System.out.print(j+" ");
		System.out.println();
     }
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章