#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void sort(int *arr,int low,int high);
int one_sort(int *arr,int low,int high);
int main(int argc, const char *argv[])
{
int arr[]={1,5,90,78,66,100,45,33};
int len=sizeof(arr)/sizeof(arr[0]);
sort(arr,0,len-1);
for(int i=0;i<len;i++)
{
printf("%d ",arr[i]);
}
return 0;
}
int one_sort(int *arr,int low,int high)
{
int base=arr[low];
while(high>low)
{
while(high>low&&arr[high]>base)
{
high--;
}
arr[low]=arr[high];
while(high>low&&arr[low]<base)
{
low++;
}
arr[high]=arr[low];
}
arr[low]=base;
return low;
}
void sort(int *arr,int low,int high)
{
if(high>low)
{
int ret=one_sort(arr,low,high);
sort(arr,low,ret-1);
sort(arr,ret+1,high);
}
}