快速排序(C++版)
#include <iostream>
#include <stdio.h>
#include <vector>
using namespace std;
void quickSort(vector<int> &arr, int left, int right)
{
if (left >= right)
return;
int i, j, temp, base;
i = left; j = right;
base = arr[left];
while (i < j)
{
while (arr[j] >= base && i < j)
{
j--;
}
while (arr[i] <= base && i < j)
{
i++;
}
if (i < j)
{
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
arr[left] = arr[i];
arr[i] = base;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
int main()
{
vector<int> arr{ 1,2,10,4,5,3,6 };
quickSort(arr, 0, 6);
vector<int>::iterator it;
for (it = arr.begin(); it != arr.end(); ++it) {
cout << *it << endl;
}
getchar();
}