Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int low(int a, int b){
- if (a < b){
- return 1;
- } else if (a > b){
- return -1;
- } else {
- return 0;
- }
- }
- void quicksort(int* arr, int c){
- int l = c; int k = 0;
- int midle = arr[c/2];
- while (k <= c){
- while (low(arr[k], arr[midle]) == 1)
- k++;
- while (low(arr[c], arr[midle]) == -1)
- c--;
- if (k <= c){
- swap(arr[k++], arr[c--]);
- }
- }
- if (c > 0)
- quicksort(arr, c);
- if (l > k)
- quicksort(arr + k, l - k);
- }
- int main() {
- int arr[20] = {6, 5, 4, 4, 2, 1, 3, 1, 23, 1, 2, 4, 32, 54, 45, 22, 7, 46, 99, 47};
- for(int i = 0; i < 20; i++){
- cout << arr[i] << " ";
- } cout << endl;
- quicksort(arr, 19);
- for(int i = 0; i < 20; i++){
- cout << arr[i] << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement