#include <iostream>
using namespace std;
// quick sort algorithm
int partition(int arr[], int si, int ei){
int pivot = arr[ei]; // last element as pivot
int i = si-1;
for(int j=si; j<ei; j++) {
if(arr[j] < pivot) {
i++;
swap(arr[i], arr[j]);
}
}
swap(arr[i+1], arr[ei]);
return i+1;
}
// Quick Sort function
void quickSort(int arr[], int si, int ei) {
if(si < ei) {
int pivotIdx = partition(arr, si, ei);
quickSort(arr, si, pivotIdx-1); // sort left part
quickSort(arr, pivotIdx+1, ei); // sort right part
}
}
void printArray(int arr[], int n) {
for(int i=0; i<n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
int main() {
int arr[] = {10, 5, 6, 7, 2, 1, 3};
int n = sizeof(arr)/sizeof(int);
cout << "Original Array: ";
printArray(arr, n);
quickSort(arr, 0, n-1);
cout << "Sorted Array: ";
printArray(arr, n);
return 0;
}
No comments:
Post a Comment