首页 > algorithm > 排序5(希尔排序)

排序5(希尔排序)

  今天看了希尔排序,是在直接插入排序上的一种改进,缩小增量的排序。在时间效率上有了较大的改进。
  希尔排序就是用一个递减的序列对数据进行排序。增量序列的取法:没有除了1之外的公因子,而且最后一个元素是1。

#include<stdio.h>
void shellInsert(int *a,int k)
{
int i,j;
for(i=k+1;i<=10;i++)
{
if(a[i]0 && a[0]<a[j];j-=k)
a[j+k]=a[j];
a[j+k]=a[0];
}
}
return;
}
void shellSort(int *a,int *zeng,int t)
{
int k;
for(k=0;k<t;k++)
shellInsert(a,zeng[k]);
return;
}
int main()
{
int i,a[11]={0,4,5,7,8,1,9,3,6,11,2};
int zeng[3]={5,3,1};
shellSort(a,zeng,3);
for(i=1;i<11;i++)
printf(“%d “,a[i]);
printf(“\n”);
return 0;
}

  1. Helda 9月 3rd, 2012 @ 08:51 | #1

    This forum needed shaknig up and you’ve just done that. Great post!

评论提交中, 请稍候...

留言


可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks