怎么弄希尔排序法?
发表在C++图书答疑
2018-01-17 悬赏:1 学分
《C++从入门到精通(第3版)》第8章 构造数据类型
是否精华
是
否
版块置顶:
是
否
#include<stdio.h>
int p(int a[],int low,int high)
{
int key=a[low],p;
while(low<high)
{
while (low<high && a[high]>=key)
--high;
p=a[low];a[low]=a[high];a[high]=p;
while(low<high && a[low]<=key)
++low;
p=a[high];a[high]=a[low];a[low]=p;
}
a[low]=key;
return low;
}
void q(int a[],int low,int high)
{
int j;
if(low<high)
{
j=p(a,low,high);
q(a,low,j-1);
q(a,j+1,high);
}
}
int main()
{
int p(int a[],int low,int high);
void q(int a[],int low,int high);
int a [10];
int i;
printf("请输入10个数,数之间用空格隔开\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("快速排序法有小到大排序为\n");
for(i=0;i<10;i++)
printf("%d",a[i]);
printf("\n");
}
程序错的怎么改写成 希尔排序法(输入是个数字空格个开,用希尔排序法把它们按从小到大方式输出)
首页上一页 1 下一页尾页 1 条记录 1/1页