Оптимальная сортировка
Сортировка с минимальным числом сравнений
Задача «найти алгоритм сортировки с минимальным числом сравнений» может показаться некорректной, потому что вообще минимальное число сравнений , ведь есть алгоритмы, не требующие сравнений.
Но мы сейчас говорим только об алгоритмах сортировки, которые сортируют элементы множества с заданным на нём отношением линейного порядка. В этом контексте понятно, что сравнение — единственная доступная нам операция, поэтому придумывать алгоритмы с наименьшим числом сравнений вполне содержательная и интересная задача.
Оценка снизу
Пусть — минимальное число сравнений, достаточное для сортировки элементов. На вопрос «находятся ли два элемента в отношении ?» можно ответить только двумя способами: да и нет. Здесь — отношение, по которому производится сортировка.
По ответам на вопросов нам нужно однозначно понять, какая из перестановок исходных элементов является их отсортированным порядком. Значит,
Применяя формулу Стирлинга для неравенства , получаем оценку
Этой оценки почти достигают некоторые разобранные ранее алгоритмы.
Подходит алгоритм бинарных вставок, количество сравнений в котором выражается формулой