觅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[