希尔排序

来源:互联网 发布:济南网络推广招聘 编辑:程序博客网 时间:2024/05/29 18:36
package lsn1.sjjg.cct.cn.lsn1;import org.junit.Test;/** * 希尔排序 * Created by linyaokui on 17/12/8. */public class ShellSort {    @Test    public void test(){        int[] array=new int[]{3,9,1,2,5,4,7,8,6};        insertSort(array,2);        for (int i : array){            System.out.print(i + " ");        }        System.out.println(" ");        insertSort(array,1);        for (int i : array){            System.out.print(i + " ");        }    }    /**     * 希尔排序     *     * @param array 需要排序的数组     * @param step  步长     */    public void insertSort(int[] array, int step) {        for (int k = 0; k < step; k++) {            //对步长的定位,选择每次操作的开始位置            for (int i = k+step; i < array.length; i+=step) {                int target = array[i]; // 要插入的目标数据                int j = i;                // 如果j移动到0 或者发现比它小的就停止插入                while (j > step+k-1 && array[j - step] > target) {                    array[j] = array[j - step];                    j-=step;                }                array[j] = target; //执行插入            }        }    }}
原创粉丝点击