阅读背景:

算法导论C语言实现: 快速排序

来源:互联网 
#include <common.h>

//PARTITION
int PARTITION(int *A, int p, int r)
{
	int x = A[r];
	int i = p - 1;
	int j = p;
	int tmp = 0;
	
	for (j = p; j < r; ++j) {
		if (A[j] <= x) {
			++i;
			tmp = A[i];
			A[i] = A[j];
			A[j] = tmp;
		}
	}

	tmp = A[i+1];
	A[i+1] = A[r];
	A[r] = tmp;

	return i+1;
}

//QUICKSORT
void QUICKSORT(int *A, int p, int r)
{
	int q;

	if (p < r) {
		q = PARTITION(A, p, r);
		QUICKSORT(A, p, q-1);
		QUICKSORT(A, q + 1, r);
	}
}

void main()
{
	int A[] = {8, 7, 10, 100, 88, 99, 0, 66};
	int i = 0;

	QUICKSORT(A, 0, sizeof(A)/sizeof(int) - 1);

	for (i = 0; i < sizeof(A)/sizeof(int); ++i) {
		TRACE("%d\t", A[i]);
	}
	TRACE("\n");

	system("pause");
}#include <common.h>

//PARTITION
int PARTITION(



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: