diff --git a/Quick_Sort.cpp b/Quick_Sort.cpp new file mode 100644 index 0000000..8bb514b --- /dev/null +++ b/Quick_Sort.cpp @@ -0,0 +1,50 @@ +#include + +void printArray(int *array, int n) +{ + for (int i = 0; i < n; ++i) + std::cout << array[i] << std::endl; +} + +void quickSort(int *array, int low, int high) +{ + int i = low; + int j = high; + int pivot = array[(i + j) / 2]; + int temp; + + while (i <= j) + { + while (array[i] < pivot) + i++; + while (array[j] > pivot) + j--; + if (i <= j) + { + temp = array[i]; + array[i] = array[j]; + array[j] = temp; + i++; + j--; + } + } + if (j > low) + quickSort(array, low, j); + if (i < high) + quickSort(array, i, high); +} + +int main() +{ + int array[] = {95, 45, 48, 98, 1, 485, 65, 478, 1, 2325}; + int n = sizeof(array)/sizeof(array[0]); + + std::cout << "Before Quick Sort :" << std::endl; + printArray(array, n); + + quickSort(array, 0, n); + + std::cout << "After Quick Sort :" << std::endl; + printArray(array, n); + return (0); +}