Возможно, есть веская причина для этого, но я не думаю, что это лучше, чем альтернативы для любой конкретной ситуации, и , конечно, не годится для общих случаев. Причина? Если вы ничего не знаете о области входных данных и о распределении значений, которые вы не сможете улучшить, скажем, быстрой сортировкой. И если вы действительно знаете эти вещи, часто есть способы, которые были бы гораздо более эффективными.
Анти-пример: предположим, что ваше сравнение возвращает значение "огромной разницы" для чисел, отличающихся более чем на 1000, и что входное значение равно {0, 10000, 20000, 30000, ...}
Анти-пример: то же, что и выше, но с вводом {0, 10000, 10001, 10002, 20000, 20001, ...}
Но, вы говорите, я знаю, что мои данные не выглядят так! Что ж, в таком случае расскажите нам, как на самом деле выглядят ваши материалы. Тогда кто-то может действительно помочь.
Например, однажды мне нужно было отсортировать исторические данные. Данные были сохранены отсортированными. Когда добавлялись новые данные, они добавлялись, затем список запускался снова. У меня не было информации о том, где были добавлены новые данные. Я разработал гибридную сортировку для этой ситуации, которая легко побеждает qsort и другие, выбирая сортировку, которая была быстрой для уже отсортированных данных, и настраивая ее так, чтобы она была быстрой (по сути, переключаясь на qsort), когда она обнаруживала несортированные данные.
Единственный способ улучшить качество сортировки общего назначения - это знать свои данные. И если вы хотите получить ответы, вам нужно очень хорошо об этом сообщить.