1. 程式人生 > >廖雪峰Java1-4陣列操作-2陣列排序

廖雪峰Java1-4陣列操作-2陣列排序

氣泡排序法

將第一個值和後面的值,挨個比較,如果手裡的值比序列的值小,就交換資料,拿新的數字繼續比較,直到最後。
再將第二個值和後面的值,挨個比較。
迴圈往復,排序完成。

int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
        for (int i = 0;i < ns.length;i++){
            for(int j = i+1;j < ns.length;j++){
                if (ns[i] > ns[j]){
                    //交換ns[i]和ns[j]
                    int tmp = ns[j];
                    ns[j] = ns[i];
                    ns[i] = tmp;
                }
            }
        }
        System.out.println(Arrays.toString(ns));

使用jdk的Arrays.sort()直接排序

sort對大陣列進行快速排序,對小陣列仍使用氣泡排序

int[] ns = {28, 12, 89, 73, 65, 18, 96, 50, 8, 36};
        Arrays.sort(ns);
        System.out.println(Arrays.toString(ns));

檢視原始碼

使用command+滑鼠左擊,即可檢視原始碼。
如果沒有jdk原始碼,只要將Attach Source——External Location新增jdk原始碼即可。
windows:在jdk的根目錄下
Mac:jdk1.8.0_131.jdk/Contents/Home/下

總結

  • 常用的排序演算法:氣泡排序、比較排序、快速排序
  • 氣泡排序使用兩層for迴圈實現
  • 交換兩個變數的值需要通過一個臨時變數
  • 可以直接使用jdk的Arrays.sort()排序
  • ctrl+左鍵/command+左鍵,快速檢視原始碼
  • 對陣列進行排序,會修改陣列本身。