|
VB.NETで検索方法やデータ量による速度を比較する。 ●比較対象 ○検索方法による違い
・逐次比較法 について、データ型を変化させる。 ○データ量による違い
バイナリサーチ法とハッシュテーブル法にて検索テーブル長を変える。 →注意:テーブル長が余りに大きいと、実行時、仮想記憶が生起され正確な時間測定ができなくなるので、マシンの仕様に合わせて設定する必要がある。 ○検索方法による違い 三つの検索方法、三つのデータ型の計9通り計測する。テーブル長は、5万データ、検索キーは5千種とし、全検索時間を測定する。 ○データ量による違い テーブル長を、10万から100万の5種にて、検索キーを5万種にて計測する。データ型はString。 ●結果 いずれもマシンは、CPU:ペンティアム4 2GHz、メモリ:1024MB、OS:Windows XP Pro SP2 となっている。 ○検索方法による違い
○データ量による違い
●考察 いずれも、絶対時間は意味がなく、互いの比較に意味がある。 ○検索方法による違い 検索方法による比較のための演算数は、テーブル長を N とすれば、
となる。逐次比較では、ソートされていないと、不一致の場合、常にN回の演算が必要となり、最悪となる。基本的に使わないのが賢明である。ハッシュテーブル法では、シノニムがなければ、等速検索になると期待される。 ○データ量による違い 上表のように、ハッシュテーブル法では、テーブル長による違いは余り見られない。ハッシュテーブル法はバイナリサーチ法の約10倍くらいの速度。 ●結論
●実験のプログラムリスト (省略) |