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