注:从索引1的开始排序
#include<iostream>
using namespace std;
int Partition(int arr[] ,int low ,int high){
int tmp = arr[low];
while(low<high){
while(low<high&&arr[high]>=tmp){
high--;
}
arr[low]=arr[high];
while(low<high&&arr[low]<=tmp){
low++;
}
arr[high]=arr[low];
}
arr[low] = tmp;
return low;
}
void QuickSort(int arr[] ,int low ,int high){
if(low<high){
int index = Partition(arr,low,high);
QuickSort(arr,low,index-1);
QuickSort(arr,index+1,high);
}
}
void printArray(int arr[] ,int n)
{
int i;
for(i = 1; i <= n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}
int main(){
int n;
cin>>n;
int arr[n+1];
for(int i=1;i<=n;i++){
cin>>arr[i];
}
QuickSort(arr,1,n);
printArray(arr,n);
return 0;
}