Program 337 : Quick Sort
//Coming Soon
Output:
#include<stdio.h>
void QuickSort(int array[],int start,int end);
main()
{
int i,j,array[100],num;
printf("Enter Number of Elements in Array\n");
scanf("%d",&num);
printf("Enter Elements of Array\n");
for(i=0;i<num;i++)
scanf("%d",&array[i]);
QuickSort(array,0,num);
printf("Array after Sorting\n");
for(i=0;i<num;i++)
printf("%d ",array[i]);
printf("\n");
}
void QuickSort(int array[],int start,int end)
{
int index=start,i,pivot=array[end],temp;//taking the last number in array as pivot
if(start<end)
{
for(i=start;i<end;i++)
{
if(array[i]<=pivot)//swapping index element and element at ith position if ith element is lesser than pivot element
{
temp=array[i];
array[i]=array[index];
array[index]=temp;
index++;
}
}
//finally after this loop we will get the position to interchange the pivot with index so that all the
//elements greater than pivot wil be right side and lesser than pivot will be left side
temp=array[index];
array[index]=array[end];//we are taking end element as pivot every time the quick sort function is called
array[end]=temp;
QuickSort(array,start,index-1);
QuickSort(array,index+1,end);
}
}
Explanation://Coming Soon
Output:


