编辑代码

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

//快排划分函数
int partition(vector<int>& arr, int l, int r) {
	int temp = arr[l];
	int j = l;
	for (int i = l + 1; i <= r; i++) {
		//不断寻找,如果小于基准与下标j+1进行交换;否则一直自身交换
		if (arr[i] < temp) {
			swap(arr[j + 1], arr[i]);
			j++;
		}
	}
	swap(arr[l], arr[j]);
	return j;
}
//快速排序
void quicksort(vector<int>& arr,int l,int r) {
	if (l >= r) return;
	int p = partition(arr, l, r);
	quicksort(arr, l, p - 1);
	quicksort(arr, p + 1, r);
}
void print_arr(vector<int>& arr) {
	int n = arr.size();
	for (int i = 0; i < n; i++) {
		cout << arr[i] << "  ";
	}
	cout << endl;
}
int main() {
	vector<int> arr = { 11,9,3,20,56,32 };
	cout << "排序前:" << endl;
	print_arr(arr);
	quicksort(arr,0,arr.size()-1);
	cout << "排序后:" << endl;
	print_arr(arr);
	system("pause");
	return 0;
}