Man*_*ena 0 java algorithm data-structures
我在面试时被问到这个问题.我认为这个问题过于通用,无法指定特定的数据结构.
但是,如果我们将问题通道化为以下标准,那么使用的最佳数据结构是什么:
的HashSet同时提供了O(1)的插入和O(1)的搜索,这是硬从理论角度到顶部.
实际上,对于大小为10.000的引用,虽然插入是O(n)并且搜索是O(log(n)),但排序ArrayList可能仍然优于大写HashSet.为什么?因为它将数据(至少是引用)存储在连续的内存范围中,因此可以利用硬件内存缓存.
big-O表示法的问题在于它完全忽略了单个操作所需的时间.对于渐近考虑和非常庞大的数据集来说这很好,但是对于10.000的大小,这可能会产生误导.
但是没试过.我打赌你的面试官也没有:).
| 归档时间: |
|
| 查看次数: |
977 次 |
| 最近记录: |