希尔排序

╄→гoц情女王★ 提交于 2019-11-26 20:07:01

希尔排序是插入排序的一种,也叫做缩减增量排序,是对插入排序的一种优化,但是不稳定。

public class ShellSort {    /**     *希尔排序,也可以叫做缩减增量排序,不稳定,为了减少比较次数,如插入排序 需要n X n     * 原理:通过比较相距一定间隔的元素来工作;     * 各躺所用的距离随着算法的进行而减少,知道只比较相邻元素的最后一个排序位置     *     * 所间隔的k元素都被排序,相比于插入排序,时间会减少     */    public static void main(String[] args) {        int[] a = {77, 12, 88, 42, 7, 22, 78};        sort(a);        System.out.println(Arrays.toString(a));    }    public static void sort(int[] a) {        int j;        for(int gap = a.length/2; gap > 0; gap /= 2) {            for(int i = gap; i < a.length; i++) {                int tmp = a[i];                for(j = i; j >= gap && tmp < a[j-gap]; j -= gap) {                    a[j] = a[j-gap];                }                a[j] = tmp;            }        }    }}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!