Перейти к содержанию

Нисходящая/восходящая поразрядная сортировка


Artem3

Рекомендуемые сообщения

Приветствую!

Перерыл Яндекс,Гугл в поисках объяснения и примеров восходящей/нисходящей поразрядной сортировки.

Нашел инфу просто про поразрядную сортировку. Именно(!) восходящей/нисходящей нет.

В некоторых источниках частным случаем для массива целых чисел указана сортировка посчетом.

Из задания,которое мне дано следует, что сортировка подчсетом и поразрядная отличаются.

Вообщем,я мало что понял.

 

Если кто-нибудь разбирается объясните плз на примере массива целых чисел.Буду очень благодарен.

Ссылка на комментарий
Поделиться на другие сайты

Artem3

Может я чего-то неправильно понял, но вообще-то восходящая и нисходящая сортировка меняются друг на друга заменой сравнения в каждом символе. Это также как и с любой другой сортировкой. По умолчанию примеры даются для восходящей сортировки. А вот применять поразрядную сортировку к целым числам (во всяком случае стандартных типов) - это как-то странно. Насколько я понимаю, этот вид сортировки для цепочек символов изобретался (т.е. для слов).

Ссылка на комментарий
Поделиться на другие сайты

Если кто-нибудь разбирается объясните плз на примере массива целых чисел.Буду очень благодарен.

Нужно отсортировать по возрастанию простой массив из к элементов, А(к)

procedure change(i, n) меняет местами элементы c номерами i и n

 

 

Пример: Надо отсортировать по возрастанию массив чисел: 5 7 9 6 1

сравниваем первый элемент со вторым 5<7 Наибольший из них сравниваем с третьим элементом:

7<9 наибольший из предыдущих сравниваем со следующим

9>6 так как 9 больше 6 выполняем change(3, 4) ==> 57691

теперь 9 сравниваем с 1 и опять change(4, 5) Получаем => 57619. Последний элемент массива получается наибольший - он уже отсортирован.

 

Повторяем это цикл для массива А без последнего элемента, то есть для к-1

5<7

7>6 change(2, 3) => 56719

7>1 change(3, 4) => 56179 четвертый элемент массива упорядочен

 

Выполняем цикл для массива длинной к-2

5<6

6>1 change(2, 3) => 51679

 

Заканчиваем цикл для к-3

5>1 change(1, 2) => 15679

ЕНД.

 

 

-----------------

Также можно это делать черех А(мах) Находим максимальное число в массиве длинной N, поочередно сравнивая А(мах) со всеми элементами массива, если какой-то элемент оказывается больше , то меняем их местами. А(мах) окажется N элементом отсортированного массива.

Повторяем цикл для N-1. Cреди оставшихся элементов макимальный окажется на месте А(N-1)

Ссылка на комментарий
Поделиться на другие сайты

язык?

Вообще пишу на нетовском бэйсике.

Но мне нужен просто смысл и алгоритм,а напишу сам.

если знаешь,напиши пож-та.

Artem3

Может я чего-то неправильно понял, но вообще-то восходящая и нисходящая сортировка меняются друг на друга заменой сравнения в каждом символе. Это также как и с любой другой сортировкой. По умолчанию примеры даются для восходящей сортировки. А вот применять поразрядную сортировку к целым числам (во всяком случае стандартных типов) - это как-то странно. Насколько я понимаю, этот вид сортировки для цепочек символов изобретался (т.е. для слов).

Ты говоришь именно про поразрядную сортировку? Я тебя за незнаем слабо понял,если есть инфа-напиши подробней.

 

Нужно отсортировать по возрастанию простой массив из к элементов, А(к)

procedure change(i, n) меняет местами элементы c номерами i и n

Пример: Надо отсортировать по возрастанию массив чисел: 5 7 9 6 1

Пасиб,смысл понетен.

Только это нисходящая или восходящая поразрядная?

 

 

Если у кого есть сцылки по теме, киньте плз

Ссылка на комментарий
Поделиться на другие сайты

в пхп для этого готовые функции, для ассоциативных массивов также.

в JS только для одномерных обычных

не было при всем этом надобности писать сортировку вручную

Ссылка на комментарий
Поделиться на другие сайты

Заархивировано

Эта тема находится в архиве и закрыта для дальнейших ответов.

×
×
  • Создать...