アルゴリズムに関する問題
こんばんわ、いくつかの問題につまってしまったので解答と簡単な解説をお願いします;
【問1】
4桁の数字( a1a2a3a4 )をハッシュ法を用いて配列に格納したい。
ハッシュ関数をmod( a1 +a2 +a3 +a4 ,5 )とし、求めたハッシュ関数値に対応する位置の配列要素に格納する場合、9576は(ア)~(オ)のどこに入るか。
ここでmod(x,5)の値は、xを5で割った余りとする。
位置 配列
0 (ア)
1 (イ)
2 (ウ)
3 (エ)
4 (オ)
【問2】
相違なるn個のデータが昇順に整列された表がある。この表を1ブロックm個に分割し、各ブロックの最後尾のデータだけ線形検索することによって、目的のデータを探し出す。
次に当該ブロック内を線形検索して目的のデータを探し出す。
このときの平均探索(比較)回数は(ア)~(エ)のうちどれか。
ここでm<nとし、目的のデータは必ず表の中に存在するものとする。
(ア) (イ) (ウ) (エ)
n n n m n
─ ─ m + ─ ─+─
m 2m m 2 2m
【問3】
次の手順はシェルソートによる整列を示している。
データ列”7,2,8,3,1,9,4,5,6”を手順(1)~(4)に従って整列すると手順(3)を何回繰り返して完了するか。
ここで、〔〕は小数点以下を切り捨てる。
<手順>
(1)〔データ数÷3〕→Hとする。
(2)データ列を互いにH要素分だけ離れた要素の集まりからなる部分列とし、それぞれの部分列を挿入方を用いて整列する。
(3)〔H÷3〕→Hとする
(4)Hが0であればデータ列の整列は完了し、0でなければ(2)に戻る。
以上になります。