Created
October 23, 2017 18:17
-
-
Save darhonbek/8c7f5b3855cff67fd79d7681f142381e to your computer and use it in GitHub Desktop.
Quick Sort
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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