Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Вниз

Большие массивы для HASH   Найти похожие ветки 

 
Dimedrol ©   (2006-07-06 12:14) [0]

В большом объеме текстовых данных (50000 записей и больше) я ищу одинаковые.
Допустим это - слова, телефоны, адреса e-mail и т.п.
Решил я это созданием hash массива:
беру слово, считаю его CRC16 и по полученному адресу [1..65535] ставлю "птицу".

Оказалось, что мне CRC16 мне не хватает. Получаются одинаковые значения при разных данных.
ОК. Мне это понятно.
Взял CRC32. Чтобы не использовать весь массив для адресов, генерируемых значением CRC32 [1..maxInt] просто отрезаю от CRC32 первые 6 символов, чтобы оперировать массивом [1..999999].
Дык, - при выполнении получаю Stack Overflow.

Как решать подобную проблему с большими массивами ?


 
TUser ©   (2006-07-06 12:16) [1]

Я бы строил суффиксное дерево


 
MBo ©   (2006-07-06 12:17) [2]

>Дык, - при выполнении получаю Stack Overflow.
Если алгоритм не менять, то сделай массив не локальным, а глобальным или динамическим


 
Dimedrol ©   (2006-07-06 12:34) [3]

кажется используя HASH динамический массив не катит...


 
MBo ©   (2006-07-06 12:37) [4]

>кажется используя HASH динамический массив не катит...
???


 
Dimedrol ©   (2006-07-06 12:45) [5]

Когда я вычисляю hash-значение я должен уже иметь ячейку массива с индексом напр. 386229. То есть столько элементов массива.


 
MBo ©   (2006-07-06 12:51) [6]

хм... Один раз задаешь длину массива и имеешь все ячейки.
Почитай о dynamic arrays


 
Dimedrol ©   (2006-07-06 12:59) [7]

Да да.
Просто я обычно моим "dynamic arrays" не задаю сразу размер,
а добавляю или удаляю ячейки по мере необходимости.

Тем не менее - СПАСИБО! Помогло перенесение описания массива в "глобальную" область.
Интересно, почему такая разница в интерпретации такого положения компилятором ?


 
TUser ©   (2006-07-06 13:00) [8]


> Интересно, почему такая разница в интерпретации такого положения
> компилятором ?

Локальные хранятся в стеке, а он не резиновый.


 
Dimedrol ©   (2006-07-06 13:03) [9]

Понятно.
Спасибо.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.043 c
1-1152025091
Piter
2006-07-04 18:58
2006.08.20
Непонятная работа FindFirst / FindNext


8-1140450767
SPy
2006-02-20 18:52
2006.08.20
VSync (Вертикальная синхронизация)


15-1153583478
Nic
2006-07-22 19:51
2006.08.20
Мой первый проект под заказ


15-1152465022
tButton
2006-07-09 21:10
2006.08.20
виндус


15-1153719134
Ega23
2006-07-24 09:32
2006.08.20
С Днём рождения! 24 июля





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский