高手帮忙 求c++ 快速排序
#include<iostream>using namespace std;
void QuickSort(int *a,int low,int high)
{
int i=low,j=high;
int temp=a[low];
if(i<j)
{
while(i<j)
{
while(i<j&&temp<a[j])j--;
if(i<j){a[i]=a[j];i++;}
while(i<j&&temp>=a[i])i++;
if(i<j){a[j]=a[i];j++;}
}
a[i]=temp;
QuickSort(a,low,i-1);
QuickSort(a,i+1,high);
}
}
main()
{
int n;
while(cin>>n)
{
int *a=new int [n];
int i=0;
int p=n;
while(p--)
{cin>>a[i];i++;}
QuickSort(a,0,n-1);
p=n;
i=0;
while(p--)
{cout<<a[i]<<" ";i++;}
cout<<endl;
}
system("pause");
}
17
23 949 123 23 334 12 245 3 45 66 21 -34 5 6 7 22 34
用这组数据测试结果是
-34 3 5 6 7 12 21 22 23 23 0 34 45 66 123 245 949
应该是
-34 3 5 6 7 12 21 22 23 23 34 45 66 123 245 334 949