快速排序算法

 
#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;
}

 


 

posted @ 2014-08-21 21:12  旧客图新  阅读(103)  评论(0编辑  收藏  举报