Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка слиянием, как реализовать без доп. памяти 
:(
    Опции темы
yaja
Дата 27.5.2005, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Что-то меня очень заинтересовало, а как написать сортировку слиянием с о(1) дополнительной памяти? Кнут что-то писал на эту тему, но как обычно у него ничего не понятно smile Если кто-то знает как это сделать, да плюс у него еще есть исходники, и он все это выложит сюда, то я буду очень счастлив smile smile
PM MAIL   Вверх
Петрович
Дата 28.5.2005, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1000
Регистрация: 2.12.2003
Где: Москва

Репутация: нет
Всего: 55



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



--------------------
Все знать невозможно, но хочется
PM ICQ   Вверх
yaja
Дата 28.5.2005, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Код

А зачем тебе сейчас-то он потребовался?

Эээ... для души smile smile Мне собственно сама идея интересна.
Цитата
Но, насколько помню, основной кайф от этого алгоритма ощущался когда данные хранились на внешних носителях с последовательным доступом (магнитных лентах) и целиком в память не влезали.

Да, препод нам тоже самое говорил.

PM MAIL   Вверх
Akina
Дата 28.5.2005, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



algolist.manual.ru


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
borisvolfson
Дата 29.5.2005, 18:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.2.2005

Репутация: 2
Всего: 3



IMHO, самое главное достоинство сортировки слиянием, то что она устойчивая.
Что касается, ее реализации без дополнительного буффера (я, честно говоря, так и не разобрался), то она есть в STL. Можно посмотреть исходник stable_sort, там есть впомогательная функция merge_without_buffer, которая как раз и сливает без использования дополнительной памяти, могу кинуть этот исходник, если понадобится.
PM MAIL   Вверх
yaja
Дата 1.6.2005, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 30.3.2005
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Цитата
algolist.manual.ru

Там реализация, использующая доп. память smile

borisvolfson спасибо smile Надо будет посмотреть... Надеюсь разберусь smile
PM MAIL   Вверх
borisvolfson
Дата 1.6.2005, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 3.2.2005

Репутация: 2
Всего: 3



Я посмотрел в ближайшее время постараюсь переписать нормально. Просто для такого слияния нужно много вспомогательных алгоритмов от бинарного поиска до переворота массива...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0536 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.