博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
希尔排序(Shell)
阅读量:6271 次
发布时间:2019-06-22

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

希尔排序的实质就是分组插入排序,该方法又称缩小增量排序。

该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。因为直接插入排序在元素基本有序的情况下(接近最好情况),效率是很高的,因此希尔排序在时间效率上比前两种方法有较大提高。

就是直接插入排序的升级版,可以和直接插入排序进行对比,就比较容易理解。

1.固定增量r,每次除2

/*	 * shell排序	 * 希尔排序 直接插入排序的升级版*/	static void shellSort(int[] a){		int j,i,h;		int r,temp;		int x=0;		for(r= a.length/2;r>=1;r/=2){			for(i =r ;i
=0 && temp

  2.自定义增量数组:int[] dlta= new int[]{3,2,1},这个数组自定义,数量视实际情况而定。

static void ShellInsert(int[] a,int dk){		int i,j;		for(i = dk+1;i
0&&a[0]

  

转载地址:http://ajlpa.baihongyu.com/

你可能感兴趣的文章
短址(short URL)
查看>>
C++零基础教程(一)——何谓编程
查看>>
第十三章 RememberMe——《跟我学Shiro》
查看>>
mysql 时间函数 时间戳转为日期
查看>>
索引失效 ORA-01502
查看>>
Oracle取月份,不带前面的0
查看>>
Linux Network Device Name issue
查看>>
IP地址的划分实例解答
查看>>
如何查看Linux命令源码
查看>>
运维基础命令
查看>>
Linux下的lds链接脚本简介(二)
查看>>
入门到进阶React
查看>>
C++每日练笔之日期类(基类)
查看>>
SVN 命令笔记
查看>>
修复Postfix 的Relay access denied问题
查看>>
检验手机号码
查看>>
重叠(Overlapped)IO模型
查看>>
ffmpeg study 1
查看>>
Git使用教程
查看>>
使用shell脚本自动监控后台进程,并能自动重启
查看>>