算法--04.希尔排序

原创 2016年08月29日 20:53:14

希尔排序

希尔排序(Shell`s Sort)可以看成是在插入排序的基础上,利用插入排序基本有序效率高的特性,将元素分组,进行排序。

for(step=n/2; step>0; step/=2)
    for(i=step;i<n;i++)

for(step)将数组分为N/2组,然后慢慢缩量,最终汇成一组进行总插入排序;
for(i)如同插入排序,将元素在组内进行排序;

参考学习
白话经典算法系列之三 希尔排序的实现
http://blog.csdn.net/morewindows/article/details/6668714

性能分析

平均时间复杂度O(nlog2n)

空间复杂度:O(1)

稳定性:不稳定

版权声明:无版权声明,任意转载。

算法(第四版)——04希尔排序

public class ShellSort { public static void main(String[] args) { int[] a = {45,67,43,28,90,15,77...
  • sdsxxzw
  • sdsxxzw
  • 2016年11月11日 17:16
  • 141

希尔排序算法(排序详解)

希尔排序  基本思想 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提...
  • qq845579063
  • qq845579063
  • 2016年05月18日 21:12
  • 1278

经典排序算法---希尔排序(C/C#)

原理:每隔sp(整数)个数即取数并判断大小,交换,先构造局部有序序列,直到sp为1,构造完整的有序序列。         给出一组数据,如下: 0 1 2 3 4 5 ...
  • lucky51222
  • lucky51222
  • 2014年05月18日 00:57
  • 2436

PHP实现排序算法----希尔排序(Shell Sort)

基本思想:希尔排序是指记录按下标的一定增量分组,对每一组使用 直接插入排序 ,随着增量逐渐减少,每组包含的关键字越来越多,当增量减少至 1 时,整个序列恰好被分成一组,算法便终止。操作步骤:先取一个小...
  • baidu_30000217
  • baidu_30000217
  • 2016年11月08日 19:04
  • 1162

数据结构基础 希尔排序 之 算法复杂度浅析

希尔排序(Shell Sort)又叫做缩小增量排序(diminishing increment sort),是一种很优秀的排序法,算法本身不难理解,也很容易实现,而且它的速度很快。 Shell排序通过...
  • u013630349
  • u013630349
  • 2015年09月06日 21:18
  • 1492

C++、C#、java算法学习日记05----希尔排序(ShellSort)

希尔排序是插入式排序的一种,也称缩小增量排序,是对 直接插入排序  的一种更高效的改进算法, 基本思想:      希尔排序是把记录按下标的一定增量(也就是按一定的步长)分组,对每组使用直接插...
  • HC666
  • HC666
  • 2015年11月01日 18:14
  • 876

经典算法之希尔排序(三种实现)

希尔排序的实质就是分组插入排序,该方法又称缩小增量排序,因DL.Shell于1959年提出而得名。该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直...
  • IWantToHitRen
  • IWantToHitRen
  • 2016年06月04日 10:01
  • 745

希尔排序的C++实现

感谢博主 http://www.cnblogs.com/90zeng/p/shell_sort.html 1.原理介绍 希尔排序又称为缩小增量排序,由D.L.Shell在1959年提出...
  • xinpo66
  • xinpo66
  • 2015年01月13日 12:10
  • 1884

《常见算法和数据结构》元素排序(2)——希尔排序(动画)

元素排序(2)——希尔排序 本系列文章主要介绍常用的算法和数据结构的知识,记录的是《Algorithms I/II》课程的内容,采用的是“算法(第4版)”这本红宝书作为学习教材,通过这系列文章,...
  • hk2291976
  • hk2291976
  • 2016年04月06日 22:58
  • 1185

希尔排序&选择排序&时间复杂度分析

#include #include void shellsort(char array[],int len); void selectsort(char array[],int len); v...
  • cxcxcqq
  • cxcxcqq
  • 2013年10月04日 00:44
  • 2074
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:算法--04.希尔排序
举报原因:
原因补充:

(最多只允许输入30个字)