hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。
文字列検索 - HSP開発wiki
トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS

アルゴリズム

文字列検索

HSPでは黙ってinstr()使えばいいと思いますが、プログラミングをやるうえで知っておいて損はないと思いますので・・・。
実行速度に興味のある人はinstr()と比較するのも面白いかも知れませんよ^^

用語の統一

ここで使う用語をまとめておきたいと思います。

  • テキスト・・・検索対象の文字列
  • パターン・・・検索する文字列

力ずく法

一番簡単な方法はテキストの先頭から1つづつずらしながらパターンと比較する方法です。

A l g o r i t h m :

はじめに・・・
        検索開始点をテキストの先頭に置く。
        テキストの注目点を開始点に置く。
        パターンの注目点をパターン先頭に置く。

  1. テキストの注目点とパターンの注目点を比較する。
    1. 1で一致ならばそれぞれの注目点を進める。
    2. 1で不一致ならば検索開始点を進め、テキストの注目点を開始点に、パターンの注目点をパターン先頭に置く。
  2. どちらかの注目点がそれぞれの文字列の末尾に来るまで1を繰り返す。
  3. パターンの注目点が文字列の末尾なら検索開始点が見つかった位置となる。
  • 力ずく法の実装例を見る

力づく法では常に移動量が1だったのに対して、KMP法では比較に失敗した場合の移動量を事前に調べておき、それを元にパターンをずらすというアルゴリズムです。

A l g o r i t h m :

  1. 雛形です。

A l g o r i t h m :

  1. 雛形です。

A l g o r i t h m :

  1. 雛形です。

コメント

  • っていうかねぇ・・・僕はこれらを自分で本買って覚えたんだけどね、これを書いちゃうとこれから覚える人はタダってこと?と思ってちょっと躊躇。(ケチ
    というかちょっとWEBで解説しているところが無いか検索してみます。 -- kz3 2005-11-22 (火) 15:08:54
  • RK法という初耳のアルゴリズムが見つかりました。というかアルゴリズムの特許とか問題ないのかな? -- kz3 2005-11-22 (火) 15:15:36
  • 実装例を載せなければいいのか^^ -- kz3 2005-11-22 (火) 15:17:22
  • 僕の認識では特許とは、著作権と違い、技術の発展を目指し広く技術を公開することを指す。と認識しています。その技術を流用して商売をしなければ問題なしなはず。 -- araran 2005-11-22 (火) 15:21:13
  • なるほど・・・araranさんありがとうございます! -- kz3 2005-11-22 (火) 15:23:50
  • 書き途中で申し訳ありませんが、今日は隣町に買い物いったり髪切ったりなので続きは夕方になりそうですorz -- kz3 2005-11-23 (水) 09:04:33
  • ぁ、問題を簡単にするために2バイト文字は扱わないようにしているのは暗黙の了解ということで。 -- kz3 2005-11-23 (水) 09:19:41

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

トップ    編集凍結 差分バックアップ添付複製名前変更リロード   新規一覧単語検索最終更新   最終更新のRSS
Last-modified: 2007-04-08 (日) 02:48:35 (2436d)