希尔排序
Posted l-x-x-y-d-j
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了希尔排序相关的知识,希望对你有一定的参考价值。
希尔排序是插入排序的一种,也叫做缩减增量排序,是对插入排序的一种优化,但是不稳定。
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;
以上是关于希尔排序的主要内容,如果未能解决你的问题,请参考以下文章