2020-3-30 快速排序思想和实现
快速排序是对于冒泡排序的改进
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int partition(vector<int> &arr, int left, int right) {
int pivot = arr[left];
int i = left;
int j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
while (i < j && arr[i] <= pivot) {
i++;
}
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
arr[left] = arr[i];
arr[i] = pivot;
return i;
}
void quickSort(vector<int> &arr, int left, int right) {
if (left < right) {
int mid = partition(arr, left, right);
quickSort(arr, left, mid - 1);
quickSort(arr, mid + 1, right);
}
}
int main()
{
vector<int>arr = {5, 3, 4, 7, 9, 8, 0, 6};
quickSort(arr, 0, arr.size() - 1);
for (auto x : arr) {
cout << x << ' ';
}
system("pause");
return 0;
}
浙公网安备 33010602011771号