Advertisement
keverman

Quicksort

Jun 3rd, 2020
644
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.42 KB | None | 0 0
  1. int partition(int* T, int l, int r, int pivot)
  2. {
  3.     int li = l - 1, ri = r;
  4.  
  5.     while (true)
  6.     {
  7.         while (T[++li] < pivot);
  8.         while (ri > 0 && T[--ri] > pivot);
  9.         if (li < ri) std::swap(T[li], T[ri]);
  10.         else break;
  11.     }
  12.  
  13.     std::swap(T[li], T[r]);
  14.     return li;
  15. }
  16.  
  17. void quick_sort(int* T, int l, int r)
  18. {
  19.     if (r - l > 0)
  20.     {
  21.         int p = partition(T, l, r, T[r]);
  22.         quick_sort(T, l, p - 1);
  23.         quick_sort(T, p + 1, r);
  24.     }
  25. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement