快排

#include <stdio.h>
#include <iostream>
#include <vector>
#include <stack>
#include <algorithm>
#include <string>
using namespace std;

int partition(vector<int>&arr, int l, int r)
{
	int pivot = arr[r];
	int k = l;
	for (int i = l; i < r; ++i)
	{
		if (arr[i] < pivot)
			swap(arr[i], arr[k++]);
	}
	swap(arr[k], arr[r]);
	return k;
}
void quickSort(vector<int>&arr, int l, int r)
{
	if (l >= r) return;
	int k = partition(arr, l, r);
	quickSort(arr, l, k - 1);
	quickSort(arr, k + 1, r);
}
int main()
{
	vector<int> input = { 4, 5, 1, 6, 2, 7, 3, 8 };

	quickSort(input, 0,input.size() - 1);

	return 0;
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注