Bmh8 Библиотека bmh8 — это статическая библиотека для поиска подстрок по алгоритму Бойера-Мура-Хорспула, предоставляющая своим пользователям локальную настройку. Его использование, несмотря на то, что оно простое и понятное, требует от пользователей наличия компилятора C и стандартного заголовка ANSI, однако реализация совместима с другими алгоритмами поиска строк. В библиотеке есть одна функция поиска bmv_find и одна функция поиска bmv_chr. Обе функции позволяют выполнять поиск в строке и возвращают индекс первого вхождения или терпят неудачу, если вхождений не найдено. Функции не зависят друг от друга, что означает, что поиск первого вхождения может выполняться независимо от памяти поиска. Кроме того, пользователи должны знать, что библиотека реализует только функции поиска, поэтому ее нельзя использовать для построения каких-либо результирующих строк или других функций. Задачи и самостоятельность пользователя: Пользователи могут использовать библиотеку для запуска функций поиска подстрок в своих файлах C, указав имена функций для функций поиска. Библиотека также предоставляет набор файлов заголовков, которые будут использоваться в качестве заголовков импорта. Однако фактическая реализация функций находится в файлах bmh8.h и bmh8.c. Задачи, которые должны иметь в виду пользователи, заключаются в том, чтобы связать необходимые библиотеки с их процессом сборки и добавить заголовки в файлы C их проекта. Полное описание алгоритма Бойера-Мура-Хорспула: Алгоритм Бойера-Мура-Хорспула — это алгоритм поиска, предназначенный для поиска определенной подстроки в определенной строке. Алгоритм, названный в честь его создателей, состоит из создания таблицы подстроки длины n с последующим поиском, соответствующим этой подстроке. Говорят, что строка соответствует подстроке, если подстрока находится внутри строки. Алгоритм разработан специально для сопоставления строк символов, где и строка, и подстрока, предоставленные алгоритму, состоят из отдельных символов ASCII, а строки состоят только из символов ASCII. Алгоритм, как и многие другие алгоритмы поиска, основан на компромиссах между пространством и временем. Алгоритм использует таблицу во время выполнения в дополнение к самой строке, что дает пользователям компромисс между временем и пространством. Операции, задействованные в алгоритме, показаны ниже на рисунке 1. На рисунке 1 ниже предположим, что строка: "Первый второй третий". В bmh8 Поиск в библиотеке. bmh8 Описание: В мире информатики алгоритм Бойера-Мура-Хорспула — это алгоритм поиска определенной строки внутри другой. Алгоритм был разработан Джеком Бойером, Джеймсом П. Муром и Хормозом Ф. Хорспулом (1994). Алгоритм Бойера-Мура-Хорспула (BMH) представляет собой алгоритм поиска строк. Алгоритм направлен на решение проблемы поиска строки (иголки) в стоге сена за счет линейной временной сложности (O(N) = N) и меньшего объема памяти по сравнению с обычными алгоритмами (O(N^2)) для каждого стога сена. N в длине строки. Алгоритм был впервые задуман в 1977 году Д. Э. Кнутом как дополнительный алгоритм, наряду с алгоритмом обратного отслеживания и динамического программирования, для реализации алгоритма поиска строки LCU. Алгоритмы обратного отслеживания должны искать компромисс между скоростью поиска и сложностью памяти. Хотя алгоритм BMH работает с строкой ограниченной длины, например 64 или 128 байтов, ему требуется 16 байтов пространства. Следовательно, при использовании хеш-таблицы требуется использование таблицы для добавления 16 байтов вместо 16 * N байтов. Таким образом, его можно сравнить с эффективностью алгоритма обратного отслеживания, но в то же время он дает наилучшую производительность при поиске по строкам большей длины. Используя алгоритм Бойера-Мура-Хорспула (BMH), исходную строку можно уменьшить, установив начальную точку поиска и заранее определенный индекс. Поиск производится по той же игле, что и исходная строка. Алгоритм 3.1: Применение алгоритма BMH для определения того, найдена ли строка Алгоритм Бойера-Мура-Хорспула обычно используется для конкретного поиска иглы. Алгоритм ищет строку внутри другой строки и определяет расстояние между строками. 3.1.1. Шаг 1: Инициализируйте количество байтов i, строку назначения s и длину иглы s. Прежде чем начнется фактический процесс, пользователи должны инициализировать переменные и поместить их в различные переменные параметров поиска. Фактический процесс состоит из двух шагов, первый — инициализировать переменную i заданной длиной иглы. В случае, когда игла является алгоритмом поиска fb6ded4ff2
Related links:
Comments