分治法的一种应用,也是一种基础算法,就不多做介绍了,只是把简单实现的代码贴上来。
#include<iostream>
using namespace std;
int N;
int a[10000];
void QuickSort(int left, int right){
int i = left, j = right;
int pivot = a[left];
while(i <= j){
while(a[j] > pivot) j--;
while(a[i] < pivot) i++;
if(i <= j){
int temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}
if(left < j){
QuickSort(left, j);
}
if(i < right){
QuickSort(i, right);
}
}
int main(){
cin >> N;
for(int i = 0; i < N; i++) cin >> a[i];
QuickSort(0, N - 1);
for(int i = 0; i < N; i++){
if(i == 0) cout << a[i];
else cout << ' ' << a[i];
}
}