数据结构-*-希尔排序

希尔排序

缩小增量排序,第一种突破了O(n^2)的一种排序算法,时间复杂度为:O(n ^3/2)。
是插入排序的一种,不断的缩小数据间隔,则最终一次退化为直接插入排序。
SortSequence BubbleSort 请见简单排序

package per.lihao.sort.complexsort;

import per.lihao.sort.SortSequence;
import per.lihao.sort.simplesort.BubbleSort;

/**
 * 希尔排序 又叫做缩小增量排序,是插入排序的一种
 * 思路是:对数据利用增量进行分组插入排序,并且不断地缩小增量到1,最后执行一次直接插入排序
 * 由于之前已经经历过多次分组插入排序,整体序列已经有序,这样在最后排序时效率较高
 * 是第一种突破了O(n^2)的一种排序算法,时间复杂度为:O(n^3/2)
 * 关于增量的取法:
 * 增量increment的取法有各种方案。
 * 最初shell提出取increment=n/2向下取整,increment=increment/2向下取整,直到increment=1。
 * 但由于直到最后一步,在奇数位置的元素才会与偶数位置的元素进行比较,这样使用这个序列的效率会很低。
 * 后来Knuth提出取increment=n/3向下取整+1.还有人提出都取奇数为好,也有人提出increment互质为好。
 * 应用不同的序列会使希尔排序算法的性能有很大的差异
 * Time: 2018/12/7 9:47
 */
public class ShellSort {
   
    public static int[] sort(int[] array){
   
        return sort(array,true)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值