Include
Include
h>
void swap(int *a, int *b) { z=0;
int temp = *a; for(int i=start;i<=end;i++)
*a = *b; a[i]=q[z++];
*b = temp; }
} void divide(int *a,int start,int end)
int partition(int arr[], int low, int high) { {
int pivot = arr[high]; if(start>=end)
int i = (low - 1); return;
for (int j = low; j < high; j++) { int x=start+(end-start)/3;
if (arr[j] <= pivot) { int y=(x+1+end)/2;
i++; divide(a,start,x);
swap(&arr[i], &arr[j]); divide(a,x+1,y);
} } divide(a,y+1,end);
swap(&arr[i + 1], &arr[high]); merge(a,start,x,y,end);
return i + 1; }
} int main()
void quickSort(int arr[], int low, int high) { {
if (low < high) { int n,a[100];
int pi = partition(arr, low, high); printf("Enter array size : ");
quickSort(arr, low, pi - 1); scanf("%d",&n);
quickSort(arr, pi + 1, high); printf("Enter array elements : ");
} } for(int i=0;i<n;i++)
int main() { scanf("%d",&a[i]);
int n; divide(a,0,n-1);
printf("Enter the number of elements: "); printf("Sorted array : ");
scanf("%d", &n); for(int i=0;i<n;i++)
int arr[n]; printf("%d ",a[i]);
printf("Enter the elements: "); return 0;
for (int i = 0; i < n; i++) { }
scanf("%d", &arr[i]);
}
quickSort(arr, 0, n - 1);
printf("Sorted array: ");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
#include <stdio.h>
void merge(int *a,int start,int x,int y,int
end)
{
int t[y-start+1],c=0,i=start,j=x+1;
while(i<=x&&j<=y)
{
if(a[i]<a[j])
t[c++]=a[i++];
else
t[c++]=a[j++];
}
while(i<=x)
t[c++]=a[i++];
while(j<=y)
t[c++]=a[j++];