下列字典的平均情况基于以下假设:
1. 对象的散列函数足够撸棒(robust),不会发生冲突。
2. 字典的键是从所有可能的键的集合中随机选择的。
小窍门:只使用字符串作为字典的键。这么做虽然不会影响算法的时间复杂度,但会对常数项产生显著的影响,这决定了你的一段程序能多快跑完。
操作
平均情况
最坏情况
复制[注2]
O(n)
O(n)
取元素
O(1)
O(n)
更改元素[注1]
O(1)
O(n)
删除元素
O(1)
O(n)
遍历
O(n)
O(n)
注:
[1] = These operations rely on the “Amortized” part of “Amortized Worst Case”. Individual actions may take surprisingly long, depending on the history of the Container.
[2] = For these operations, the worst case n is the maximum size the container ever achieved, rather than just the current size. For example, if N objects are added to a dictionary, then N-1 are deleted, the dictionary will still be sized for N objects (at least) until another insertion is made.
本文转载自:https://www.cnblogs.com/harvey888/p/6659061.html