快速排序

#include<bits/stdc++.h>
using namespace std;
int a[100010],n;
void qsort(int l,int r)
{
	int mid=a[(l+r)/2];
	int i=l,j=r;
	do{
		while(a[i]<mid)
			i++;
		while(a[j]>mid)
			j--;
		if(i<=j)
		{
			swap(a[i],a[j]);
			i++;
			j--;
		}
	}while(i<=j); 
	if(j>l)
		qsort(l,j);
	if(i<r)
		qsort(i,r);
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	qsort(1,n);
	for(int i=1;i<=n;i++)
	{
		cout<<a[i]<<" ";
	}
	return 0;
}
posted @ 2022-03-25 18:02  王茨  阅读(25)  评论(0)    收藏  举报