#include<iostream>usingnamespacestd;
int a[101],n;
void quicksort(int left, int right){
int i,j,t,temp;
if(left > right)
return;
temp = a[left];
i = left;
j = right;
while(i != j){
while(a[j] >= temp && i < j)
j --;
while(a[i] <= temp && i < j)
i ++;
if(i < j)
swap(a[i],a[j]);
}
a[left] = a[i];
a[i] = temp;
quicksort(left,i-1);
quicksort(i+1,right);
return;
}
int main(){
int i,j;
cin>>n;
for(int i=1; i<=n; i++)
cin>>a[i];
quicksort(1,n);
for(int i=1; i<=n; i++)
cout<<a[i]<<' ';
cout<<endl;
return0;
}
形式2
#include<iostream>#include<stdlib.h>usingnamespacestd;
int partition(int arr[],int l,int r){
int random = rand() % (r - l + 1) + l;
swap(arr[l],arr[random]);
int v = arr[l];
int j = l;
for(int i = l + 1; i <= r; i ++){
if(arr[i] < v){
swap(arr[++j],arr[i]);
}
}
swap(arr[l],arr[j]);
return j;
}
void quick_sort(int arr[], int l, int r){
if(l >= r)
return;
int p = partition(arr,l,r);
quick_sort(arr,l,p-1);
quick_sort(arr,p+1,r);
}
int main(){
int arr[8] = {4,6,2,3,1,5,7,8};
quick_sort(arr,0,7);
for(int i = 0 ; i < 8; i++)
cout<<arr[i]<<' ';
cout<<endl;
return0;
}