#include "stdio.h"

#include "string.h"

void quick_sort(int array[],int start,int end)

{

  if(start >= end)

  {

   return;

  }

 int middle=get_middle(array,start,end);

 quick_sort(array,start,middle-1);

 quick_sort(array,middle+1,end);

}

int get_middle(int array[],int start,int end)

{

   if(start >= end)

     return;

   int font=0;

   int tail=end-start;

   int len=tail+1;

   int ALL[len];

   int first=array[start];

   int loop=start+1;

   while(loop <= end)

    {

        if(array[loop] < first)

          {

            ALL[font++]=array[loop];

          }

        else{

             ALL[tail--]=array[loop];

          }

      loop++;

    }

     ALL[font]=first;

   memmove(&array[start],ALL,sizeof(int)*len);

   return start+font;

}

 

main()

{

  int a[]={7,9,3,5,4,0};

  quick_sort(a,0,5);

  int i;

  for(i=0;i<5;i++)

   printf("%d\n",a[i]);

}