shell排序

希尔排序

public Class Shell{
    int i, j, temp;
        int increasement = a.length;
        do{
            increasement = increasement /3 + 1;
            for(i = increasement; i < a.length; i++){
                if(a[i] < a[i - increasement]){
                    temp = a[i];
                    for(j = i - increasement; j >=0 && a[j] > temp; j-=increasement){//升序
                        a[j+increasement]=a[j];
                    }
                    a[j+increasement] = temp;
                }
            }
        }while(increasement > 1);

}

你可能感兴趣的:(shell)