シェルソートのサンプルコード
 引数で配列を渡すことによって、その配列をシェルソートでソートするです。
 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:
class InsertSortTest{
    public static void main(String[] args){
        int[] arr = {8, 6, 2, 5, 4, 9, 1, 3, 0, 7};
        
        System.out.print("ソート前:");
        arrayPrintln(arr);
        
        shellSort(arr);

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

    //シェルソート****************************************
    public static void shellSort(int[] arr){
        int i, j;
        for(int gap=arr.length / 2; gap > 0; gap/=2){
            for(int h=0; h<gap; h++){
                for(i=h+gap; i<arr.length; i+=gap){
                    int tmp = arr[i];
                    for(j=i-gap; j>=h; j-=gap){
                        if(arr[j] < tmp){
                            break;
                        }
                        arr[j+gap] = arr[j];
                    }
                    arr[j+gap] = tmp;
                }
            }
        }
    }
    
    //配列の値を出力するメソッド*******************
    public static void arrayPrintln(int[] arr){
        for(int i=0; i<arr.length; i++){
            System.out.print(arr[i] + " ");
        }
        System.out.println("");
    }
}

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