ホームページ > バックエンド開発 > C++ > C プログラム用の単純なパターン検索アルゴリズム

C プログラム用の単純なパターン検索アルゴリズム

王林
リリース: 2023-09-08 13:41:02
転載
840 人が閲覧しました

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 はコンテナー文字列のサイズです。

パターン検索は、コンピューター サイエンスにおいて非常に重要な問題です。メモ帳やワード ファイル、ブラウザ、データベース、または何らかの情報で文字列を探すときは常に、 検索結果の表示にはパターン検索アルゴリズムが使用されます。

アルゴリズム

naive_algorithm(パターン、テキスト)

入力- テキストとパターン

出力-テキスト内のパターンが出現する場所

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;
}
ログイン後にコピー

出力

Pattern matches at 6
Pattern matches at 25
Pattern matches at 39
ログイン後にコピー

以上がC プログラム用の単純なパターン検索アルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート