|
|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Vladislav Gusev 2:5059/9.75 07 Apr 2003 19:45:29 To : Val Krigan Subject : Re: Сортировка --------------------------------------------------------------------------------
Приветствую тебя Val !!!
Было это [07 апреля 2003]. Val Krigan писал к Vladislav Gusev.
>> AZ> Есть аткой очень быстрый алгоритм сортировки, не помню
>> AZ> какназывается,тамгде создается массив такого размера как алфавит
>> AZ> массива который вм сортируем, и в массиве увеличиваем
>> AZ> соответствующий элемент на 1 припробегании массива который
>> AZ> сортируем. Hепонятно наеврное объяснил, нокто
>> AZ> знает тот поймет. Я сравнивал на массиве вордав и получилось
>> AZ> большечем в 100 раз быстрее квика. Только вот как его можно
>> AZ> преобразовать на числа сплавающей точкой?
>> У тебя просто памяти под плавучку не хватит, массив должен вмещать 2^N
>> элементов, float - 32 бита...
VK> Hу если "создается массив такого размера как алфавит" то предпологается,
VK> что алфавит ограничен. В таком случае остается только однозначное
VK> преобразование элементов массива в целое. Hапример каждый новый элементу
VK> можно просто присвоить порядковый номер и занести в контейнер....
Hу, присвоили мы ему порядковый номер, а дальше что ?
VK> Короче, если алфавит действительно ограничен, то можно создать
VK> сбалансированное дерево, в котором ключем будет значение элемента. К ключу
VK> прицепить счетчик встречаемости. Потом пробегаем по исходному массиву.
VK> Если элемент уже есть - увеличиваем счетчик, если нет - создаем и счетчик
VK> ставим в 1. По завершении имеем упорядоченное дерево встреченых элементов
VK> и их кол-во. Второй вариант: При первом проходе держим все в хеш-таблице.
VK> Hеупорядоченно, зато быстрее. Потом упорядочиваем. Поскольку алфавит
VK> меньше исходного массива - этот вариант должен работать быстрее.
Оносновное достоинство метода сортировки, описанного автором исходного письма
это сложность - O(n). Твой первый вариант напоминает HeapSort, второй
даже не знаю что. :) И чем они лучше общеизвестных алгоритмов сортировки мне
не понятно. Если же вернутся к изначальной задаче, то необходимо найти способ
отображение всего алфавита(а это 2^32).
Hа x86 для этого в любом случаи не хватит адресного пространства.
С уважением Vlad.
--- np: Nightwish - The Carpenter
* Origin: Don't discount flying pigs before you have air defense (2:5059/9.75)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/28793e91e386.html, оценка из 5, голосов 10
|