情報構造 |
---|
◆ キュー
◆ スタック
◆ ハッシュ法 ハッシュ法とは、検索したいキー値を元にハッシュ関数というものを用いて、 配列の何番目に格納されているかという情報を取得する、または配列の何番目に格納されるようになる方法です。 ・・・と言ってもちょっと分からないので、以下のような感じだと思います。
では、ハッシュ関数って何かと言いますと、キー値をもらってある計算式からx番目の x を算出しますが、その x がなるべく重複した値にならないようにするのが好ましい。 要は、その計算式やらは自分で考えろという事です。(とくに計算式に決まりがないのです)ここで言う x がハッシュ値と言われています。 例として下は「ABCD」からハッシュ関数を使用して取得したハッシュ値が 3 だった場合。
だいたい過去問題では、このハッシュ関数は キー値 mod 配列の大きさ で出てきます。(おそらく配列に数値を格納するというのが前提なのでしょう。) よく問題になるのがハッシュ値の衝突と言って、キー値が異なっていてもハッシュ値は余りの値なので、重複してしまう可能性はあります。 上の場合だと、キー値が「a」と「b」(整数とします)とあった場合、a - b が配列の大きさの倍数であればハッシュ値が衝突してしまいます。 衝突してしまった時の対処は実は自由なのですが、 例としてはハッシュ値+α番目の位置が空いているかどうかを調べ、空いていればそこに格納、空いてなければまた+α番目を調べる手法があります。 下はαを 3 とした場合の例です。
|
TOPページに戻る |