快速排序
#include<bits/stdc++.h>
using namespace std;
int a[1010];
void qsort(int l,int r)
{
?? ?int i,j,x;
?? ?if(l>=r) return ;
?? ?x=a[l];//數組左邊作分水嶺
?? ?i=l; j=r;
?? ?while(i<j) {
?? ??? ?while(i<j&&a[j]>x) j--;
?? ??? ?if(i<j) {
?? ??? ??? ?a[i]=a[j]; i++;
?? ??? ?}
?? ??? ?while(i<j&&a[i]<=x) i++;
?? ??? ?if(i<j) {
?? ??? ??? ?a[j]=a[i]; j--;
?? ??? ?}
?? ?}
?? ?a[i]=x;
?? ?qsort(l,i-1);
?? ?qsort(i+1,r);
}
int main()
{
?? ?int n;
?? ?cin>>n;
?? ?for(int i=1;i<=n;++i) cin>>a[i];
?? ?qsort(0,n-1);
?? ?for(int i=1;i<=n;++i) cout<<a[i]<<" ";
?? ?return 0;
}
2
void qsort(int l,int r)
{
?? ?int i=l-1,j=r+1;
??? while(i<j) {
?? ?? do i++; while(a[i]<x);
?? ?? do j--; while(a[j]>x);
?? ?? if(i<j) swap(a[i],a[j]);
??? }
??? qsort(l,j);
??? qsort(j+1,r);
}
int main()
{
?? ?cin>>n;
?? ?for(int i=0;i<n;++i) cin>>a[i];
?? ?qsort(0,n-1);
?? ?for() cout<<a[i]<<" ";
?? ?return 0;
}