Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
データ構造とプログラミング技法 (第 10 回) PowerPoint Presentation
Download Presentation
データ構造とプログラミング技法 (第 10 回)

データ構造とプログラミング技法 (第 10 回)

169 Views Download Presentation
Download Presentation

データ構造とプログラミング技法 (第 10 回)

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. データ構造とプログラミング技法(第10回) ー文字列照合(KMP法、BM法)ー

  2. 文字列照合 text中のpatの位置(複数可)を求める。

  3. jはtext中の照合位置 iはpat中の照合位置 nはtextの長さ、 mはpatの長さ 単純照合法

  4. 単純照合法の無駄

  5. 単純照合法の無駄:常に大きくスキップできる訳ではない単純照合法の無駄:常に大きくスキップできる訳ではない

  6. next[i] KMP法 text中のk番目の文字で、patのi番目の文字との比較に失敗した時、 textのk`番目と、patのnext[i]番目の文字との比較から再開する。

  7. next[i]の例 ABABBA 0 1 0 1 3 0 0:共通文字列は存在しない→空であると想定しても,その直後の文字が同じなので矛盾する 1:共通文字列は存在しない→空であると想定すると,その直後の文字と先頭文字が異なるため矛盾しない 3:共通文字列はAB→直後の文字もAとBで不一致

  8. next[i]の例(続き) ABCDABD 0 1 1 1 0 1 3 0:共通文字列は存在しない→空であると想定しても,その直後の文字が同じなので矛盾する 1:共通文字列は存在しない→空であると想定すると,その直後の文字と先頭文字が異なるため矛盾しない 3:共通文字列はAB→直後の文字もAとBで不一致

  9. KMP法:アルゴリズム

  10. BM法:アイデア1 パターンの末尾から照合し,照合に失敗したテキストの 側の文字種が、パターン中の照合に失敗した位置より も左にあるかどうかを探す。

  11. BM法:アイデア1の実現法

  12. BM法:アイデア2 k+m-i

  13. BM法:shift(j)

  14. BM法:アルゴリズム