ハッシュテーブルについての簡単な質問。 私は現在、 ハッシュテーブルを実装しています。 とオープンアドレッシングの組み合わせを使用し、各バケットのリンクリストの長さを特定の長さに制限しています( )。ハッシュテーブルを分離する - ハングテーブルについての簡単な質問
しかし、私はこのハッシュテーブル構造を使って を効率的に取得/削除する方法を考えるのに苦労しており、盲目的にばかげているかどうか疑問に思っています。
私が衝突解決スキームを使用して継続的にプローブしようとすると、潜在的に永遠になり、キーがテーブルにないかどうかを決して知ることができません。これは、ほとんどのプロービング方法ではすべてのバケットがカバーされないため、線形プロービングを使用したくないからです。
ほとんどのプロービング方法はすべてのバケットをカバーするわけではないので、あなたが見たバケットを追跡するのは高価ですが、バケットが空になってもプロービングパス内の次のバケットはそうではありません空のバケツに遭遇すると停止します。
この問題に関するご意見は大変ありがとうございます。
ありがとうございます!無制限の衝突のようなシナリオでは
バイナリseach。あなたのデータベース(ハッシュマップ)に100万のエントリが含まれている場合、500,000の代わりに平均で〜20の検索操作しか必要ありません。唯一の要件は、マップがソートされていることです – Radinator
私は良い古いバイナリ検索の利点を理解していますが、マップはソートされていません、そして、私はハッシュマップの全体のポイントは、良いパフォーマンスを得るために(単語の正式なアルゴリズムの意味で)ソートされる –