> 백엔드 개발 > C++ > 본문

C 프로그램을 위한 순진한 패턴 검색 알고리즘

王林
풀어 주다: 2023-09-08 13:41:02
앞으로
772명이 탐색했습니다.

C 프로그램을 위한 순진한 패턴 검색 알고리즘

C의 패턴 일치 - 문자열이 다른 문자열에 존재하는지 찾아야 합니다. 예를 들어 문자열 "algorithm"이 문자열 "naive algorithm"에 존재합니다. 발견되면 해당 위치(즉, 위치)가 표시됩니다. 우리는 2개의 문자 배열을 받아 일치하는 항목이 있으면 위치를 반환하고, 그렇지 않으면 -1을 반환하는 함수를 만드는 경향이 있습니다.

Input: txt = "HERE IS A NICE CAP"
   pattern = "NICE"
Output: Pattern found at index 10
Input: txt = "XYZXACAADXYZXYZX"
   pattern = "XYZX"
Output: Pattern found at index 0
   Pattern found at index 9
   Pattern found at index 12
로그인 후 복사

저희는 순진 모드 검색으로 이 문제를 해결하고 있습니다. 이 알고리즘은 작은 텍스트에 유용합니다. Naive는 문자열이 존재하는지 확인하기 위해 나타날 수 있는 모든 가능한 위치를 검사하여 다른 문자열 내에서 문자열이 나타나는 위치를 확인하는 간단하고 비효율적인 방법입니다.

Naive 알고리즘의 시간 복잡도는 O(mn)입니다. 여기서 m은 검색할 패턴의 크기이고 n은 컨테이너 문자열의 크기입니다.

패턴 검색은 컴퓨터 과학에서 매우 중요한 문제입니다. 메모장/단어 파일, 브라우저, 데이터베이스 또는 일부 정보에서 문자열을 찾을 때마다 패턴 검색 알고리즘은 검색 결과를 표시하는 데 사용됩니다.

Algorithm

naive_algorithm(pattern, text)

Input− 텍스트 및 패턴

Output− 텍스트에서 패턴이 나타나는 위치

Start
   pat_len := pattern Size
   str_len := string size
   for i := 0 to (str_len - pat_len), do
      for j := 0 to pat_len, do
         if text[i+j] ≠ pattern[j], then
         break
   if j == patLen, then
   display the position i, as there pattern found
End
로그인 후 복사

실시간 데모

#include <stdio.h>
#include <string.h>
int main (){
   char txt[] = "tutorialsPointisthebestplatformforprogrammers";
   char pat[] = "a";
   int M = strlen (pat);
   int N = strlen (txt);
   for (int i = 0; i <= N - M; i++){
      int j;
      for (j = 0; j < M; j++)
         if (txt[i + j] != pat[j])
      break;
      if (j == M)
         printf ("Pattern matches at index %d </p><p>", i);
   }
   return 0;
}
로그인 후 복사

출력

레이

위 내용은 C 프로그램을 위한 순진한 패턴 검색 알고리즘의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!