Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- QuickSortArrayInt(array[], array[], left, right)
- {
- new index; // разрешающий элемент
- new l_hold = left; //левая граница
- new r_hold = right; // правая граница
- //
- index = array[left];
- //
- while (left < right) // пока границы не сомкнутся
- {
- while ((array[right] <= index) && (left < right))
- right--; // сдвигаем правую границу пока элемент [right] больше [index]
- if (left != right) // если границы не сомкнулись
- {
- array[left] = array[right];
- //
- left++; // сдвигаем левую границу вправо
- }
- while ((array[left] >= index) && (left < right))
- left++; // сдвигаем левую границу пока элемент [left] меньше [index]
- if (left != right) // если границы не сомкнулись
- {
- array[right] = array[left];
- right--; // сдвигаем правую границу вправо
- }
- }
- //
- array[left] = index;
- //
- index = left;
- left = l_hold;
- right = r_hold;
- if (left < index) // Рекурсивно вызываем сортировку для левой и правой части массива
- QuickSortArrayInt(array, left, index - 1);
- if (right > index)
- QuickSortArrayInt(array, index + 1, right);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement