编了一道关于排序算法的题 可怎么也不出排序结果!求解决!
没多少分了!很不好意思!多谢帮助!!
#include
#define MAX 100
typedef int slist;
/*typedef struct sq{
编了一道关于排序算法的题 可怎么也不出排序结果!求解决!
没多少分了!很不好意思!多谢帮助!!
#include
#define MAX 100
typedef int slist;
/*typedef struct sq{
int key;
int data;
}slist;*/
slist st[MAX];
//插入排序
void Insertsort(slist a[],int n)
{
int i,j;
for(i=2;ii;j--)
if(a[j]=a[0]&&low
high--;
if(low
a[low ]=a[high];
while(a[low]<=a[0]&&low
low ;
if(low
a[high--]=a[low];
a[low]=a[0];
if(i
Quicksort(a,i,low-1);
if(high
Quicksort(a,high 1,j);
}
}
//直接选择排序
void Select(slist a[],int n){
int i,j,k;
for(i=1;k
k=i;
for(j=i 1;j<=n;j )
if(a[j]
k=j;
if(k!=i){
a[0]=a[i];
a[i]=a[k];
a[k]=a[0];
}
}
}
void main()
{
int f,n,i;
printf("请输数据量的长度:
");
scanf("%d",&n);
printf("请输入数据数字内容:
");
for(i=1;i<=n;i )
scanf("%d",&st[i]);
printf("输入数据数字内容为:
");
for(i=1;i<=n;i ) //输出数据数字内容
printf("%d ",st[i]);
printf("
");
printf(" 请输入你想要排序的方式:");
printf("
no.1:插入排序
no.2:冒泡排序
no.3:快速排序
no.4:直接选择排序
");
scanf("%d",&f);
switch(f)
{
case 1:
Insertsort(st,n);
printf("整理后数据数据内容为:
");
for(i=1;i<=n;i ) //输出数据数字内容
printf("%d ",st[i]);
break;
case 2:
Bubblesort(st,n);
printf("整理后数据数据内容为:
");
for(i=1;i<=n;i ) //输出数据数字内容
printf("%d ",st[i]);
break;
case 3:
Quicksort(st,1,n);
printf("整理后数据数据内容为:
");
for(i=1;i<=n;i ) //输出数据数字内容
printf("%d ",st[i]);
break;
case 4:
Select(st,n);
printf("整理后数据数据内容为:
");
for(i=1;i<=n;i ) //输出数据数字内容
printf("%d ",st[i]);
break;
}
}
展开
全部