二維數組冒泡排序

johon 13年前發布 | 3K 次閱讀 Strongloop Node gp|Easy CMS Evince

一維數組冒泡排序:
    int[] arr = new int[]{5,1,8,2,9,4,6,7,3,6,54};
        int temp;
for(int i = 0; i < arr.length; i++){
    for(int j = i + 1; j < arr.length; j++){
         if(arr[i] > arr[j]){
              temp = arr[i];
              arr[i] = arr[j];
              arr[j] = temp;
          }
     }
}

二維數組冒泡排序:
(1).轉化為一維
       int[][] arr2 = {{9,3,5},{2,7,4},{8,1,6}};
       long s = System.nanoTime();
       for(int i = 0; i < arr2.length; i++){
           for(int j = 0 ; j < arr2[i].length; j++){
               for(int ii = i*arr2[i].length+j+1; ii < arr2.length*arr2[i].length; ii++){
                   if(arr2[i][j] > arr2[ii/3][ii-(ii/3)*arr2[i].length]){
                      temp = arr2[i][j];
                      arr2[i][j] = arr2[ii/3][ii-(ii/3)*arr2[i].length];
                      arr2[ii/3][ii-(ii/3)*arr2[i].length] = temp;
                   }
               }
           }
       }
       long e = System.nanoTime();
       System.out.println("程序的運行時間是:"+(e-s)); //程序的運行時間是:6586
(2).直接二維排序
        long s = System.nanoTime();
        for(int i = 0; i < arr2.length; i++){
           for(int j = 0 ; j < arr2[i].length; j++){
               for(int ii = 0; ii < arr2.length; ii++){
                   for(int jj = 0; jj < arr2[ii].length; jj++){
                       if(arr2[i][j] < arr2[ii][jj]){
                           temp = arr2[ii][jj];
                           arr2[ii][jj] = arr2[i][j];
                           arr2[i][j] = temp;
                       }
                   }

               }
           }
       }
       long e = System.nanoTime();
       System.out.println("程序的運行時間是:"+(e-s));//程序的運行時間是:7494
通過時間比較可得出:二維數組冒泡排序時轉化為一維數組較快。

 本文由用戶 johon 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!