良いハッシュ関数(任意の2つの要素の衝突確率が1/m、mはバケットの数)を使用してハッシュテーブルを実装する場合、見た目の平均ケース実行時間要素がΘ(1 + α)であり、αが負荷係数です。しかし、最悪の場合の実行時間はO(n)ですが、すべての要素が同じバケットに入れられるとします。連鎖ハッシュテーブルルックアップの最悪の場合の時間複雑度が予想されますか?
私は最近、いくつかは、ハッシュテーブルの上に読んでやっと(ログN/Nをログログ)α = 1場合は、期待最悪の場合の複雑さがΘであること(3ページ)主張するthis articleを発見しました。 「予想される最悪の場合の複雑さ」とは、要素が一様なハッシュ関数によって分散されている場合に必要な作業の最大量を意味します。ワーストケースの動作(同じバケット内のすべての要素)が実際に発生する可能性は非常に低いため、これは実際のワーストケースとは異なります。
私の質問は次のとおりです。αの値が異なると、予想される最悪の場合の検索の複雑さが変更される可能性があります。 αが予想される最悪の場合の実行時間をどのように変更するかを議論する数式、表、または記事を誰かが知っていますか?
一般的な分析は、(少なくとも私のために)袖口以外は複雑です。私は特にこの問題を解決するための参照が不明なので、ローカライズされた単純化があるかもしれません。いずれの場合でも、最大リスト長は 'max_x l(x)'であり、 'l(x)'はスロット 'x'のリスト長さ(そこと同じ表記)になります。 'l(x)〜Bin(1/m、n)'は二項分布を有する。すなわち、l(x)はベルヌーイ試行の合計である。したがって、これらの確率変数のうち、「n」が存在する最大値は、n次統計量である。 – davin
インターネットの周りの離散順序統計分布の式がたくさんあるので、いくつかの(醜い)式を組み合わせたり、さまざまな値のテーブルを計算したりすることができます。 – davin
予想されるケース(平均ケース)予想される最悪の場合。あなたはそれについて解説できますか? –