首页 > 编程语言 > 详细

排序之快速排序

时间:2016-05-16 17:39:26      阅读:226      评论:0      收藏:0      [点我收藏+]
#include<stdio.h>
int q;
int Parttion(int* a,int p,int r);
void QuickSort(int* a,int p,int r);
int main()
{
	int i;
	int a[10]={1,4,2,7,3,9,8,6,0,5};
	QuickSort(a,0,9);
	for(i=0;i<10;i++)
	printf("%d ",a[i]);
	
	
	
	return 0;
}

int Parttion(int* a,int p,int r)
{
	int x=a[r];
	int i=p-1;
	int j;
	int temp;
	for(j=p;j<r;j++)
	{
		if(a[j]<=x)
			{
				i++;
				//Exchange a[i] and a[j];
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;					
			}
	}
	temp=a[i+1];
	a[i+1]=a[r];
	a[r]=temp; 
	return (i+1);
}
void QuickSort(int* a,int p,int r)
{
	
	if(p<r)
	{
		q=Parttion(a,p,r);
		QuickSort(a,p,q-1);
		QuickSort(a,q+1,r);
	}

}

  

排序之快速排序

原文:http://www.cnblogs.com/YTYMblog/p/5498512.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!