Advertisement
vadimk772336

Untitled

Sep 23rd, 2021
668
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void printArray(int* array, int n)
  5. {
  6.     for (int i = 0; i < n; ++i)
  7.         std::cout << array[i] << std::endl;
  8. }
  9.  
  10. int partition(int* array, int l, int r)
  11. {
  12.     int i, j, tmp, pivot;
  13.     pivot = array[(l + r) / 2];
  14.     tmp = 0;
  15.  
  16.     while (true) {
  17.         while (array[l] < pivot)
  18.             l += 1;
  19.         while (array[r] > pivot)
  20.             r -= 1;
  21.  
  22.         if (l >= r)
  23.             return r;
  24.  
  25.         tmp = array[l];
  26.         array[l] = array[r];
  27.         array[r] = tmp;
  28.         l += 1;
  29.         r -= 1;
  30.     }
  31. }
  32.  
  33. void quickSort(int* array, int l, int r)
  34. {
  35.  
  36.     if (l < r) {
  37.         int q = partition(array, l, r);
  38.         quickSort(array, l, q);
  39.         quickSort(array, q + 1, r);
  40.     }
  41. }
  42.  
  43. int main()
  44. {
  45.     int array[] = { 5, 2, 2, 3 };
  46.     int n = 4;
  47.  
  48.     quickSort(array, 0, n - 1);
  49.  
  50.     std::cout << "After Quick Sort :" << std::endl;
  51.     printArray(array, n);
  52.     return (0);
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement