排序之快速排序

#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);
	}

}

  

亲爱的听众朋友我是你的代班DJ
原文地址:https://www.cnblogs.com/YTYMblog/p/5498512.html