• 締切済み

アルゴリズムでわからない問題があります。(C言語)

問題1:探索アルゴリズムであるハッシュ法について正しいものを選べ。 (1)ハッシュ関数の出力によりデータを格納した配列の先頭から順番に調べる. (2) 入力データを,ハッシュ関数の出力により求めた格納場所に基づいて,あらかじめ木構造に格納しておく. (4) 入力データを格納した配列を繰り返し2つに分割し,それぞれを順番に調べていく. (3) 入力データから格納場所の位置に変換する関数(ハッシュ関数)の出力により,データの探索場所を決定する。 (5) 入力データを,ハッシュ関数の出力により求めた格納場所に基づいて,あらかじめヒープに格納しておく 問題2:探索アルゴリズムであるハッシュ法について正しくないものを選べ。 (1)入力データはハッシュ値で決められる場所に格納される. (2) ハッシュ関数には,異なる入力の値に対し異なる値を出力することが求められる. (3) ハッシュ関数の時間計算量は,入力データのサイズに比例する. (4) データの格納場所が大きい方が効率がよい. (5) 一般に2分探索法より高速に動作する. どなたかアルゴリズムに詳しい方回答お願いします

みんなの回答

  • utun01
  • ベストアンサー率40% (110/270)
回答No.3

No.2さんと若干見解の異なる部分についてのみ記載します。 ・問題2 (2)について ハッシュ関数の理念としては正しい気がします。 現実的には不可能なので、完全にこのように作られるハッシュ関数はありませんが・・・。 出題者の意図次第な感じですね。 ・問題2 (4)について ここで言うハッシュ法が、ハッシュテーブルを使うものなのか、 実アドレスを使うものなのかによって違います。 前者であれば間違いですが、後者であれば正解です。 ちなみに、後者のアルゴリズムはあまり一般的DBでは使用されていません。 以下、蛇足です。 とにかく問題の作り方が良くありません。 問題1についても、恐らく答えは(3)ですが、 (3)の場合は、ハッシュテーブルを用いる一般的な方法とは一線を画します。 (上で言っている後者の方法) 勉強中のようですので、ついでにこの辺も調べてみてはいかがでしょうか。

すると、全ての回答が全文表示されます。
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.2

問題1 (3) 問題2 (2)(3)(4)

すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.1

なんか微妙な問題だし, いったいどこが「C」なのかさっぱりわからん. さておき, 「ハッシュ法」がわかっていれば答えられるはずです. 自分で調べてください.

すると、全ての回答が全文表示されます。

関連するQ&A