Quick Sort
#include
main()
{
int k,N,*B;
printf("Enter the number of integers to be sorted:\n");
scanf("%d",&N);
B = (int *)malloc(N*sizeof(int));
printf("Enter %d integers:\n",N);
for (k = 0; k < N; k++)
scanf("%d",&B[k]);
quick_sort(B,0,N-1);
printf("The sorted array is:\n");
printf("\n");
for (k=0; k < N; k++)
printf("B[%d] = %d\n",k,B[k]);
printf("\n");
return 0;
} /* main */
int split(int *A, int first, int last)
{
int left, right, pivot, temp;
pivot = A[first];
left = first;
right = last;
while (left < right)
{
while (A[right] > pivot)
right--;
while (left < right && A[left] <= pivot)
left++;
if (left < right)
{
temp = A[left];
A[left] = A[right];
A[right] = temp;
}
}
temp = A[right];
A[right] = A[first];
A[first] = temp;
return right;
}/* split */
quick_sort(int *A, int first, int last)
{
int position;
if (first < last)
{
position = split(A,first,last);
quick_sort(A,first,position-1);
quick_sort(A,position+1,last);
}
}/* quick_sort */