|
|
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
white_nigger, Я думаю, ты и сам себя не понял ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2016, 01:11:05 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
makhaon я никого не выгонял из топика. Напротив, он неплохо разросся, потому что задача и смысл задачи представляет немалый интерес. Просто ты зачем-то стал общаться фамильярно. Можно было бы эмоции и свое отношение оставить при себе, ты же не женщина, которая не умеет держать себя в руках. Ну или в одной))) Мы с ребятами на работе тоже посидели-подумали. Вариантов напридумывали. Самый интересный оказался - матрица. Если длина фиксирована и представляет собой цифры (вообще это номера телефонов), то можно создать матрицу массивов с быстрым доступом по индексу позиции искомой цифры и проверке по значению. И память минимизировать до 9 байт по сути на хранение телефона. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 15:20:51 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
серчер makhaon я никого не выгонял из топика. Напротив, он неплохо разросся, потому что задача и смысл задачи представляет немалый интерес. Просто ты зачем-то стал общаться фамильярно. Можно было бы эмоции и свое отношение оставить при себе, ты же не женщина, которая не умеет держать себя в руках. Ну или в одной))) Мы с ребятами на работе тоже посидели-подумали. Вариантов напридумывали. Самый интересный оказался - матрица. Если длина фиксирована и представляет собой цифры (вообще это номера телефонов), то можно создать матрицу массивов с быстрым доступом по индексу позиции искомой цифры и проверке по значению. И память минимизировать до 9 байт по сути на хранение телефона. В таком случае можно написать аналог TDictionary, в котором номер телефона играет одновременно роль хеша, ключа и данных. И память сократить до 4 байт на номер. Даже с учетом коэффициента заполнения потребуется меньше. И быстрее будет, наверное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 15:34:41 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
серчервообще это номера телефоновя делал массив на 120 МБ, в котором хранятся биты по всем сотовым номерам России + хеш-таблицу из строк для всех "несотовых" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 16:02:11 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
fd00ch, MNP? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 16:15:25 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
white_niggerинтересно почему пост продублировался? коллизия хэша ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 16:33:42 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
asviridenkov, а при чем тут это? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 16:38:06 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahovсерчер makhaon я никого не выгонял из топика. Напротив, он неплохо разросся, потому что задача и смысл задачи представляет немалый интерес. Просто ты зачем-то стал общаться фамильярно. Можно было бы эмоции и свое отношение оставить при себе, ты же не женщина, которая не умеет держать себя в руках. Ну или в одной))) Мы с ребятами на работе тоже посидели-подумали. Вариантов напридумывали. Самый интересный оказался - матрица. Если длина фиксирована и представляет собой цифры (вообще это номера телефонов), то можно создать матрицу массивов с быстрым доступом по индексу позиции искомой цифры и проверке по значению. И память минимизировать до 9 байт по сути на хранение телефона. В таком случае можно написать аналог TDictionary, в котором номер телефона играет одновременно роль хеша, ключа и данных. И память сократить до 4 байт на номер. Даже с учетом коэффициента заполнения потребуется меньше. И быстрее будет, наверное. Это как же до 4 байт? Это в смысле если убрать 79 в начале? Иначе в 4 байта не уместиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 16:55:04 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
fd00chсерчервообще это номера телефоновя делал массив на 120 МБ, в котором хранятся биты по всем сотовым номерам России + хеш-таблицу из строк для всех "несотовых" "биты по всем сотовым номерам"? Я не очень понял эту фразу. Слишком захешировано.) Расхешируй ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 16:57:19 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
серчер"биты по всем сотовым номерам"? Я не очень понял эту фразу. Слишком захешировано.) Расхешируйм.б. битсет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 17:09:49 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
серчер, ты выше ее расхешировал))серчерЭто в смысле если убрать 79 в началеполучится диапазон в 1 млрд номеров или бит, т.е. 120 МБ памяти ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 17:10:41 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
удобно с нашими короткими номерами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 17:21:43 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
fd00chasviridenkov, а при чем тут это? Один из вариантов, для чего нужна база всех сотовых РФ (а не кодов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2016, 18:26:00 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, вот ты гад, задел меня за живое своими хеш-функциями, больше года держался, а тут на тебе: http://guildalfa.ru/alsha/node/32 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.01.2017, 21:13:10 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, Delphi 7 и RawByteString? Проверил коллизи функций: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 00:30:25 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Ага, у меня объявлено RawByteString=AnsiString для совместимости с другими юнитами, которые обычно использую. Ну, по коллизиям не хуже Седжвика, по крайней мере. Но там главное не только коллизии, а как оно ляжет в таблицу (длина наибольшего кластера). От этого зависит скорость вставки-удаления. Скорость поиска и так всегда была отличная. На самом деле у меня, пока тестирую, все функции параметрические. Сейчас имеется куча найденных значений параметров с примерно одинаковыми характеристиками на словаре Лопатина. Так что если есть готовые словари в текстовом виде (в строке одно слово и ничего больше), то можно из этой кучи выбрать то, что работает хорошо на всем множестве словарей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 08:00:19 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Aleksandr Sharahov, Хорошая статейка Только нужен тестовый проект с исходными данными И не понятно, почему нет функции, где обрабатывается 4 байта за итерацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 11:11:56 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Aleksandr SharahovНу, по коллизиям не хуже Седжвика, по крайней мере. Хорошая, судя по всему, функция. Посмотрел распределение - тоже лучше Седжвика. Aleksandr SharahovНо там главное не только коллизии, а как оно ляжет в таблицу (длина наибольшего кластера). Разумеется, но каждая коллизия увеличивает размер/способствует образованию кластера, плюс добавляет проверку ключа. Aleksandr SharahovТак что если есть готовые словари в текстовом виде (в строке одно слово и ничего больше), то можно из этой кучи выбрать то, что работает хорошо на всем множестве словарей. А можно этот словарь выложить? Я бы тоже свою таблицу погонял. Я словари брал тут (обратный словарь) и тут (фамилии). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 11:59:49 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Сделал ещё карты распределений: RSHash(UTF16) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:18:13 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SHAPFCT(1251): ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:19:02 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
TFastComparer.GetHashCode отсюда : ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:20:18 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:20:58 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Распределение на обратном словаре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:21:47 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
Дефолтный дельфийский Дженкинс: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:30:50 |
|
||
|
TDictionary или TList<>.BinarySearch с позиции поиска
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Когда ты напишешь функцию с обработкой 4 байта за итерацию, не порождающую больших кластеров в хеш-таблице, ты увидишь, что она не быстрее Седжвика. Kazantsev Alexey, По второй твоей ссылке есть словарь Лопатина http://www.speakrus.ru/dict/lop2v2.zip Но из него надо выбросить повторы и пояснения к словам. Из других словарей, по видимому стоит натаскивать функцию только на фамилии. Вряд ли кому требуются обратные слова и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.01.2017, 12:37:53 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39380450&tid=2041988]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
182ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 497ms |

| 0 / 0 |
