Вниз
Скачать: CL | DM;

Большие массивы для 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.025 c
1-1152207760
Andy BitOff
2006-07-06 21:42
2006.08.20
Вывод текста.


1-1151925678
Barvetal
2006-07-03 15:21
2006.08.20
Как сделать, чтобы TImage перестал отображать что-либо?


2-1153677809
userrrrr
2006-07-23 22:03
2006.08.20
Подключение к сети


1-1152080166
ancot
2006-07-05 10:16
2006.08.20
Цвет TMainMenu


1-1152080005
Zilog_
2006-07-05 10:13
2006.08.20
Нужна помощь в переводе файлов заголовков из С++ в Delphi




   Наверх