diff --git a/C pp/sort/quickSort.cpp b/C pp/sort/quickSort.cpp new file mode 100644 index 0000000..ad35054 --- /dev/null +++ b/C pp/sort/quickSort.cpp @@ -0,0 +1,65 @@ +#include +using namespace std; + +class quickSort +{ +public: + + void QuickSort(int arr[], int low, int high) + { + if (low < high) { + + int pivot = partition(arr, low, high) ; + QuickSort(arr, low, pivot - 1) ; + QuickSort(arr, pivot + 1, high) ; + } + } + + + int partition (int arr[], int low, int high) + { + int pivot = arr[low] ; + int i = low ; + int j = high ; + + while (i < j) { + + while (arr[i] <= pivot && i <= high - 1) { + i++ ; + } + + while (arr[j] > pivot && j >= low) { + j-- ; + } + + if (i < j) + swap(arr[i], arr[j]) ; + } + + swap(arr[j], arr[low]) ; + + return j ; + } +}; + +void printArray(int arr[], int n) +{ + for (int i = 0; i < n; i++) { + cout << arr[i] << " " ; + } + cout<= pivot); + if (i