快速排序算法简单易懂实现

2014-11-24 02:25:40 · 作者: · 浏览: 0
void swap(int *p1, int *p2)
{
	int temp;
	temp = *p1;
	*p1 = *p2;
	*p2 = temp;
}

int partition(int data[], int lo, int hi)//data[lo]--data[hi]
{
	int i, j;
	int key = data[hi];
	i = lo;
	for(j = lo; j < hi ; j++)
	{
		if (data[j] <= key)
		{
			
			swap(&data[i], &data[j]);
			i++;
		}
	}
	swap(&data[i],&data[hi]);
	return i;
}

void  QuickSort(int data[], int lo, int hi)
{
	int k;
	if(lo