首页 > 编程语言 > 详细

希尔排序

时间:2018-06-22 12:17:22      阅读:193      评论:0      收藏:0      [点我收藏+]

插入排序的升级,先设比较大的步长进行插入排序,然后步长逐步减少,最后保证步长为1的一次插入排序即可

请参考插入排序排序接口与抽象类(java)

package com.bsc.algorithm.sort.shell;

import com.bsc.algorithm.sort.insert.InsertSort;

/**
 * 希尔排序
 * 
 * @author bsc
 *
 */
public class ShellSort<T extends Comparable<T>> extends InsertSort<T> {
    protected void sort(T[] data, int cr) {
        int length = data.length;
        //初始步长为数组长度的一半
        int increment = length / 2;
        while (increment > 0) {
            //进行插入排序
            sort(data, cr, increment);
            //步长每次减少一半(保证最后一次排序步长为1)
            increment = increment / 2;
        }
    }
}

 

希尔排序

原文:https://www.cnblogs.com/bsc2012/p/9212485.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!