#include <bits/stdc++.h>
using namespace std;
int a[100005];
int part(int low,int high)
{
int prior=a[low];
while(low<high)
{
while(low<high&&a[high]>=prior)high--;
a[low]=a[high];
while(low<high&&a[low]<=prior)low++;
a[high]=a[low];
}
a[low]=prior;
}
void quickSort(int low,int high)
{
if(low<high)
{
int pos=part(low,high);
quickSort(low,pos-1);
quickSort(pos+1,high);
}
}
int main()
{
int n;
scanf("%d",&n);
for(int i=1; i<=n; i++)
scanf("%d",&a[i]);
quickSort(1,n);
for(int i=1; i<=n; i++)
{
printf("%d ",a[i]);
}
return 0;
}
递归实现快排
最新推荐文章于 2023-09-14 20:49:02 发布