
c语言排序问题 为什么出现奇怪数字
#include<stdio.h>#defineN10voidquicksort(inta[],intlow,inthigh);intspilt(inta[],intlo...
#include<stdio.h>
#define N 10
void quicksort(int a[],int low,int high);
int spilt(int a[],int low,int high);
int main()
{
int a[N],i;
printf("enter:");
for (i=1;i<=N;i++)
scanf("%d",&a[i]);
quicksort(a,0,N-1);
printf("in sotred order:");
for (i=1;i<=N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void quicksort (int a[],int low,int high)
{
int middle;
if (low>=high) return;
middle =spilt(a,low,high);
quicksort(a,low,middle-1);
quicksort(a,middle+1,high);
}
int spilt(int a[],int low,int high)
{
int part_element=a[low];
for (;;){
while (low<high&&part_element<=a[high])
high--;
if (low>=high) break;
a[low++]=a[high];
while (low<high&&a[low]<=part_element)
low++;
if (low >=high) break;
a[high--]=a[low];
}
a[high]=part_element;
return high;
} 展开
#define N 10
void quicksort(int a[],int low,int high);
int spilt(int a[],int low,int high);
int main()
{
int a[N],i;
printf("enter:");
for (i=1;i<=N;i++)
scanf("%d",&a[i]);
quicksort(a,0,N-1);
printf("in sotred order:");
for (i=1;i<=N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void quicksort (int a[],int low,int high)
{
int middle;
if (low>=high) return;
middle =spilt(a,low,high);
quicksort(a,low,middle-1);
quicksort(a,middle+1,high);
}
int spilt(int a[],int low,int high)
{
int part_element=a[low];
for (;;){
while (low<high&&part_element<=a[high])
high--;
if (low>=high) break;
a[low++]=a[high];
while (low<high&&a[low]<=part_element)
low++;
if (low >=high) break;
a[high--]=a[low];
}
a[high]=part_element;
return high;
} 展开
展开全部
#include<stdio.h>
#define N 10
void quicksort(int a[],int low,int high);
int spilt(int a[],int low,int high);
int main()
{
int a[N],i;
printf("enter:");
for (i=0;i<N;i++)
scanf("%d",&a[i]);
quicksort(a,0,N-1);
printf("in sotred order:");
for (i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void quicksort (int a[],int low,int high)
{
int middle;
if (low>=high) return;
middle =spilt(a,low,high);
quicksort(a,low,middle-1);
quicksort(a,middle+1,high);
}
int spilt(int a[],int low,int high)
{
int part_element=a[low];
for (;;){
while (low<high&&part_element<=a[high])
high--;
if (low>=high) break;
a[low++]=a[high];
while (low<high&&a[low]<=part_element)
low++;
if (low >=high) break;
a[high--]=a[low];
}
a[high]=part_element;
return high;
}
数组下标从0到N-1,希望可以帮到你,祝你生活愉快。
#define N 10
void quicksort(int a[],int low,int high);
int spilt(int a[],int low,int high);
int main()
{
int a[N],i;
printf("enter:");
for (i=0;i<N;i++)
scanf("%d",&a[i]);
quicksort(a,0,N-1);
printf("in sotred order:");
for (i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
void quicksort (int a[],int low,int high)
{
int middle;
if (low>=high) return;
middle =spilt(a,low,high);
quicksort(a,low,middle-1);
quicksort(a,middle+1,high);
}
int spilt(int a[],int low,int high)
{
int part_element=a[low];
for (;;){
while (low<high&&part_element<=a[high])
high--;
if (low>=high) break;
a[low++]=a[high];
while (low<high&&a[low]<=part_element)
low++;
if (low >=high) break;
a[high--]=a[low];
}
a[high]=part_element;
return high;
}
数组下标从0到N-1,希望可以帮到你,祝你生活愉快。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询