Даны текстовый файл и некоторое слово. напечатайте те строки файла, которые содержат данное слово. можете подробно рассказать о механизме поиска. только не надо интернета, это все не то. большое ))

Retmes1 Retmes1    1   25.06.2019 09:30    1

Ответы
tkalichzhenya tkalichzhenya  02.10.2020 11:02
Механизмы поиска могут быть различными. Конкретный механизм зависит от различных факторов, таких как, количество планируемых поисков, объем текстового файла, условия поиска и т.д.
1. Однократный поиск в соответствии с условиями задачи.
В этом случае нет смысла в использовании сложных алгоритмов и/или  предварительной подготовке файла. Чем сложнее алгоритм, тем больше будут затраты труда и времени на написание и отладку программы. Наилучшее решение - последовательный просмотр строк файла с поиском первого вхождения в строку заданного контекста. Большинство языков программирования имеет встроенную функцию или процедуру поиска подстроки в строке, например Pos() в языке Паскаль, поэтому задача сводится к единственному циклу "Повторять пока не встретился конец файла: читать строку, искать в строке контекст и что-то с ним сделать".
2. Многократный поиск в файле различных контекстов.
Здесь используются специально разработанные методы, основанные на предшествующем построении дополнительных структур, таких, как индексы, деревья поиска и т.д. Их общий смысл в том, что для поиска сначала просматриваются эти вс структуры (которые, к тому же, упорядочены для ускорения поиска) и зачастую к самому файлу можно вообще не обращаться. Для понимания аналогии можно вспомнить поиск нужного слова в словаре. Сначала мы выбираем первую букву, затем ищем страничку, которая содержит слова, между которыми находится наше искомое, а потом просматриваем найденную страницу.
ПОКАЗАТЬ ОТВЕТЫ
ifj2ifvjw ifj2ifvjw  02.10.2020 11:02
Существует множество алгоритмов поиска, самый легкий, но самый долгий - брут-форс. Полное перебирание всех символов строки.
Например, есть строка 99 Bottles of beer on the wall и ищется подстрока (слово) the. Тогда идет полный перебор. Сравнивается первый символ слова (t) и каждый символ строки. Если символы совпали, то сравнивается следующий символ строки и следующий символ слова (h) и так далее. Если все символы слова совпали, то в строке оно содержится. Брут-форс - самый неэффективный алгоритм, т. к. время его работы линейно зависит от длины строки.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика