码迷,mamicode.com
首页 > 编程语言 > 详细

排序算法大集锦_交换类——快速排序

时间:2015-04-29 17:25:58      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:sort

感觉《算法导论》上面的那个例子要更容易理解,因为那个最起码比较直观!




#include <stdio.h>

int a[10]={2,8,5,7,4,3,1,9,6,10};

void QuickSort(int m, int n)
{
	int s,begin,end;
	if(m>n)
		return;
	begin=m;
	end=n;

	s=a[m];
	while(begin!=end)
	{
		while(a[end]>=s && begin<end)
			end--;

		while(a[begin]<=s && begin<end)
			begin++;

		if(begin<end)
		{
			a[begin]=a[begin]^a[end];
			a[end]=a[begin]^a[end];
			a[begin]=a[begin]^a[end];
		}
	}
	a[m]=a[begin];
	a[begin]=s;

	for(int t=0;t<10;t++)
		printf("%d ",a[t]);
	printf("\n");
		
	QuickSort(m,begin-1);
	QuickSort(end+1,n);
}

int main()
{
	int i;
	for(i=0;i<10;i++)
		printf("%d ",a[i]);

	printf("\n排序后\n");

	QuickSort(0,9);

	printf("\n最终结果\n");
	for(i=0;i<10;i++)
		printf("%d ",a[i]);

	printf("\n");

	return 0;
}


运行之后


技术分享



本文出自 “hacker” 博客,请务必保留此出处http://anglecode.blog.51cto.com/5628271/1640408

排序算法大集锦_交换类——快速排序

标签:sort

原文地址:http://anglecode.blog.51cto.com/5628271/1640408

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!