快速排序(递归)算法

void QuickSort(int* a, int begin,int end)
{
	if (begin >= end)
		return;
	int left = begin;
	int right = end;
	int key = left;
	while (left < right)
	{
		while (left < right && a[right] >= a[key])
			right--;
		while (left < right && a[left] <= a[key])
			left++;
		if (left < right)
			Swap(&a[left], a[right]);

	}
	int meet = left;
	Swap(&a[key], &a[meet]);
	QuickSort(a, begin, meet - 1);
	QuickSort(a, meet + 1, end);
}

上一篇:mysql存储过程循环遍历某个表以及事件


下一篇:关于二项式反演