![]() |
|
Модераторы: xvr |
![]()
|
|
| admsasha |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 28.1.2005 Репутация: 1 Всего: 6 |
есть файл с содержимым
32e:fddfdf we2:wer32 s33:werew34 ew:dshjk есть два параметра p1 и p2, мне надо узнать существует ли комбинация p1:p2 в этом файле или нет можно считывать содержимое файла построчно и сравнивать, а можно ли это сделать другим способом ? более быстрым с малым кодом ? |
|||
|
||||
| Mayk |
|
|||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 5 Всего: 134 |
В общем случае нет, так как тут происходит чистый линейный поиск.
Можно остортировать файл (и держать его отсортированным) и выполнить бинарный поиск. Отсортировать файл можно sort(1) Кстати, сколько записей хранится в файле? Счёт идёт на сотни, или десятки тысяч? Добавлено @ 09:58 Если же сохранять сортированность файла крайне тяжело (часто добавляется много записей), то сравнение можно ускорить, прохешировав значения строк и приписав значения хешей. Сравнение в общем случае ускорится, так как вместо дорогого strcmp можно использовать operator==(int,int). Заодно и индексный файл можно построить. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
|||
|
||||
![]()
|
| Правила форума "С/С++: Программирование под Unix/Linux" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |