Quick Sort is an efficient sorting algorithm that uses a divide-and-conquer approach to sort elements. It works by selecting a 'pivot' element from the array and partitioning the other elements into two sub-arrays according to whether they are less than or greater than the pivot. The sub-arrays are then sorted recursively.
#include<stdio.h> void quickSort(int[], int, int); int main(){ int n, arr[50]; printf("Enter the number of elements: "); scanf("%d",&n); printf("Enter %d elements: ",n); 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]); } return 0; } void quickSort(int arr[], int low, int high){ int i = low, j = high, temp, pivot = arr[(low+high)/2]; while(i<=j){ while(arr[i]<pivot){ i++; } while(arr[j]>pivot){ j--; } if(i<=j){ temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i++; j--; } } if(low<j){ quickSort(arr, low, j); } if(i<high){ quickSort(arr, i, high); } }
Sample Input and Output:
Enter the number of elements: 7
Enter 7 elements: 6 3 12 9 15 21 18
Sorted array: 3 6 9 12 15 18 21
Enter the number of elements: 7
Enter 7 elements: 6 3 12 9 15 21 18
Sorted array: 3 6 9 12 15 18 21