ハッシュテーブルに入れるには、償却された O(1) が必要だと人々は言います。したがって、n 個の要素を配置することは O(n) でなければなりません。ただし、回答者が言ったように、「予想される償却された O(1) を満たすために必要なのは、テーブルを拡張し、衝突が発生したときに新しいランダム ハッシュ関数を使用してすべてを再ハッシュすることだけです。」
では、ハッシュ テーブルに n 個の要素を挿入する平均実行時間は? これはおそらく実装に依存していると思いますので、どのタイプの実装について話しているのかを述べてください。
たとえば、(log n) 個の等間隔の衝突があり、各衝突の解決に O(k) かかる場合 (k はハッシュテーブルの現在のサイズ)、次の再帰関係が得られます。
T(n) = T(n/2) + n/2 + n/2
(つまり、時間をかけて n/2 要素を挿入すると、衝突が発生し、解決に n/2 がかかり、衝突なしで残りの n/2 挿入が行われます)。これでも O(n) になってしまいます。しかし、これは合理的ですか?