输入
第一行为数列的总个数,第二行为待排序的数列
输出
排序后的数列
样例输入
8 10 4 6 3 8 2 5 7样例输出
2 3 4 5 6 7 8 10
代码:
#include<iostream>
#include<cstring>
int r[110];
int Partition(int r[ ],int first,int end)
{
int i=first;
int j=end;
r[0]=r[i];
while(i<j)
{
while(i<j&&r[0]<=r[j])
j--;
if(i<j)
{
r[i]=r[j];
i++;
}
while(i<j && r[i]<= r[0])
i++;
if(i<j)
{
r[j]=r[i];
j--;
}
}
r[i]=r[0];
return i;
}
void QuickSort(int r[ ],int first,int end )
{
if(first<end)
{
int pivotpos=Partition(r,first,end);
QuickSort(r,first,pivotpos-1);
QuickSort(r,pivotpos+1,end );
}
}
using namespace std;
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>r[i];
}
QuickSort(r,1,n);
for(int i=1;i<=n;i++)
{
cout<<r[i]<<" ";
}
cout<<endl;
return 0;
}