フィールド値を持ついくつかのレコードを定数に設定し、後でそれらに1つずつ順番にアクセスする必要があるシナリオがあります。レコードはランダムレコードにすることができます。リンクリストはコストがかかり、バッファ全体をトラバースしたくないので、使用したくありません。そのためのアイデアを教えてください。
1 に答える
0
「フィールド値を定数に設定するレコードをいくつか設定する」と言うとき、これはレコードのキーのようなものですか?そして、「後でそれらに1つずつアクセスする」-これは、いくつかのキーでそれらを呼び出すためですか?シーケンシャルアクセスはトラバーサルによく似ているため、「1つずつシーケンシャルに」と「バッファ全体をトラバースしたくない」は競合しているようです。
しかし、私は逸脱します。実際にキーを持っている場合(そしてそれが数字である場合)、ある種のハッシュテーブルを使用してレコードを整理することができます。基本的な実装の1つは、リンクリストの配列で、キーを配列の範囲に変更してから、そこのリストに追加します。これにより、キーが適切に分散されていると仮定すると、パフォーマンスが向上する可能性があります(レコードがアレイ全体に十分に分散している)。
調べるべき別のデータ構造は、対数時間でノードにアクセスできるBツリーまたはバイナリ検索ツリーである可能性があります。
ただし、全体として、過度に最適化することは通常は良い考えではないというコメントに同意します。
于 2013-03-13T07:22:43.270 に答える