#include<iostream>
#include<string.h>
#include<math.h>
using namespace std;
void printArr(int arr[], int len);
void quickSort(int arr[], int left, int right);
int partion(int arr[], int left, int right);
int main(){
int arr[] = {4,5,3,8,4,8,2,7,10};
int len = (sizeof(arr)/sizeof(int));
quickSort(arr, 0, len-1);
printArr(arr, len);
return 0;
}
void printArr(int arr[], int len){
for(int i=0; i<len; ++i){
cout<<arr[i]<<" ";
}
cout<<endl;
}
void quickSort(int arr[], int left, int right){
int index = partion(arr, left, right);
if(left < index-1){
quickSort(arr, left, index-1);
}
if(index < right){
quickSort(arr, index, right);
}
}
int partion(int arr[], int left, int right){
int pivot = arr[(left + right)/2];
while(left<=right){
while(arr[left]<pivot){
++left;
}
while(arr[right]>pivot){
--right;
}
if(left<=right){
int tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
++left;
--right;
}
}
return left;
}
快速排序(C++实现)
最新推荐文章于 2024-05-15 07:07:45 发布