Является ли radix sort единственным алгоритмом сортировки без сравнения? - PullRequest
4 голосов
/ 13 мая 2011

Как видно из заголовка, является ли сортировка по основанию единственным алгоритмом сортировки без сравнения? Я думаю, да.

Ответы [ 2 ]

6 голосов
/ 13 мая 2011

Нет - среди прочего есть подсчет сортировки и сортировка ведра. Проверьте статью Википедии для получения дополнительной информации.

1 голос
/ 13 мая 2011

Любой набор можно отсортировать, не используя сравнения.

Процесс

  • определяет управляемый размер входного домена M, который вы можете обрабатывать для записи в управляемый массив.Для символов (8-битных) домен будет 0-255.
  • разбить входные данные в некотором порядке в массив.
  • повторить и промыть, если вход еще не полностью учтен, т. Е. Все биты в М не были учтены.

Например, 32-разрядная целочисленная сортировка M может быть выполнена следующим образом:

  • посмотрите на первые 8 битов, вставьте (ссылки, указатели или что ваш язык)есть в наличии), в 8-битном диапазоне.поместите их в массив [0-255], теперь у вас есть грубый (приблизительный) порядок ваших значений.
  • посмотрите на следующие 8 битов, поместите их в аналогичный массив, сохраните ссылку на первый порядок.Следующие 8x2 бит обрабатываются аналогичным образом.Для извлечения вы переходите по ссылкам из первого набора.

Radix sort использует цифры и имеет 2 варианта (от MSB до LSB) и (от LSB до MSB).

Для сортировки при подсчете используется только первый шаг

Сортировка по корзинам обычно упоминается, когда речь идет о комбинации сортировки при подсчете и сравнении.

Интересно, что довольно частоСлучаи, сорта сравнения не дотягивают.

...