网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

java实现希尔排序完整代码

  • 排序是将一串数据按照其某个或者某些关键字的大小进行递增或递减排列的操作我,通常指的排序是升序,排序方式是原地排序
  • 下面介绍下希尔排序
希尔排序
  • 原理:
    • 指定一个值gap,将待排序区间分成gap个组,每个组相邻元素的下标差值是gap。将每个组元素进行排序
    • 减小gap的值,重复进行排序直到gap等于1
    • 当gap等于1的时候,数组变成有序数组
  • 实质:
    • 希尔排序是对直接插入排序的优化
    • 当gap>1时都是进行序排序,当gap=1时,数组已接近有序
  • 希尔排序是一个不稳定的排序
实现方式
    public void shellSort(int[] array) {
            int gap = array.length;
            while(gap > 1) {
                    insertSortGap(array, gap);
                    //gap的缩小方式决定了性能提升的程度
                    gap = gap / 3 + 1;
            }
            insertSortGap(array, 1);
    }

    private void insertSortGap(int[] array, int gap) {
            for(int i = 0; i < array.length; i++) {
                    int tmp = array[i];
                    int j = i - gap;
                    for(;j > 0 && array[j] > tmp; j -= gap) {
                            array[j + gap] = array[j];
                    }
                    array[j + gap] = tmp;
            }
    }
性能分析
  • 时间复杂度
    • 最好情况:数组有序时时间复杂度是O(N)
    • 最快情况:时间复杂度是O(N^2),很难构造出实例
    • 平均情况:时间复杂度是O(N^1.3)
  • 空间复杂度:O(1)
  • 稳定性:不稳定

公司主营业务:成都网站设计、网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出雷山免费做网站回馈大家。


标题名称:java实现希尔排序完整代码
网页URL:http://bjjierui.cn/article/jijcih.html

其他资讯