首页 > 电脑

多组输入的测试出现问题了,求解答

更新时间2019-04-07 20:04:56

#include<stdio.h>

#define N 1000

int swap(int a[],int i,int j)

{

    int temp=a[i];

    a[i]=a[j];

    a[j]=temp;

}

int partition(int a[],int p,int q)

{

int x=a[p];

int i=p,j;

for(j=p+1;j<=q;j++)

{

 if(a[j]<=x)

 {

     i++;

     swap(a,i,j);

 }

}

swap(a,p,i);

return i;

}

void quickSort(int a[],int p,int q)

{

    if(p<q)

    {

        int r=partition(a,p,q);

        quickSort(a,p,r-1);

        quickSort(a,r+1,q);

    }

}

int main()

{

        int i,m,p,a[N];

    while(scanf("%d",&m)!=EOF){

    for(i=0;i<m;i++)

        scanf("%d",&a[i]);

    quickSort(a,0,m);

    for( i=0;i<m;i++)

    {

        printf("%d ",a[i]);

    }

    printf(" ");

    }

    return 0;

}


测试数据;

6 1 8 6 5 3 4

5 12 42 2 5 8

第一个数字代表输入的个数,后面是输入

你的

 quickSort(a,0,m);

应该是

 quickSort(a,0,m-1);

0~m-1是m个数据


上一篇:1060搭载i7-8700

下一篇:斯沃数控仿真6656586652175810大神还有个