テスト勉強--「データ構造とアルゴリズム」

「データ構造とアルゴリズム」のテストの為の個人的まとめまとめ。 作成者は筑波大情報科学類2年生です。
7
ハレノ @hareno_t

……テストに備えてとりあえずまとめておこうか。勉強TLになります、ご容赦ください。

2010-06-27 18:45:15
ハレノ @hareno_t

文字列照合……(代表例)単純照合、KMP法BM法。 [データ構造とアルゴリズム]

2010-06-27 19:03:49
ハレノ @hareno_t

KMP法……パターン列について、別の配列を用意する。その配列には、照合失敗した場合にその場所に一致させる配列番号を格納する。最悪O(n)。 [データ構造とアルゴリズム]

2010-06-27 19:12:18
ハレノ @hareno_t

ex.パターン列:"ABAAC",next="01110"(但しインデックスを1とする [データ構造とアルゴリズム]

2010-06-27 19:14:27
雷鳴 @sorayukinoyume

@hareno_t 「私は大学生の時、一番難しいものはKMP法とコンパイラ原理と思います。」コンパイラ原理の先生はそう言いました

2010-06-27 19:26:12
ハレノ @hareno_t

@sorayukinoyume KMP法……よく思いついたな、って思いますよ。

2010-06-27 19:27:55
ミレトス@煩悩黒子 @miretoss

@hareno_t BM法の方が頭いいと思うのは俺だけ?

2010-06-27 19:29:36
ハレノ @hareno_t

@miretoss いや、無論BM法の方が効率も良いし、賢いやり方してると思うよ。うん。有効性もBM法の方が高いし、KMP法は必然的に思いつくようなものだし(アルゴリズムは難しいけれど)。

2010-06-27 19:31:08
ミレトス@煩悩黒子 @miretoss

@hareno_t 何か、KMP法の考え方は好きなんだけど、枕パターンって完璧じゃないと思うんだよね・・ある特殊な並べ方すると発見しない気がする

2010-06-27 19:33:20
ハレノ @hareno_t

@miretoss というか、枕パターンが存在しない方が早く探索できる。 [データ構造とアルゴリズム]

2010-06-27 19:34:50
ハレノ @hareno_t

BM法……ヒューリスティック1の場合のみが出題範囲。2は今回考慮しない。 [データ構造とアルゴリズム]

2010-06-27 19:15:42
ハレノ @hareno_t

基本は「後ろから照合」する。一致しなかった場合、その文字列中に同じ文字が入っていなかったら、どれだけずらしても無駄足なので、一気に文字列文ずらす。それが可能であるような表を別に作る。 [データ構造とアルゴリズム]

2010-06-27 19:17:55
ハレノ @hareno_t

処理時間はO(n/m)に近い。最悪O(n+m)。 [データ構造とアルゴリズム]

2010-06-27 19:21:09
やまもと @ymtkyk

@hareno_t 割り算なら悪くない、データ量が増えると高速になるの?

2010-06-27 19:23:07
ハレノ @hareno_t

@ymtkyk えーと、短い方の文字数がm、多い方の文字数がnです。はい。

2010-06-27 19:25:10
やまもと @ymtkyk

@hareno_t なーるほど、比で決まるってことか!

2010-06-27 19:38:26
ハレノ @hareno_t

@ymtkyk そうですねー。Oはどちらかというと無限大への発散しやすさを表してるので、計算量自体は文字数が多くなればなるほど多くなりますが、それでもO(n^2)ほどは大きくならない、という意味です。 [データ構造とアルゴリズム]

2010-06-27 19:40:19
ハレノ @hareno_t

KMP法って、三人寄れば文殊の知恵というのを実行してくれた良い例だよね(棒読み [データ構造とアルゴリズム]

2010-06-27 19:28:17
ハレノ @hareno_t

教科書のP78の問題4.1が鬼畜。「Q:~~なのは何故でしょうか」「A::本当の理由は不明である」 [データ構造とアルゴリズム]

2010-06-27 19:36:49
@yurii09ch

@hareno_t 勉強会にいる3人全員が吹いた

2010-06-27 19:42:06
ハレノ @hareno_t

スタック……最後尾にプッシュ、最後尾からポップ。 待ち行列……最後尾にenqueue、前からdequeue。(なんかひy…… [データ構造とアルゴリズム]

2010-06-27 19:43:46
ハレノ @hareno_t

最短経路問題:Dijkstra(ダイクストラ)アルゴリズムFloydアルゴリズム。ダイクストラは一つ一つ追加していく。Floydは破壊的探索。 [データ構造とアルゴリズム]

2010-06-27 20:07:44
ハレノ @hareno_t

データ整列法……単純洗濯法、単純挿入法、ヒープ整列法イックソート、バブルソート、シェル法、シェーカ整列法マージソート法etcetc... [データ構造とアルゴリズム]

2010-06-27 20:13:13
ハレノ @hareno_t

データ探索法:線形探索、二分探索、ハッシュ法(複数通り)、B木を用いた探索。etcetc... [データ構造とアルゴリズム]

2010-06-27 20:18:37