Skip to content

Instantly share code, notes, and snippets.

@darhonbek
Created October 23, 2017 18:17
Show Gist options
  • Save darhonbek/8c7f5b3855cff67fd79d7681f142381e to your computer and use it in GitHub Desktop.
Save darhonbek/8c7f5b3855cff67fd79d7681f142381e to your computer and use it in GitHub Desktop.
Quick Sort
#include <iostream>
using namespace std;
int partition(int *, int, int);
void printArray(int *, int);
void quickSort(int *arr, int start, int end) {
if(start < end) {
int q = partition(arr, start, end);
quickSort(arr, start, q);
quickSort(arr, q+1, end);
}
}
int partition(int *arr, int start, int end) {
int i = start;
int checker = arr[end-1];
for(register int j = start; j < end - 1; j++) {
if(arr[j] < checker) {
swap(arr[j], arr[i]);
i++;
}
}
swap(arr[i], arr[end-1]);
return i;
}
void printArray(int *arr, int size) {
for(register int i=0; i<size; i++)
cout<<arr[i]<<" ";
cout<<endl;
}
int main() {
int arr[] = {5, 6, 0, 13, 3, 2, 8, 7, 4};
int n = 9;
quickSort(arr, 0, n);
printArray(arr, n);
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment