外部ストレージに格納されている非常に大きなソートリストを持っている場合。このリストを内部メモリに持ち込むことができないと仮定すると、このリストのキーを擬似コードで探す良い検索アルゴリズムは何でしょうか?時間の複雑さはどうなるでしょうか?また、このアルゴリズムを設計する際に考慮すべき重要な要素は何ですか?外部検索アルゴリズム
0
A
答えて
0
あなたの外部記憶装置はファイルに保存された固定サイズのレコードの単なる配列であり、プログラミング言語はmemory map the fileであると仮定すると、通常はbinary search algorithmを使用できます。
Cで言う、++あなた
- mmapファイルが
- 、始まりと のmmap-EDファイルの末尾にvoid *型のポインタを取るには、あなたのレコードタイプ
- へのポインタをキャストし、標準バイナリ検索の実装の1つであるstd::lower_bound()を使用してレコードを検索します。
ファイルをメモリにマップしても、ファイル全体が内部メモリにロードされるわけではなく、キャッシュされたサイズを保持するスマートポリシーを使用して、ファイルから読み込まれたページのキャッシュに自動的にロードされます利用可能なメモリ範囲内のページ。
これはソートされたファイルを検索するための標準的な方法であり、それを再設計する理由はありません(私の知る限り)。外部メモリのバイナリ検索アルゴリズムの複雑さは、外部ストレージモデル、バッファリング/ページング戦略などに依存しますが、ハードドライブの場合は通常のO(log N)であると見なすことができます。 out-of-core algorithmsとデータ構造のチュートリアルとライブラリを検索することをお勧めします。
関連する問題
- 1. MySQLの部分一致検索アルゴリズム
- 2. 外部スクリプトの検索
- 3. 検索アルゴリズム
- 4. SQLAlchemy検索アルゴリズム
- 5. 検索アルゴリズムは
- 6. .net検索アルゴリズム?
- 7. フットプリント検索アルゴリズム
- 8. 検索アルゴリズム
- 9. テキスト検索アルゴリズム
- 10. バイナリ検索ツリー?アルゴリズム
- 11. 検索ロジックとアルゴリズム
- 12. XQueryマルチフィルター検索アルゴリズム
- 13. KMPパターン検索アルゴリズム
- 14. 単語検索アルゴリズム
- 15. Googleパンダ検索アルゴリズム
- 16. ウェブサイトの検索アルゴリズム
- 17. 最適点検索アルゴリズムの検索
- 18. jqgridツールバーの検索または外部検索機能
- 19. algoliaインスタント検索で外部キーで検索する方法は?
- 20. Jquery Datatableサーバーサイドページネーション外部検索フィールド
- 21. データセット内の外部キーの検索
- 22. 外部キーで管理者で検索
- 23. 外部キーを検索するクエリ
- 24. 外部ページのWordpress検索結果
- 25. 外部RSSフィードのSharePoint検索
- 26. 休止状態検索と外部クラス
- 27. 外部キーのプライマリテーブルの検索
- 28. Mediawiki検索外部データベース - prependフック
- 29. 文字列検索アルゴリズム
- 30. クイック検索アルゴリズムのコストモデル
キー固有のインデックスファイルを作成し、ドメイン固有の言語を作成することができます。構造化された形式でデータをクエリするSQLを呼び出します。その後、あなたはもっと多くのエキストラを書く時間を費やすことができました。しかし、待ってください - これはすでに完了しました。これはデータベースと呼ばれます。 – BitTickler
多くのデータベースでは、キー固有のファイルが関与していますが、kレコードは64レコードのうちの1つのキーです(64レコード以下になる可能性があります)ただ1つの初期ランダムアクセスで、連続して読み出すことができます。メインフレームや限られたメモリの時代になると、レコードの索引付けなどのネストされた索引が使用されました。 – rcgldr