#include<stdio.h>
#include<math.h>
#define N 10
void quicksort(int a[],int low,int high);
int split(int a[],int low,int high);
main()
{
  int a[N],i;
  printf("Enter %d numbers to be sorted: ",N);
  for(i=0;i<N;i++)
  {
    scanf("%d",&a[i]);
  }
  quicksort(a,0,N-1);
  printf("In sorted order: ");
  for(i=0;i<N;i++)
  {
    printf("%d  ",a[i]);

  }
  printf("\n");
  getch();
}
void quicksort(int a[],int low,int high)
{
   int middle;
   if(low>=high)return;
   middle=split(a,low,high);
   quicksort(a,low,middle-1);
   quicksort(a,middle+1,high);
 }
int split(int a[],int low,int high)
{
   int part_element=a[low];
   for(;;){
   while(low<high&&part_element<=a[high])
     high--;
   if(low>=high) break;
   a[low++]=a[high];

   while(low<high&&a[low]<=part_element)
     low++;
   if(low>=high) break;
   a[high--]=a[low];
   }
   a[high]=part_element;
   return high;
}

相关文章:

  • 2022-12-23
  • 2021-11-19
  • 2022-02-11
  • 2022-12-23
  • 2022-01-09
  • 2022-12-23
  • 2022-01-03
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-08
  • 2022-12-23
  • 2022-12-23
  • 2021-07-28
相关资源
相似解决方案