算法导论中的思想
#include<iostream>
#include<stdio.h>
#include<vector>
using namespace std;
vector <int> num(10000);
void pws(int a,int b){
int dex = num[a];
num[a] = num[b];
num[b] = dex;
return ;
}
int Quick(int begin,int end){
int index = begin-1;
pws(begin,end);
for(int i = begin;i <end;i++){
if(num[i] < num[end]){
index++;
if(i != index){
pws(i,index);
}
}
}
pws(++index,end);
return index;
}
void sortQuick(int begin,int end){
if(end <= begin){
return ;
}
int index = Quick(begin,end);
sortQuick(begin,index-1);
sortQuick(index+1,end);
return ;
}
int main(){
int n;
cin>>n;
for(int i = 0;i < n;i++){
cin>>num[i];
}
sortQuick(0,n-1);
for(int i = 0;i<n;i++){
cout<<num[i]<<" ";
}cout<<endl;
return 0;
}