Любой набор можно отсортировать, не используя сравнения.
Процесс
- определяет управляемый размер входного домена M, который вы можете обрабатывать для записи в управляемый массив.Для символов (8-битных) домен будет 0-255.
- разбить входные данные в некотором порядке в массив.
- повторить и промыть, если вход еще не полностью учтен, т. Е. Все биты в М не были учтены.
Например, 32-разрядная целочисленная сортировка M может быть выполнена следующим образом:
- посмотрите на первые 8 битов, вставьте (ссылки, указатели или что ваш язык)есть в наличии), в 8-битном диапазоне.поместите их в массив [0-255], теперь у вас есть грубый (приблизительный) порядок ваших значений.
- посмотрите на следующие 8 битов, поместите их в аналогичный массив, сохраните ссылку на первый порядок.Следующие 8x2 бит обрабатываются аналогичным образом.Для извлечения вы переходите по ссылкам из первого набора.
Radix sort использует цифры и имеет 2 варианта (от MSB до LSB) и (от LSB до MSB).
Для сортировки при подсчете используется только первый шаг
Сортировка по корзинам обычно упоминается, когда речь идет о комбинации сортировки при подсчете и сравнении.
Интересно, что довольно частоСлучаи, сорта сравнения не дотягивают.