快速排序算法
#include <iostream>
using namespace std;
namespace mySort
{
void qSort(int * data, int left, int right)
{
if (left >= right)
return;
int i = left;
int j = right + 1;
while (i < j)
{
do i++; while (i<=right && data[i] < data[left]);
//防止数组越界
do j--; while (data[j] > data[left]);
if (i < j)
swap(data[i], data[j]);
}
swap(data[left], data[j]);
qSort(data, left, j - 1);
qSort(data, j+1, right);
}
};
int main()
{
int a[] = {5,4,3,2,1};
mySort::qSort(a, 0, 4);
return 0;
}

浙公网安备 33010602011771号