Root function of quick sort:
[sourcecode language="c"]
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);
}
[/sourcecode]
Full code of quick sort:
[sourcecode language="c"]
#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);
}
[/sourcecode]
I simply want to tell you that I'm new to weblog and seriously savored this web-site. Probably I’m going to bookmark your blog post . You surely come with exceptional article content. Thanks a lot for revealing your website page.
ReplyDelete