Advertisement
Guest User

Untitled

a guest
Jan 22nd, 2018
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.92 KB | None | 0 0
  1. //
  2. //  main.cpp
  3. //  quick_sort
  4. //
  5. //  Created by Alex Danilov on 22/01/2018.
  6. //  Copyright © 2018 Alex Danilov. All rights reserved.
  7. //
  8.  
  9. #include <iostream>
  10. #include <vector>
  11.  
  12. using namespace std;
  13.  
  14. vector<int> arr = {3, 6, 2, 1, 0, -8, 10, 33};
  15.  
  16. void swap(int* a, int* b) {
  17.     int c = *a;
  18.     *a = *b;
  19.     *b = c;
  20. }
  21.  
  22. int sep(int f, int l) {
  23.     int pivot = arr[l];
  24.    
  25.     int i = f - 1;
  26.     for (int j = f; j < l; j++) {
  27.         if (arr[j] <= pivot) {
  28.             i++;
  29.             swap(&arr[i], &arr[j]);
  30.         }
  31.     }
  32.     swap(&arr[i+1], &arr[l]);
  33.     return i + 1;
  34. }
  35.  
  36.  
  37. void quick_sort(vector<int> arr, int f, int l) {
  38.     if (f < l) {
  39.         int i = sep(f, l);
  40.        
  41.         quick_sort(arr, f, i - 1);
  42.         quick_sort(arr, i + 1, l);
  43.     }
  44. }
  45.  
  46. int main() {
  47.     for (int i = 0; i < arr.size(); i++) {
  48.         cout << arr[i] << " ";
  49.     }
  50.     cout << endl;
  51.    
  52.     quick_sort(arr, 0, arr.size()-1);
  53.    
  54.     for (int i = 0; i < arr.size(); i++) {
  55.         cout << arr[i] << " ";
  56.     }
  57.    
  58.     return 0;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement