c++快速排序 不知道是哪里出了问题 ....
#include<iostream>
using namespace std;
void fun(int a[],int low,int high)
{
int i,j,key,change;
i=low;
j=high;
key=a[(low+high)/2];
while(i<j)
{
while(a[i]<=key)
++i;
while(a[j]>key)
--j;
if(i>=j)
break;
if(i<j)
{
change=a[i];
a[i]=a[j];
a[j]=change;
++i;
--j;
}
}
if(i==j)i++;
if(low<i-1)
fun(a,low,i-1);
if(i<high)
fun(a,i,high);
}
int main()
{
int n,a[100000];
cin>>n;
for(int h=0;h<n;h++)
cin>>a[h];
fun(a,0,n-1);
for(int g=0;g<n;g++)
cout<<a[g]<<" ";
return 0;
}
排序中总是有几个数顺序不对