[アルゴリズム]検索アルゴリズム


アルゴリズムベース入門のために学ぶDO IT!資料構造とともに学ぶアルゴリズム入門:Python編で新しい知識をまとめる

1.検索アルゴリズムの種類


1-1. サーチ配列

  • 線形探索:ランダムデータセットで一意の探索を実行する方法
  • バイナリ検索:固定ルールを持つデータセットで
  • を迅速に検索する方法
  • ハッシュアルゴリズム:頻繁にデータを追加および削除するデータセットでデータを迅速に検索する方法
    -チェーン:同じハッシュ値データを接続リストに接続します.
    -オープン・アドレス法:データのハッシュ値が競合する場合、災害発生時は
  • 1-2. 接続リストの検索


    1-3. バイナリ検索ツリー検索


    2.線形検索(配列検索)


    :一番前のスキャンから要素の検索までの順序検索アルゴリズム

    2-1. 終了条件

  • (検索失敗)で並べ替えられた末尾.
  • (検索成功)キー値と同じ要素が見つかりました.
  • 2-2. ホイッスルほう


    :線形検索の終了条件は、データ量が多いほどコストが高くなることです.
    :検索が終点に到達したかどうかを判断するほか、線形検索の費用を半減することもできます.
    검색 키 값을 배열의 마지막에 추가하여, 검색이 맨끝에 도달했는 지 판단하는데 드는 비용을 줄일 수 있다.
    def seq_search(arr:Sequence, key:Any) -> int :
      a = copy.deepcopy(arr)
      a.append(key)
      
      for i in range(len(arr)):
        if arr[i] == key : 
          return -1 if i == len(arr)-1 else i