![]() |
|
|
![]()
|
|
| yaja |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 30.3.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Что-то меня очень заинтересовало, а как написать сортировку слиянием с о(1) дополнительной памяти? Кнут что-то писал на эту тему, но как обычно у него ничего не понятно
|
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: нет Всего: 55 |
Давно уже не "сливал". Но, насколько помню, основной кайф от этого алгоритма ощущался когда данные хранились на внешних носителях с последовательным доступом (магнитных лентах) и целиком в память не влезали. Тогда, "слиянием" можно было отсортировать за несколько проходов.
А зачем тебе сейчас-то он потребовался? -------------------- Все знать невозможно, но хочется |
|||
|
||||
| yaja |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 30.3.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Эээ... для души
Да, препод нам тоже самое говорил. |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
algolist.manual.ru
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| borisvolfson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.2.2005 Репутация: 2 Всего: 3 |
IMHO, самое главное достоинство сортировки слиянием, то что она устойчивая.
Что касается, ее реализации без дополнительного буффера (я, честно говоря, так и не разобрался), то она есть в STL. Можно посмотреть исходник stable_sort, там есть впомогательная функция merge_without_buffer, которая как раз и сливает без использования дополнительной памяти, могу кинуть этот исходник, если понадобится. |
|||
|
||||
| yaja |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 30.3.2005 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Там реализация, использующая доп. память borisvolfson спасибо |
|||
|
||||
| borisvolfson |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 3.2.2005 Репутация: 2 Всего: 3 |
Я посмотрел в ближайшее время постараюсь переписать нормально. Просто для такого слияния нужно много вспомогательных алгоритмов от бинарного поиска до переворота массива...
|
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |