Skip to content

Commit

Permalink
Merge pull request #4 from ramvikrams/QSA
Browse files Browse the repository at this point in the history
quickSort algorithm in c++
  • Loading branch information
ramvikram1704 committed Oct 2, 2022
2 parents 8f569b3 + d36ede0 commit b97b9f4
Showing 1 changed file with 80 additions and 0 deletions.
80 changes: 80 additions & 0 deletions quickSort.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
// Quick sort in C++

#include <iostream>
using namespace std;

// function to swap elements
void swap(int *a, int *b) {
int t = *a;
*a = *b;
*b = t;
}

// function to print the array
void printArray(int array[], int size) {
int i;
for (i = 0; i < size; i++)
cout << array[i] << " ";
cout << endl;
}

// function to rearrange array (find the partition point)
int partition(int array[], int low, int high) {

// select the rightmost element as pivot
int pivot = array[high];

// pointer for greater element
int i = (low - 1);

// traverse each element of the array
// compare them with the pivot
for (int j = low; j < high; j++) {
if (array[j] <= pivot) {

// if element smaller than pivot is found
// swap it with the greater element pointed by i
i++;

// swap element at i with element at j
swap(&array[i], &array[j]);
}
}

// swap pivot with the greater element at i
swap(&array[i + 1], &array[high]);

// return the partition point
return (i + 1);
}

void quickSort(int array[], int low, int high) {
if (low < high) {

// find the pivot element such that
// elements smaller than pivot are on left of pivot
// elements greater than pivot are on righ of pivot
int pi = partition(array, low, high);

// recursive call on the left of pivot
quickSort(array, low, pi - 1);

// recursive call on the right of pivot
quickSort(array, pi + 1, high);
}
}

// Driver code
int main() {
int data[] = {8, 7, 6, 1, 0, 9, 2};
int n = sizeof(data) / sizeof(data[0]);

cout << "Unsorted Array: \n";
printArray(data, n);

// perform quicksort on data
quickSort(data, 0, n - 1);

cout << "Sorted array in ascending order: \n";
printArray(data, n);
}

0 comments on commit b97b9f4

Please sign in to comment.