数据结构与算法

希尔排序

import java.util.Arrays;

public class ShellSort {
    public static void main(String[] args) {
        int[] array = {12, 34, 33, 98, 67, 54, 9, 11};
       // sort1(array);
        sort2(array);
    }



    //移位式
    public static void sort2(int[] array) {
        //分组
        //分组次数
        for (int gap = array.length; gap > 0; gap /= 2) {
            //每个元素
            for (int i = gap; i < array.length; i++) {
                //记录当前值
                int j = i;
                int temp = array[i];
                //移位---一定写等号
                while (j - gap >= 0 && temp < array[j - gap]) {
                    array[j] = array[j - gap];
                    j = j - gap;
                }
                //退出循环时,表示位置找到
                array[j] = temp;
            }
        }
        System.out.println(Arrays.toString(array));
    }
}

你可能感兴趣的:(java,算法,数据结构)