これは宿題の質問ですが、何かが欠けていると思います。それは尋ねます:
線形プロービングで実装されたハッシュ テーブルを埋めるm 個のキーのシーケンスを提供し、それを埋める時間が最小になるようにします。
その後
mキーの別のシーケンスを提供しますが、それを埋める時間が最大になるようにします。ハッシュ テーブルが 2 次プロービングを実装している場合は、これら 2 つの質問を繰り返します。
ハッシュ テーブルのサイズがmであると仮定することしかできません。これは、指定された唯一の数値であり、負荷係数を説明する前にハッシュ テーブルのサイズを指定するためにその文字を使用してきたためです。しかし、シーケンスをテーブルにハッシュするハッシュ関数を知らずに、最初のシーケンスを実行することは考えられません。
たとえば、すべてのエントリを同じインデックスにハッシュするなど、不適切なハッシュ関数である場合、シーケンスがどのように見えるかに関係なく、それを埋めるための最小時間と最大時間の両方に O(n) 時間がかかります。そして、平均的なケースでは、ハッシュ関数は問題ないと仮定しますが、そのハッシュ関数がテーブルを埋めるのにかかる時間をどのように知ることができますか?
これらの質問は、ハッシュされたシーケンスよりもハッシュ関数にリンクされているのではないでしょうか?
2 番目の質問については、ハッシュ関数に関係なく、同じキーがm回繰り返されるサイズmのシーケンスが最大時間を提供すると仮定できます。これは、2 番目のエントリから線形プローブが発生するためです。O(n)時間かかると思います。あれは正しいですか?