Skip to content

Commit 8a42525

Browse files
committed
sprint3 FastSort
1 parent 798f3f3 commit 8a42525

1 file changed

Lines changed: 7 additions & 0 deletions

File tree

src/main/java/algorithms/sprint3/FastSort.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@ public class FastSort {
1010
Принцип работы алгоритма:
1111
1) Считываем n участников в массив.
1212
2) Сортируем массив in-place быстрой сортировкой.
13+
В качестве опорного элемента (pivot) берём участника из середины текущего отрезка.
14+
Далее двумя указателями:
15+
- указатель i двигаем слева направо, пока a[i] должен стоять левее pivot;
16+
- указатель j двигаем справа налево, пока a[j] должен стоять правее pivot.
17+
Когда находятся два элемента не на своих сторонах, меняем их местами.
18+
После завершения разбиения рекурсивно сортируем меньшую из двух частей,
19+
а большую продолжаем обрабатывать в цикле. Это уменьшает глубину стека.
1320
3) Определяем лучше участника методом boolean better(a, b) по правилам задачи:
1421
- у A решено больше задач;
1522
- при равенстве задач у A меньше штраф;

0 commit comments

Comments
 (0)