Конкретные передаваемые пары зависят от используемого алгоритма сортировки. Поскольку алгоритм пытается сортировать диапазон, он должен иметь возможность сравнивать пары значений для определения их порядка. Всякий раз, когда это происходит, она вызывает вашу функцию, чтобы получить это сравнение.
Из-за этого, не имея внутренних знаний о том, как работает алгоритм сортировки, вы не можете предсказать, какие пары будут сравниваться. Выбор алгоритма будет напрямую определять, какие элементы сравниваются и в каком порядке.
Интересно, что на самом деле вы можете использовать функцию сравнения, чтобы визуализировать, как работает сортировка, или перепроектировать алгоритм сортировки! Веб-сайт sortviz.org содержит множество визуализаций алгоритмов сортировки, сгенерированных путем передачи пользовательских компараторов в функции сортировки, которые отслеживают позиции каждого элемента. Если вы посмотрите, то увидите, как по-разному каждый алгоритм перемещает свои элементы.
Еще интереснее то, что вы можете использовать функции сравнения в качестве наступательного оружия! Некоторые алгоритмы сортировки, а именно быстрая сортировка, имеют определенные входные данные, которые могут заставить их работать намного медленнее, чем обычно. В «Убийца-убийца для быстрой сортировки» автор подробно описывает, как использовать собственный компаратор для преднамеренного создания неверного ввода для алгоритма сортировки.
Надеюсь, это поможет!