Advertisement
Guest User

Untitled

a guest
Oct 21st, 2018
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.35 KB | None | 0 0
  1. QuickSortArrayInt(array[], array[], left, right)
  2. {
  3.     new index; // разрешающий элемент
  4.     new l_hold = left; //левая граница
  5.     new r_hold = right; // правая граница
  6.     //
  7.     index = array[left];
  8.     //
  9.     while (left < right) // пока границы не сомкнутся
  10.     {
  11.         while ((array[right] <= index) && (left < right))
  12.         right--; // сдвигаем правую границу пока элемент [right] больше [index]
  13.         if (left != right) // если границы не сомкнулись
  14.         {
  15.             array[left]         = array[right];
  16.             //
  17.             left++; // сдвигаем левую границу вправо
  18.         }
  19.         while ((array[left] >= index) && (left < right))
  20.         left++; // сдвигаем левую границу пока элемент [left] меньше [index]
  21.         if (left != right) // если границы не сомкнулись
  22.         {
  23.             array[right]    = array[left];
  24.             right--; // сдвигаем правую границу вправо
  25.         }
  26.     }
  27.     //
  28.     array[left]             = index;
  29.     //
  30.     index = left;
  31.     left = l_hold;
  32.     right = r_hold;
  33.     if (left < index) // Рекурсивно вызываем сортировку для левой и правой части массива
  34.     QuickSortArrayInt(array, left, index - 1);
  35.     if (right > index)
  36.     QuickSortArrayInt(array, index + 1, right);
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement