希尔排序(java)

public static void shell(int[] array){
    int h=array.length/2;
    while (h >= 1){
        for (int i=h;i<array.length;i++){//分组
            for (int j=i;j>=h;j-=h){//每组进行插入排序
                if (array[j-h]>array[j]){
                    int temp = array[j-h];
                    array[j-h] = array[j];
                    array[j] = temp;
                }else{
                    break;
                }
            }
        }
        h=h/2;
    }
}

先进性分组, 组内进行插入排序

猜你喜欢

转载自blog.csdn.net/Batac_Lee/article/details/110559543