23205 - 快速排序(普通快排)

include<bits/stdc++.h>

using namespace std; int arr[100001],n; void quickSort(int left, int right){

if(left>=right) return;
int i,j,base,temp;
i=left,j=right;
base=arr[left];  //取最左边的数为基准数
while(i<j){
	while(arr[j]>=base&&i<j) j--;
	while(arr[i]<=base&&i<j) i++;
	if(i<j){
		temp=arr[i];
		arr[i]=arr[j];
		arr[j]=temp;
	}
}
//基准数归位
arr[left]=arr[i];
arr[i]=base;
quickSort(left,i-1);//递归左边
quickSort(i+1,right);//递归右边

} int main(){

cin>>n;
for(int i=1;i<=n;i++){
	cin>>arr[i];
}
quickSort(1,n);
for(int i=1;i<=n;i++){
	cout<<arr[i]<<" ";
}
return 0;

}