#include<bits/stdc++.h>
using namespace std;
void quicksort(vector<int> &arr,int startIndex,int endIndex){
if(startIndex>=endIndex) return;
int privt=arr[(startIndex+endIndex)/2];
int left=startIndex;
int right=endIndex;
while(left!=right){
while(left<right&&arr[right]>privt){
right--;
}
while(left<right&&arr[left]<privt){
left++;
}
if(left<right){
int p=arr[right];
arr[right]=arr[left];
arr[left]=p;
}
}
if(left==(startIndex+endIndex)/2) return;
quicksort(arr,startIndex,left);
quicksort(arr,left,endIndex);
}
int main(){
vector<int> a;
int pp;
srand((unsigned)time(NULL));
for(int i=0;i!=15;++i){
pp=rand();
a.push_back(pp);
}
printf("-----------------------排序前-------------------------\n");
for(int i=0;i!=a.size();++i){
printf("%d ",a[i]);
}
cout<<"----------------------排序后-------------------------"<<endl;
quicksort(a,0,a.size()-1);
for(int i=0;i!=a.size();++i){
printf("%d ",a[i]);
}
return 0;
}
快速排序
最新推荐文章于 2021-11-19 16:57:43 发布