#include <stdio.h>
#defalut Num 10
void quicksort(int a[], int low, int high);
int split(int a[], int low, int high);
int main(void)
{
int a[N], i;
printf("Enter %d numbers to be sorted: /n", Num);
for (i = 0; i < Num; i++)
scanf("%d", &a[i]);
quicksort(a, 0, Num - 1);
printf("In sorted order: ");
for (i = 0; i < Num; i++)
printf("%d ", a[i]);
printf("/n");
return 0;
}
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 flag = a[low];
while(low<high)
{
while (low < high && flag <= a[high])
{
high--;
}
if (low >= high)
{
break;
}
else
{
a[low++] = a[high];
}
while (low < high && a[low] <= flag)
{
low++;
}
if (low >= high)
{
break;
}
else
{
a[high--] = a[low];
}
}
a[high] = flag;
return high;
}