【发布时间】:2014-07-20 02:30:47
【问题描述】:
在寻找适合我正在构建的应用程序的容器时,我遇到了unordered_set 的文档。鉴于我的应用程序通常只需要 insert 和 find 函数,这个类看起来相当有吸引力。但是,由于find 的摊销成本为 O(1),但最坏的情况为 O(n),我会稍微推迟一点——我会经常使用该函数,它可能会成就或破坏我的应用程序。是什么导致复杂性飙升?遇到 O(n) 搜索的可能性是否可预测?
【问题讨论】:
-
unordered_set被实现为hash table。最坏的情况发生在大量元素不幸地散列到相同的值时(准确地说,当它们落入同一个散列桶时)。
标签: c++ c++11 data-structures complexity-theory