关闭

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

标签: 算法导论C语言
457人阅读 评论(0) 收藏 举报
分类:
#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");
}

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:26893次
    • 积分:506
    • 等级:
    • 排名:千里之外
    • 原创:22篇
    • 转载:24篇
    • 译文:0篇
    • 评论:2条
    最新评论