#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
void quickSort(int a[], int n);
int parti(int a[], int pivot, int end) ;
int main(){
int a[10] = {3, 8, 5, 2, 7, 4, 6, 1, 9, -1};
// parti(a, 7, 8);
quickSort(a, 10);
return 0;
}
void quickSort(int a[], int n) {
if (n <= 1) return;
int pivot = n/2;
pivot = parti(a, pivot, n);
quickSort(a, pivot);
quickSort(a + pivot + 1, n - pivot -1);
}
void swap(int& a, int& b){
int temp = a;
a = b;
b = temp;
}
int parti(int a[], int pivot, int end) {
swap(a[pivot], a[0]);
int i = 1, j;
for(j = 0; j < end; j++){
if(a[j] < a[0]) {
swap(a[i], a[j]);
i++;
}
}
swap(a[i-1], a[0]);
return i - 1;
}
QuickSort - C++
最新推荐文章于 2024-05-14 10:51:55 发布