worm2 3) Если
стоит на одинаковых позициях, и эта позиция — не последняя, то отсекаем элементы, стоящие левее и переходим к сравнению "остатков башен" над
. В этом случае, вообще говоря, башни состоят уже из разных элементов. Нужно сначала выяснить максимальный элемент в первом и во втором "остатках башен", и если он больше у одной из перестановок — то эта перестановка "больше". Если же он присутствует у обоих "остатков" — сравниваем их по п. 1) и т.д.
Не очень понял этот пункт. Если допустим максимальные элементы в первой группе стоят на одинаковых позициях, а во второй группе максимальный элемент больше у первой перестановки, то не обязательно первая перестановка больше второй.
(1,2)>(2,1)
Сначала приделываем тройку к концу:
(1,2,3)>(2,1,3)
Затем к середине:
(1,3,2)>(2,3,1)
Затем к началу:
(3,1,2)>(3,2,1)
Получаем:
(1,2,3)>(2,1,3)>(1,3,2)>(2,3,1)>(3,1,2)>(3,2,1)
Затем так же последовательно приделываем четвёрку на 4-е, 3-е, 2-е и первое места:
(1,2,3,4)>(2,1,3,4)>(1,3,2,4)>(2,3,1,4)>(3,1,2,4)>(3,2,1,4)>
>(1,2,4,3)>(2,1,4,3)>(1,3,4,2)>(2,3,4,1)>(3,1,4,2)>(3,2,4,1)>
>(1,4,2,3)>(2,4,1,3)>(1,4,3,2)>(2,4,3,1)>(3,4,1,2)>(3,4,2,1)>
>(4,1,2,3)>(4,2,1,3)>(4,1,3,2)>(4,2,3,1)>(4,3,1,2)>(4,3,2,1)
и т.д.
Верно, собственно алгоритм формулируется так:
Сначала смотрим на каком месте находится максимальный элемент
у обоих групп, если у одной из них он находится правее относительно другой, то эта перестановка больше, если левее, то меньше. Если они на равных позициях, то смотрим предыдущий максимальному элемент
, если он правее у одной перестановки, то она больше и т.д. Если и тут равенство, то переходим к следующему по убыванию элементу и т.д. Это собственно то что вы изобразили