博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排序算法之希尔排序
阅读量:4618 次
发布时间:2019-06-09

本文共 1338 字,大约阅读时间需要 4 分钟。

1、基本思想

  在要排序的一组数中,按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序。当增量减到1时,进行直接插入排序后,排序完成。

2、代码示例

package  sort;/** * 希尔排序(最小增量排序)  * */public class ShellSort {        public void TestSort() {        int a[]={1,54,6,3,78,34,12,45,56,100};         sort(a);        sort2(a);    }        public void sort(int arr[]){         //数组长度        int len=arr.length;         //临时变量        int temp=0;         //增量d(n/2,n为要排序数的个数)        int d=len;        while(true){            d=d/2;            //直接插入排序            for(int k=0;k
=0&&temp
0; gap /= 2) {
//步长 for (i = 0; i < gap; i++) //直接插入排序 { for (j = i + gap; j < len; j += gap) if (arr[j] < arr[j - gap]) { int temp = arr[j]; int k = j - gap; while (k >= 0 && arr[k] > temp) { arr[k + gap] = arr[k]; k -= gap; } arr[k + gap] = temp; } } } for (i = 0; i < arr.length; i++){ System.out.print(arr[i] + " "); } }}

3、效率分析

 

转载于:https://www.cnblogs.com/hehaiyang/p/4754729.html

你可能感兴趣的文章
C语言学习笔记--字符串
查看>>
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>
1.初识代码审计-基础
查看>>
[Vue-rx] Stream an API using RxJS into a Vue.js Template
查看>>
解决VC几个编译问题的方法——好用
查看>>
SPOJ #11 Factorial
查看>>
City Upgrades
查看>>
“人少也能办大事”---K2 BPM老客户交流会
查看>>
关于七牛进行图片添加文字水印操作小计
查看>>
DataSource数据库的使用
查看>>
Luogu4069 SDOI2016 游戏 树链剖分、李超线段树
查看>>
Java的内部类真的那么难以理解?
查看>>
一文搞懂Java环境,轻松实现Hello World!
查看>>
hash实现锚点平滑滚动定位
查看>>
也谈智能手机游戏开发中的分辨率自适应问题
查看>>
关于 IOS 发布的点点滴滴记录(一)
查看>>
《EMCAScript6入门》读书笔记——14.Promise对象
查看>>
CSS——水平/垂直居中
查看>>
Eclipse连接mysql数据库jdbc下载(图文)
查看>>