快速排序

快排

#include<iostream>
#include<algorithm>
using namespace std;
int n,num[10005];
void qsort(int l,int r)
{
	int i=l,j=r,flag=num[(i+r)/2];
	while(i<=j)
	{
		while(num[i]<flag)i++;
		while(num[j]>flag)j--;
		if(i<=j)
		{
			swap(num[i],num[j]);
			i++,j--;
		}
	}
	if(l<j)qsort(l,j);
	if(i<r)qsort(i,r);
}
int main()
{
	cin >> n;
	for(int i=0;i<n;i++)
		cin >> num[i];
	qsort(0,n-1);
	for(int i=0;i<n;i++)
        cout << num[i] << ' ';
	return 0;
}

 

posted @ 2022-05-29 15:54  风乐  阅读(26)  评论(0)    收藏  举报