学習の要約を探します

A.は、直線状を探します

   1.順次検索

       同じキーワードやレコードの値を指定した場合は、キーワードを記録して、指定された値が続くテーブルの期間から始まる連続検索、、、あなたは、逆に、成功を見つけることも、テーブル全体をスキャンした後であればキーワードなしと指定された値

      記録に等しい、ルックアップが失敗します。

      この本は、2つのアルゴリズムを提供します。

      7.1

int型search_seq(ssTable ST、キータイプキー)
{ 
ための式(I = ST.length; I> = 1; i--)
   IF(ST.R [I] .KEY ==キー)リターンI。
Oを返します。
} 


int型search_seq(ssTable ST、キータイプキー)
{ 
ST.R [0] =キー。
(i-- I = ST.length; ST.R [i]を.KEY =キー!)のために
  私はリターン。
}

    第2のアルゴリズムは、第1の改良され、それによって時間を短縮、I> = 0が決定され、各サイクルで除去されるべきです。しかし、2つのアルゴリズムのために必要な時間は、nの大きさに依存して、時間の複雑さはO(N)です。

   利点:アルゴリズムは、テーブル番号の構造簡単です

   短所:平均検索長、低効率、nの値は、低次検索効率が非常に大きいです。

 2.バイナリ検索

     中間要素は、要素がちょうど探している場合、アレイ素子の中央からの検索処理は、検索処理を終了する。特定の要素は、アレイ内の中間要素が大きいか又は中間要素ルックアップの半分よりも小さいより大きいまたは小さい場合、及びスタートのように真ん中の要素を比較し始めます。配列は、いくつかの段階で空の場合、それが見つかりません表しています。各比較検索が半分に減少するように、この検索アルゴリズム。

  複雑:Tは、(N)= O(ログ2(N))、S(N)= O(1)。  

  場合の高速放電時間の複雑使用してデータをソートするために一次のうち格納されたデータ、O(nlog2(N))をので、合計時間複雑度は、T(N)= O(nlog2 (N))+ O(ログ2は、最上位のO =をとる(N))(nlog 2(N-))。

  長所:比較的低い周波数と高い検索効率。

  短所:順次ストレージ構造のためにのみ使用することができ、オブジェクトを見つけるには、アレイを注文する必要があります。注文データ処理の最初のソートでは、それは時間の無駄になります。そして、データの順序を保証するため、平均のインサートを比較し、削除し、時間がかかることになる要素の半分を移動するために、困難な動的な検索を実行します。第二に、データの量は、メモリ空間を超える連続し、バイナリサーチを行うことができないを提供することができます。

II。検索ツリーテーブル

 1.バイナリ・ソートツリー

 

(1)左の部分木は、左の部分木の値次いで、空でない場合、すべてのノードがルートノードの値未満です。

 

右サブツリーが右サブツリーその後、空でない場合(2)、全てのノードは、そのルート・ノードの値の値よりも大きいです。

 

(3)左及び右サブツリーは、バイナリソートツリーです。
  異なる結果を生成する別の挿入配列

    (1)であることが好ましい:O(ログ2 N-)を-完全二分木

    (2)最悪:O(n)は---単一のツリー

III。ハッシュテーブル

 リニアテーブルと木のテーブルの以前の方法を見つけ、関係なく、店舗の住所の、保存されたキーワードの比較上のノードの数と無効なノードの数が多いと比較するために見るには、検索速度につながることは非常にあり、多くの時間をベースとしています遅いです。

 我々は、キーワードと、それが保存されている場所に直接ハッシュのルックアップを考えているこの関係に基づいてキーワードを探していたときに、その後、見つけるの間のリンクを確立する場合。

(1)及びハッシュ関数Hash住所:CONTACT-1に対応し、P Hは=その格納位置Pと鍵KEYレコード間(キー)H、Hは、ハッシュ関数と呼ばれているように、ハッシュアドレスPと呼ばれます。

主な問題ハッシュ・ルックアップ:
ハッシュ関数を構築する方法1.。
(1)デジタル分析
(2)平方取中法
(3)折りたたみ方法
(4)またとどまります
 
競合を回避するための方法2。
(1)オープンアドレス法
        1.リニア検出方法
        前記第2の検出方法
(2)メソッドリンクアドレス
 
 

 

おすすめ

転載: www.cnblogs.com/slrt/p/10964459.html