#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int partition(int a[],int l,int r){
int i=l,j=r+1;
int x=a[l];
while(true){
while(a[++i]<x&&i<r);
while(a[--j]>x);
if(i>=j)break;
swap(a[i],a[j]);
}
a[l]=a[j];
a[j]=x;
return j;
}
void quickSort(int a[],int l,int r){
if(l<r){
int p=partition(a,l,r);
quickSort(a,l,p-1);
quickSort(a,p+1,r);
}
}
int randPartition(int a[],int l,int r){
int i=rand()%(r-l+1)+l;
swap(a[l],a[i]);
return partition(a,l,r);
}
void randQuickSort(int a[],int l,int r){
if(l<r){
int i=randPartition(a,l,r);
randQuickSort(a,l,i-1);
randQuickSort(a,i+1,r);
}
}
void main(){
srand(time(NULL));
const int n=10;
int a[n];
for(int i=0;i<n;i++){
a[i]=rand()%100+1;
cout<<a[i]<<" ";
}
cout<<endl;
randQuickSort(a,0,n-1);
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
cout<<endl;
system("pause");
}
快速排序
最新推荐文章于 2021-11-19 16:57:43 发布