Бинарный поиск

Gllory

Client
Регистрация
19.06.2017
Сообщения
47
Благодарностей
10
Баллы
8
Есть таблица с десятками тысяч строк, из которой нужно как можно быстрее достать строку с определенными данными
Для ускорения парсинга решил попробовать реализовать бинарный поиск

Логика будет такая:
1. Берем 1ую букву из текста, который нужно найти
2. Получаем индекс этой буквы в таблице ASCII
3. Берем 1ую букву текста, находящегося в середине таблицы
4. Получаем индекс этой буквы в таблице ASCII
4. Сравниваем индексы, если индекс нужной буквы меньше индекса буквы из середины таблицы, значит вся верхняя часть отрезается и парсинг продолжается с нижней частью, и все начинается с 1го пункта, соответственно если индекс больше, тогда отрезается нижняя часть

В зено есть встроенный метод, которым можно получить индекс определенного символа в таблице ASCII?
Если нет, тогда придется вручную добавить ASCII таблицу в шаблон
Кто нибудь пытался реализовать такой поиск, получится ли заметно ускорить парсинг или в этом нет смысла?
 

Gllory

Client
Регистрация
19.06.2017
Сообщения
47
Благодарностей
10
Баллы
8
Изначально хотел сделать проверку по всем буквам, но стало лень и остановился только на проверке первой буквы.
Моя задача - поиск нескольких тысяч строк в таблице с несколькими десятками тысяч строк - стандартным построчным поиском выполнялась за 10 минут, с этим выполняется за 3.5 минуты.
В списке symbols нужно оставить/добавить только те символы, которые могут быть первой буквой в вашем тексте.
 

Вложения

t79

Client
Регистрация
29.04.2024
Сообщения
185
Благодарностей
67
Баллы
28
Изначально хотел сделать проверку по всем буквам, но стало лень и остановился только на проверке первой буквы.
Моя задача - поиск нескольких тысяч строк в таблице с несколькими десятками тысяч строк - стандартным построчным поиском выполнялась за 10 минут, с этим выполняется за 3.5 минуты.
В списке symbols нужно оставить/добавить только те символы, которые могут быть первой буквой в вашем тексте.
если надо - дай пресет данных
пару поисковых запросов
и ответы по ним

будет чуть времени - посмотрю
 

t79

Client
Регистрация
29.04.2024
Сообщения
185
Благодарностей
67
Баллы
28
ну и скорость по ответам
чтоб было с чем сравнивать методы
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)