快速排序的算法,没错但是出不来结果,感觉是对数组赋值的地方出了问题
#include<iostream>using namespace std;
const m=50;
void Quicksort(int a[],int s,int t)
{
int temp;
int i=s+1;
int j=t;
int x=a[s];
while(i<=j)
{
while(a[i]<=x&&i<=j)
i++;
while(a[j]>=x&&j>=i)
j--;
if(i<j)
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
i++;
j--;
}
}
if(s!=j)
{
a[s]=a[j];
a[j]=x;
}
if(s<j-1)
Quicksort(a,s,j-1);
if(j+1>t)
Quicksort(a,j+1,t);
}
int main()
{
int a[m];
int i,n;
cout<<"需要对几个数进行排序:"<<endl;
cin>>n;
cout<<"请输入需要排序的整数:"<<endl;
for(i=0;i<n;i++)
cin>>a[i];
Quicksort(a,0,n-1);
for(i=0;i<n;i++)
cin>>a[i];
return 0;
}