Я видел много подобных вопросов здесь, но ни один из них до сих пор не ответил прямо на вопрос, но вместо этого предоставил обходные пути в конкретных сценариях к проблеме задающего.
Я хотел бы получить общий ответ на вопрос о разрыве связей в Timsort из Python. Это можно сделать? Если это можно сделать, каков общий способ сделать это?
Например, возьмите список кортежей
>>> tuples = [(2,1), (2,9), (3, 8), (1,3), (1,2), (1,1)]
Я хочу отсортировать эти кортежи так, чтобы их порядок определялся главным образом значением первого значения в каждом кортеже. Если мы оставим reversed=False
, то они будут отсортированы по возрастанию.
Я бы сделал это со следующим
>>> tuples.sort(key=lambda t: t[0])
Результат будет
>>> tuples
[(1,3), (1,2), (1,1), (2,1), (2,9), (3, 8)]
Вопрос в том, что я могу сделать вообще, чтобы разорвать связь между первыми тремя элементами. Я хотел бы знать, возможно ли это вообще и применимо ли в любой задаче, где возникает определение ключа сортировки.
В большинстве случаев в других ответах упоминается, что Timsort стабилен . Означает ли это правило, что невозможно разорвать связи?