希尔排序_C++

简介: 是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。

是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。
希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。。

{
int c=*a;
*a=*b;
*b=c;
}
void shell(int*data,unsigned int len)
{
if(len<=1||data==NULL)
 return;
for(int div=len/2;div>=1;div=div/2)//定增量div,并不断减小
{
 for(int i=0;i<=div;++i)//分组成div组
 {
  for(int j=i;j<len-div;j+=div)//对每组进行插入排序
   for(int k=j;k<len;k+=div)
    if(data[j]>data[k])
     swapInt(data+j,data+k);//交换两个数的值
 }
}
}
目录
相关文章
|
2月前
|
搜索推荐 Shell C++
C++希尔排序的实现
C++希尔排序的实现
|
2月前
直接插入排序与希尔排序
直接插入排序与希尔排序
24 2
|
3月前
|
搜索推荐
直接插入排序和希尔排序
直接插入排序和希尔排序
34 0
|
4月前
|
存储 搜索推荐 算法
插入排序(一)——直接插入排序与希尔排序
插入排序(一)——直接插入排序与希尔排序
31 1
|
6月前
|
算法 搜索推荐 Shell
18 希尔排序
18 希尔排序
12 0
|
7月前
|
搜索推荐
希尔排序
希尔排序。
17 0
|
7月前
插入排序与希尔排序
插入排序与希尔排序
22 0
|
9月前
|
搜索推荐 测试技术 C++
【插入排序】直接插入排序 与 希尔排序
【插入排序】直接插入排序 与 希尔排序
|
人工智能 算法 搜索推荐
常见排序算法之插入排序——直接插入排序、希尔排序
哈喽大家好,我是保护小周ღ,本期为大家带来的是常见排序算法中的插入排序,主要有直接插入排序以及它的升级版——希尔排序,包您一看就会,快来试试吧~
116 0
常见排序算法之插入排序——直接插入排序、希尔排序
|
搜索推荐 算法 C#
C#——希尔排序
C#——希尔排序
59 0