Py学习  »  Python

分析Python的Dict insert运行时间有什么错?

D. Ulick • 3 年前 • 1367 次点击  

根据我对Python源代码的理解,插入dict的工作原理如下:

insert(e)

  1. 允许 j 是已分配数组中的元素数,并且 k 是数组的大小。(与 K 存在 8
  2. 如果 j+1 < 2/3k 插入 e 进入这个位置 hash(e)%k (暂时不要担心碰撞)
  3. 否则,将数组调整为两倍大小的数组。 K 现在是两倍大,这需要 O(k_prev)

对于 n 插入,有 log(n)-3 调整总时间复杂度的大小 O(log(n)) 但所有网上资源似乎都在说,我应该把这次行动看作是 O(1) ?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/133913
 
1367 次点击  
文章 [ 2 ]  |  最新文章 3 年前