我在面试中被问到这个问题。我认为这个问题过于笼统,无法指定特定的数据结构。
然而,如果我们把这个问题引向以下标准,那么什么才是最好的数据结构:
发布于 2016-07-19 19:27:25
HashSet提供O(1)插入和O(1)搜索,从理论上看,这是很难做到的。
实际上,对于10.000个引用,排序的ArrayList可能仍然优于HashSet,尽管插入是O(n),搜索是O(log(n))。为什么?因为它将数据(至少是引用)存储在连续内存范围内,因此可以利用硬件内存缓存。
大O表示法的问题是它完全忽略了单个操作所需的时间。对于渐近考虑和非常庞大的数据集来说,这是很好的,但是对于10.000大小的数据来说,这可能会产生误导。
不过还没试过呢。我敢打赌你的面试官也没有:)
https://stackoverflow.com/questions/38465148
复制相似问题