演習問題 第3回 配列: 表探索
3a 改良型逐次探索法と二分探索法の性能比較(整数値)(より具体的に記述しました)
下記に示すファイルを読み込み、配列に格納し探索対象集合とする。
ファイル名: integer1MS.dat
下記の2組の整数(探索値)を設定する(main関数の配列(2つ)に格納し
(1) 元のファイルに存在する整数: 10個
(2) 元のファイルに存在しない整数: 10個
例えば、以下のように配列を宣言し、格納する。
array_e[10] = {102, 283, ・・・・, 9999670} ;
array_u[10] = {103, 211, ・・・・, 9999398} ;
さらに、次の手法による比較回数を格納するために、
(1) 改良型逐次探索法
(2) 二分探索法
例えば、以下のように配列を宣言し比較回数を格納する。
frq_e[10] ;
frq_u[10] ;
上記(1), (2)の2つの探索アルゴリズムを用いて探索し、比較回数を上記の各配列に格納し、以下のような形式で出力(printf文)する。
改良逐次探索法(配列中にある値)
探索値 探索回数
102 ***
283 ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
9999670 ***
改良逐次探索法(配列中に無い値)
探索値 探索回数
103 ***
211 ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
9999398 ***
二分探索法(配列中にある値)
探索値 探索回数
102 ***
283 ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
9999670 ***
二分探索法(配列中に無い値)
探索値 探索回数
103 ***
211 ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
*** ***
9999398 ***
上述のように合計40(10×2+10×2)の比較回数データが得られる。これらのデータを様々な観点から分析せよ。