powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TDictionary или TList<>.BinarySearch с позиции поиска
25 сообщений из 479, страница 6 из 20
TDictionary или TList<>.BinarySearch с позиции поиска
    #39369464
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

Я думаю, ты и сам себя не понял )
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376154
серчер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon
я никого не выгонял из топика. Напротив, он неплохо разросся, потому что задача и смысл задачи представляет немалый интерес.
Просто ты зачем-то стал общаться фамильярно. Можно было бы эмоции и свое отношение оставить при себе, ты же не женщина, которая не умеет держать себя в руках. Ну или в одной)))

Мы с ребятами на работе тоже посидели-подумали. Вариантов напридумывали.

Самый интересный оказался - матрица. Если длина фиксирована и представляет собой цифры (вообще это номера телефонов), то можно создать матрицу массивов с быстрым доступом по индексу позиции искомой цифры и проверке по значению. И память минимизировать до 9 байт по сути на хранение телефона.
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376167
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
серчер makhaon
я никого не выгонял из топика. Напротив, он неплохо разросся, потому что задача и смысл задачи представляет немалый интерес.
Просто ты зачем-то стал общаться фамильярно. Можно было бы эмоции и свое отношение оставить при себе, ты же не женщина, которая не умеет держать себя в руках. Ну или в одной)))

Мы с ребятами на работе тоже посидели-подумали. Вариантов напридумывали.

Самый интересный оказался - матрица. Если длина фиксирована и представляет собой цифры (вообще это номера телефонов), то можно создать матрицу массивов с быстрым доступом по индексу позиции искомой цифры и проверке по значению. И память минимизировать до 9 байт по сути на хранение телефона.

В таком случае можно написать аналог TDictionary, в котором номер телефона играет одновременно роль хеша, ключа и данных. И память сократить до 4 байт на номер. Даже с учетом коэффициента заполнения потребуется меньше. И быстрее будет, наверное.
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376203
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
серчервообще это номера телефоновя делал массив на 120 МБ, в котором хранятся биты по всем сотовым номерам России + хеш-таблицу из строк для всех "несотовых"
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376215
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fd00ch,

MNP?
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376235
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_niggerинтересно почему пост продублировался?

коллизия хэша
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376240
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asviridenkov, а при чем тут это?
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376256
серчер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr Sharahovсерчер makhaon
я никого не выгонял из топика. Напротив, он неплохо разросся, потому что задача и смысл задачи представляет немалый интерес.
Просто ты зачем-то стал общаться фамильярно. Можно было бы эмоции и свое отношение оставить при себе, ты же не женщина, которая не умеет держать себя в руках. Ну или в одной)))

Мы с ребятами на работе тоже посидели-подумали. Вариантов напридумывали.

Самый интересный оказался - матрица. Если длина фиксирована и представляет собой цифры (вообще это номера телефонов), то можно создать матрицу массивов с быстрым доступом по индексу позиции искомой цифры и проверке по значению. И память минимизировать до 9 байт по сути на хранение телефона.

В таком случае можно написать аналог TDictionary, в котором номер телефона играет одновременно роль хеша, ключа и данных. И память сократить до 4 байт на номер. Даже с учетом коэффициента заполнения потребуется меньше. И быстрее будет, наверное.

Это как же до 4 байт? Это в смысле если убрать 79 в начале? Иначе в 4 байта не уместиться.
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376261
серчер
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
fd00chсерчервообще это номера телефоновя делал массив на 120 МБ, в котором хранятся биты по всем сотовым номерам России + хеш-таблицу из строк для всех "несотовых"

"биты по всем сотовым номерам"? Я не очень понял эту фразу. Слишком захешировано.) Расхешируй )
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376269
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
серчер"биты по всем сотовым номерам"? Я не очень понял эту фразу. Слишком захешировано.) Расхешируйм.б. битсет?
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376270
fd00ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
серчер, ты выше ее расхешировал))серчерЭто в смысле если убрать 79 в началеполучится диапазон в 1 млрд номеров или бит, т.е. 120 МБ памяти
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376282
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
удобно с нашими короткими номерами
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39376328
asviridenkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fd00chasviridenkov, а при чем тут это?

Один из вариантов, для чего нужна база всех сотовых РФ (а не кодов).
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380372
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

вот ты гад, задел меня за живое своими хеш-функциями,
больше года держался, а тут на тебе:

http://guildalfa.ru/alsha/node/32
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380398
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov, Delphi 7 и RawByteString?

Проверил коллизи функций:
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380420
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev Alexey,

Ага, у меня объявлено RawByteString=AnsiString для совместимости с другими юнитами, которые обычно использую.

Ну, по коллизиям не хуже Седжвика, по крайней мере.

Но там главное не только коллизии, а как оно ляжет в таблицу (длина наибольшего кластера).
От этого зависит скорость вставки-удаления. Скорость поиска и так всегда была отличная.

На самом деле у меня, пока тестирую, все функции параметрические.
Сейчас имеется куча найденных значений параметров с примерно одинаковыми характеристиками на словаре Лопатина.
Так что если есть готовые словари в текстовом виде (в строке одно слово и ничего больше), то можно из этой кучи выбрать то, что работает хорошо на всем множестве словарей.
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380436
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

Хорошая статейка
Только нужен тестовый проект с исходными данными
И не понятно, почему нет функции, где обрабатывается 4 байта за итерацию
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380445
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr SharahovНу, по коллизиям не хуже Седжвика, по крайней мере.
Хорошая, судя по всему, функция. Посмотрел распределение - тоже лучше Седжвика.

Aleksandr SharahovНо там главное не только коллизии, а как оно ляжет в таблицу (длина наибольшего кластера).
Разумеется, но каждая коллизия увеличивает размер/способствует образованию кластера, плюс добавляет проверку ключа.

Aleksandr SharahovТак что если есть готовые словари в текстовом виде (в строке одно слово и ничего больше), то можно из этой кучи выбрать то, что работает хорошо на всем множестве словарей.
А можно этот словарь выложить? Я бы тоже свою таблицу погонял.
Я словари брал тут (обратный словарь) и тут (фамилии).
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380450
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал ещё карты распределений:
RSHash(UTF16)
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380451
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SHAPFCT(1251):
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380452
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TFastComparer.GetHashCode отсюда :
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380453
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380454
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Распределение на обратном словаре.
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380455
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дефолтный дельфийский Дженкинс:
...
Рейтинг: 0 / 0
TDictionary или TList<>.BinarySearch с позиции поиска
    #39380458
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SOFT FOR YOU,

Когда ты напишешь функцию с обработкой 4 байта за итерацию,
не порождающую больших кластеров в хеш-таблице,
ты увидишь, что она не быстрее Седжвика.



Kazantsev Alexey,

По второй твоей ссылке есть словарь Лопатина http://www.speakrus.ru/dict/lop2v2.zip
Но из него надо выбросить повторы и пояснения к словам.

Из других словарей, по видимому стоит натаскивать функцию только на фамилии.
Вряд ли кому требуются обратные слова и т.п.
...
Рейтинг: 0 / 0
25 сообщений из 479, страница 6 из 20
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TDictionary или TList<>.BinarySearch с позиции поиска
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]