Advertisement
Guest User

Untitled

a guest
May 26th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.47 KB | None | 0 0
  1. template<typename T>
  2. int CTablica<T>::hoarePartition(std::vector<T>& Tab, int leftIndex, int rightIndex)
  3. {
  4.     T x = Tab[leftIndex];
  5.     int l, r;
  6.  
  7.     l = leftIndex - 1;
  8.     r = rightIndex + 1;
  9.  
  10.     while (true) {
  11.         while (true) {
  12.             l++;
  13.             amountOfComparisons++;
  14.             if (Tab[l] >= x)
  15.                 break;
  16.         }
  17.         while (true) {
  18.             r--;
  19.             amountOfComparisons++;
  20.             if (Tab[r] <= x)
  21.                 break;
  22.         }
  23.  
  24.         if (l >= r)
  25.             return r;
  26.         std::swap(Tab[l], Tab[r]);
  27.         amountOfSwaps++;
  28.     }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement