Encoders
>
More...
>
C
>
Program
/* Function quicksort(array,left,right) based on quicksort algorithm
developed by C. A. R. Hoare in 1962. */
#include <stdio.h>
void quicksort(int v[], int left, int right);
main()
{
int a[]={12,34,65,9,19,76,20,13,60,23}, n=sizeof(a)/sizeof(int), i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
quicksort(a,0,9);
for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("\n");
}
void quicksort(int v[], int left, int right)
{
int i, last;
void swap(int v[], int i, int j);
if(left>=right)
return;
swap(v,i=last=left,(left+right)/2);
for(i++; i<=right; i++)
if(v[i]<v[left])
swap(v,++last,i);
swap(v,left,last);
quicksort(v,left,last-1);
quicksort(v,last+1,right);
}
void swap(int v[], int i, int j)
{
int temp;
temp=v[i];
v[i]=v[j];
v[j]=temp;
}
|