Добро пожаловать, гость
:: алгоритмы  и методы :: :: олимпиадные задачи :: :: связь :: :: о сайте :: :: форум ::


Создать новую тему Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 15.03.2011, 21:35
Новичок

Отправить личное сообщение для nim_cch Посмотреть профиль Найти все сообщения от nim_cch
 
Регистрация: 15.03.2011
Сообщений: 3

Вопрос по обходу АВЛ
Я знаю есть довольно простой алгоритм последовательного обхода в порядке возрастания ключей. Но мне нужно получать элементы по случайному индексу из этого представления.
Ответить с цитированием
  #2  
Старый 15.03.2011, 21:59
гocть

 
Сообщений: n/a

тогда тебе нужно хранить и поддерживать в каждой вершине размер поддерева. с ним можно просто за log n найти k-й ключ.
Ответить с цитированием
  #3  
Старый 15.03.2011, 23:35
Новичок

Отправить личное сообщение для nim_cch Посмотреть профиль Найти все сообщения от nim_cch
 
Регистрация: 15.03.2011
Сообщений: 3

Черевато большими затратами памяти

Последний раз редактировалось nim_cch, 16.03.2011 в 11:22.
Ответить с цитированием
  #4  
Старый 15.03.2011, 23:39
гocть

 
Сообщений: n/a

откажись от хранения каждой вершины по отдельности на хипе, храни все в однем массиве или пуле, и выиграешь достаточно места на оверхеде от хипа
Ответить с цитированием
  #5  
Старый 16.03.2011, 00:21
MBo MBo вне форума
Местный

Отправить личное сообщение для MBo Посмотреть профиль Найти все сообщения от MBo
 
Регистрация: 21.09.2006
Адрес: Новосибирск
Сообщений: 1,368

>Тогда эта структура много весит
а на баланс какого типа поле отведено?
Ответить с цитированием
  #6  
Старый 16.03.2011, 11:31
Новичок

Отправить личное сообщение для nim_cch Посмотреть профиль Найти все сообщения от nim_cch
 
Регистрация: 15.03.2011
Сообщений: 3

Сообщение от MBo
а на баланс какого типа поле отведено?
sbyte

Сообщение от гocть
откажись от хранения каждой вершины по отдельности на хипе, храни все в однем массиве или пуле, и выиграешь достаточно места на оверхеде от хипа
Тогда как балансировать дерево? Мне приходит в голову только метод перестановок. Это черевато потерей производительности. Если конечно существует другой способ, которого я не знаю, это было бы супер.
Ответить с цитированием
  #7  
Старый 16.03.2011, 12:06
гocть

 
Сообщений: n/a

покажи код, какой у тебя есть, иначе сложно давать конкретные советы
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вопрос гость Реализация, исходники, языки 1 10.05.2009 02:21
вопрос по программе Миха Реализация, исходники, языки 5 09.05.2008 09:33
Вопрос по деревьям seregarem Поиск и обсуждение книг/сайтов 1 09.04.2008 09:41
вопрос по БПФ SEreGA Обработка изображений, звук, графика 1 03.12.2007 10:00
Вопрос по ДСТ NepsteR Математические алгоритмы (другое) 1 21.07.2007 17:19