觅c++各种排序的源程序。

来源:百度知道 编辑:UC知道 时间:2024/05/28 09:01:36
包括插入,直接,选择,归并,堆排序等。急用!!!
谢谢大家了。。。
希望是完整的代码。
谢谢了。如果弄好的话。我还会加分的。谢了。

Shell排序

Shell排序是以发明者命名的一种较快的排序方法。Shell排序基本算法思想是:将整个无序序列分割成若干小的子序分别进行插入排序。

子序列的分割方法为:将相隔某个增量h的元素构成一个子序列。在排序过程中,逐次减小这个增量,?最后当h减到1时,进行一次插入排序,排序就完成。

在本函数中,增量序列取 ht=2t-1,1 tlog2n其中n为待排序序列的长度。

例:(/* 将输入的数据排序后,输出一个测试Shell排序的主函数*/)

#define SIZE 10

main() {

void shell();

int d[SIZE],i;

printf(“Input %d numbers\n",SIZE);

for(i=0;i
scanf(“%d",&d[i]);

shell(d,SIZE);

printf(“After sort:\n")

for(i=0;i
printf(“%5d",d[i]);

printf(“\n");}

/*把数组V的元素按增序排序*/

void shell(v,n)

int v[],n;

{int gap,i,j,temp;

for(gap=n/2;gap>0;gap/=2)

for(i=gap;i
for(j=i-gap;j>=0 && v[j])

v[j+gap];j-=gap)

{ temp=v[j];

v[