Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сортировка Фон-Неймана

43K
21 марта 2009 года
Imperator_of_RusFed
9 / / 26.02.2009
Может кто-нить нормально описать процесс сортировки Фон-Неймана? Или дать ссылку на нормальное(понятное и не требующее читать 50 страниц до этого момента) описание? Желательно не кодом, а текстом.
5
21 марта 2009 года
hardcase
4.5K / / 09.08.2005
Цитата: Imperator_of_RusFed
Может кто-нить нормально описать процесс сортировки Фон-Неймана?

А разве сабж существует в природе?

43K
21 марта 2009 года
Imperator_of_RusFed
9 / / 26.02.2009
[QUOTE=<SCORP>;279265]http://www.cyberforum.ru/post13442.html[/QUOTE]
Насколько я понял, там описан алгоритм для массивов длины 2^n, а что с другими делать?
294
21 марта 2009 года
Plisteron
982 / / 29.08.2003
Цитата: Imperator_of_RusFed
Насколько я понял, там описан алгоритм для массивов длины 2^n, а что с другими делать?


Как вариант, разбить массив на несколько, размерностями 2^n + 2^m + 2^k + ... (т. е. для массива, например, из 11 элементов получаем массивы 8 элементов + 2 + 1), отсортировать их, потом слить.

43K
21 марта 2009 года
Imperator_of_RusFed
9 / / 26.02.2009
Вариант, но потом слитый все равно неосортированный получится.
Вот код на ocaml(ml):
let rec merge a b =
match (a, b) with
(a1::al, b1::bl) ->
if a1 <= b1 then
a1:: (merge al b)
else
b1:: (merge a bl)
|(a1::al, []) -> a
|([], b1::bl) -> b
|_ -> [];;

let rec step l =
match l with
l1::l2::ls -> merge l1 l2:: (step ls)
|l -> l;;

let listify l =
map (fun x -> [x]) l;;

let vnsort l =
let rec sh s =
match s with
[] -> []
|[s1] -> s1
|_ -> sh (step s) in
sh (listify l);;

Добрые люди подкинули
294
21 марта 2009 года
Plisteron
982 / / 29.08.2003
Цитата: Imperator_of_RusFed
Вариант, но потом слитый все равно неосортированный получится.

Так надо сливать в упорядоченный массив. :rolleyes: Тем же алгоритмом, которым, согласно вышеприведённой ссылке, сливаются "четвёрки в восьмёрки".

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог