クイックソートのサンプルコード
 引数で配列を渡すことによって、その配列をクイックソートでソートするです。
 1:
 2:
 3:
 4:
 5:
 6:
 7:
 8:
 9:
 10:
 11:
 12:
 13:
 14:
 15:
 16:
 17:
 18:
 19:
 20:
 21:
 22:
 23:
 24:
 25:
 26:
 27:
 28:
 29:
 30:
 31:
 32:
 33:
 34:
 35:
 36:
 37:
 38:
 39:
 40:
 41:
 42:
 43:
 44:
 45:
 46:
public class QuickSortTest{
    public static void main(String[] args){
        int[] arr = {5, 4, 2, 3, 8, 7, 1, 0, 6, 9};

        System.out.print("ソート前:");
        arrayPrintln(arr);
        
        quickSort(arr, 0, arr.length-1);

        System.out.print("ソート後:");
        arrayPrintln(arr);
    }

    //基本挿入法(クイックソート)*********************************
    public static void quickSort(int[] arr, int left, int right){
        if (left <= right) {
            int p = arr[(left+right) / 2];
            int l = left;
            int r = right;
            
            while(l <= r) {
                while(arr[l] < p){ l++; }
                while(arr[r] > p){ r--; }
                
                if (l <= r) {
                    int tmp = arr[l];
                    arr[l] = arr[r];
                    arr[r] = tmp;
                    l++; 
                    r--;
                }
            }
    
            quickSort(arr, left, r);
            quickSort(arr, l, right);
        }
    }

    //配列の値を出力するメソッド***********************************
    public static void arrayPrintln(int[] arr){
        for(int i=0; i<arr.length; i++){
            System.out.print(arr[i] + " ");
        }
        System.out.println("");
    }
}

TOPに戻る   Javaアルゴリズムに戻る