博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++快速排序

Posted on 2011-05-18 22:52  wuge1513  阅读(422)  评论(0)    收藏  举报
//快速排序

#include<stdio.h>

inline void swap(int v[], int k, int j)
{
	int temp;
	temp = v[k];
	v[k] = v[j];
	v[j] = temp;
}

void qsort(int v[], int left, int right)
{
	int j, last;
	if (left >= right)
	{
		return;
	}
	swap(v, left, (left + right) / 2);
	last = left;
	for (j = left + 1; j <= right; j++)
	{
		if (v[j] < v[left])
		{
			swap(v, ++last, j);
		}
	}
	swap(v, left, last);
	qsort(v, left, last - 1);
	qsort(v, last + 1, right);
}

void main()
{
	int data[] = {2, 10, 5, 7, 4};
	int j;
	qsort(data, 0, 5);
	for (j = 0; j < 5; j++)
	{
		printf("%4d", data[j]);
	}
	printf("\n");
}