#include <vector>
#include <iostream>
using namespace std;
void quicksort(vector<int> &arr, int low, int high) {
if (low >= high) return;
int pivot = arr[low];
int i = low + 1, lt = low, gt = high;
while (i <= gt) {
if (arr[i] < pivot) {
swap(arr[lt++], arr[i++]);
} else if (arr[i] > pivot) {
swap(arr[i], arr[gt--]);
} else {
i++;
}
}
quicksort(arr, low, lt - 1);
quicksort(arr, gt + 1, high);
}
int main() {
vector<int> arr = {5, 2, 7, 9, 6, 1, 8, 0, 4, 3};
cout << "Before sorting: ";
for (int n : arr) cout << n << " ";
cout << endl << "After sorting: ";
quicksort(arr, 0, (int) arr.size() - 1);
for (int n : arr) cout << n << " ";
return 0;
}
三路快排-C++实现
最新推荐文章于 2024-05-10 09:58:15 发布