1. 程式人生 > >八種排序演算法Java實現-希爾排序

八種排序演算法Java實現-希爾排序

/*********希爾排序先從0定義再到gap*********************/
public static int[] shell2(int []num,int len){

    int j=0;
    for(int gap=len/2;gap>0;gap/=2){
        for(int i=0;i<len-gap;i++){

            j=i;
            while((j>=0)&&(num[j]>num[j+gap])){

                num[j]=num[j+gap]+num[j];
                num[j+gap]=num[j]-num[j+gap];
                num[j]=num[j]-num[j+gap];
                j=j-gap;

            }
            System.out.print(1+",");
        }
    }
    return num;
}
/*******************希爾排序先從gap定義再到0*********************/
public static int[] shell(int []num,int len){

    for(int gap=len/2;gap>0;gap/=2){
        for(int i=gap;i<len;i++){
            for(int j=i-gap;(j>=0)&&(num[j]>num[j+gap]);j-=gap){

                num[j]=num[j+gap]+num[j];
                num[j+gap]=num[j]-num[j+gap];
                num[j]=num[j]-num[j+gap];
            }
            System.out.print(1+",");
        }
    }
    return num;
}