Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Алгоритмы > структура данных


Автор: tab 21.11.2006, 00:34
 Требуется вот что: нужно придумать структуру хранения данных(данных ~ 2 Гб), к которой возможен максимально быстрый и простой доступ.

Автор: maxim1000 21.11.2006, 00:49
нужно знать доступ какого вида должен быть быстрым
а то для доступа по номеру хорошо массив
для поиска деревья/хеш
и т.д.

Автор: tab 21.11.2006, 01:10
Поиск.. Проблема в том, что и хеш и стандартные деревья - способ достататочно медленный в данном случае. Да и неудобный - данные часто добавляться/удаляться будут. Есть идея - B деревья..  Но хочется чего-нить получше.. Все - таки такое требование к структуре как гибкость никто не отменял..

Автор: RatHat 21.11.2006, 04:04
tab, таблица, например - скорость доступа зависит от грамотности составления запроса ;)

Автор: SoWa 21.11.2006, 06:36
Хеш-индексация - медленный способ? Да никогда не поверю.
//сейчас все соберу smile
Составляем таблицу с хеш-индексами, а по ней обращаемся уже в нужную область памяти, ну или как там в задаче?
Можно еще и деревья приплести smile

Удачи...

Автор: esperant0 21.11.2006, 08:44
таблица или хеш время достпупа почти О(1)

Автор: SoWa 21.11.2006, 11:34
разве это много?
обычно ведь сложности линейны, квадратичны, логарифмические функции. А тут всего единица.

Автор: tab 22.11.2006, 01:46
В принципе все что написано и правильно и логично... Хэш, деревья... -  Вполне возможно, что так и поступлю, но, быть может, есть какая - нибудь интересная и(или) нестандартная идея? Что- нибудь красивое  smile 

Автор: esperant0 22.11.2006, 08:15
Цитата(tab @ 22.11.2006,  01:46)
В принципе все что написано и правильно и логично... Хэш, деревья... -  Вполне возможно, что так и поступлю, но, быть может, есть какая - нибудь интересная и(или) нестандартная идея? Что- нибудь красивое  smile

Красивое есть.


Найдите мартингал на сл.вел. соответствующей полученным данным. Мартингал выбросьте и постройте хеш.


Имхо красотаааааааааааааааа.

Автор: SoWa 22.11.2006, 17:13
А можно понятным языком?
Цитата(esperant0 @  22.11.2006,  08:15 Найти цитируемый пост)
 мартингал на сл.вел.

???

Автор: slavikul 26.11.2006, 23:49
Я использовал сбалансированные деревья   по алгоритму, приведенному в Д.Кнут "Искусство программирования для ЭВМ"  издательство "МИР" 1978 том 3 пункт 6.2.3 стр  536, но с модификацией для работы с дисковым накопителем. Скорость поиска очень высокая.

   При вводе новых данных с клавиатуры задержка практически отсутствует. Дело в том, что скорость ввода информации оператором на порядки медленнее работы программы.
   Комплекс программ для работы с такой базой данных написан  на С (С++) и эксплуатируется уже около 10 лет. 
  Вопросы отправлять на  luda_vereshak@mail.ru

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)