Категория
Информатика
Тип
реферат
Страницы
3 стр.
Дата
24.05.2010
Формат файла
.rtf — Rich Text Format (Wordpad)
Архив
20749.zip — 23.93 kb
  • algoritmy-poiska-v-tekste_20749_1.rtf — 179.94 Kb
  • Readme_docus.me.txt — 125 Bytes
Оцените работу
Хорошо  или  Плохо


Текст работы

Алгоритмы поиска в тексте Alena
Alena
Алгоритмы поиска в тексте
Андрей Боровский
Наверное, каждому, кто много работает за компьютером, знакома подобная ситуация: перелистывая страницы книги в поисках нужного фрагмента, невольно начинаешь думать о том
, как вызвать команду «поиск по всему тексту». Действительно, современные программы обработки текста приучили нас к такой удобной возможности, как поиск и замена фрагментов, и если вы разрабатываете подобную программу, пользователь вправе ожидать, что вы предоставите в его распоряжение соответствующие команды. Эту проблему нельзя эффективно решить при помощи стандартных функций Delphi/Kylix, поскольку большинство средств разработки включает только малоэффективные средства. Во-первых, в стандартных функциях не всегда используются самые эффективные алгоритмы, а во-вторых, вполне возможно, что вам понадобится изменить стандартное поведение этих функций (например, предусмотреть возможность поиска по шаблону).
В этой статье рассматриваются два варианта наиболее эффективного алгоритма поиска в тексте – алгоритма Бойера-Мура. Мы также рассмотрим некоторые полезные расширения этого алгоритма.
Алгоритм грубой силы и простой вариант алгоритма Бойера-Мура.
Прежде, чем приступить к рассмотрению алгоритма Бойера-Мура, приведем простейший (и самый медленный) алгоритм поиска, называемый «методом грубой силы».
function Find(const S, P : String) : Integer;
var
i, j : Integer;
begin
Result := 0;
if Length(P) > Length(S) then Exit;
for i := 1 to Length(S) - Length(P) + 1 do
for j := 1 to Length(P) do
if P[j] S[i+j-1] then Break
else if j = Length(P) then
begin
Result := i;
Exit;
end;



Ваше мнение



CAPTCHA