Quick sort in c programming
Tuesday, January 31, 2012
#include < stdio.h >
void quickSort(int [], int, int);
void Print(int [], int);
int main()
{
int i , n ;
int A[50];
printf("How many Elements (Not more than 50 !!): ");
scanf("%d",&n);
printf("Enter %d Numbers: \n",n);
for(i=0 ; i < n ; i++)
{
scanf("%d",&A[i]);
}
quickSort(A,0,n-1);
Print(A,n);
return 0;
}
void Print(int A[] , int N)
{
int i;
printf("After Sorting The Elements Are: \n");
for(i=0 ; i < N ; i++)
{
printf("%4d",A[i]);
}
printf("\n");
}
void quickSort(int A[] , int left , int right)
{
int pivot , l_hold , r_hold;
l_hold = left;
r_hold = right;
pivot = A[left];
while(left < right)
{
while((A[right] >= pivot) && (left < right))
right--;
if(left != right)
{
A[left] = A[right];
left++;
}
while((A[left] <= pivot) && (left < right))
left++;
if(left != right)
{
A[right] = A[left];
right--;
}
}
A[left] = pivot;
pivot = left;
left = l_hold;
right = r_hold;
if(left < pivot)
quickSort(A , left , (pivot-1));
if(right > pivot)
quickSort(A , (pivot+1) , right);
}
Labels: C
Post a Comment