日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

【python】list,dict,set的時間復雜度

系統 1752 0

list

python的列表內部實現是數組(具體實現要看解析器, CPython的實現 ),因此就有數組的特點。超過容量會增加更多的容量,set, get 是O(1),但del, insert, in的性能是O(n)。具體的看下表,'n’是容器中當前的元素數, 'k’需要操作的元素個數

Operation Average Case Amortized Worst Case
Copy O(n) O(n)
Append[1] O(1) O(1)
Insert O(n) O(n)
Get Item O(1) O(1)
Set Item O(1) O(1)
Delete Item O(n) O(n)
Iteration O(n) O(n)
Get Slice O(k) O(k)
Del Slice O(n) O(n)
Set Slice O(k+n) O(k+n)
Extend[1] O(k) O(k)
Sort O(n log n) O(n log n)
Multiply O(nk) O(nk)
x in s O(n)
min(s), max(s) O(n)
Get Length O(1) O(1)

dict

關于字典需要了解的是hash函數和哈希桶。一個好的hash函數使到哈希桶中的值只有一個,若多個key hash到了同一個哈希桶中,稱之為哈希沖突。查找值時,會先定位到哈希桶中,再遍歷hash桶。更詳細的信息請點這里。在hash基本沒有沖突的情況下get, set, delete, in方面都是O(1)。自己的操作不會超過O(n)

Operation Average Case Amortized Worst Case
Copy[2] O(n) O(n)
Get Item O(1) O(n)
Set Item[1] O(1) O(n)
Delete Item O(1) O(n)
x in s O(1) O(n)
Iteration[2] O(n) O(n)

set

內部實現是dict的。在in操作上是O(1), 這一點比list要強。
也有list不存在的差運算

Operation Average case Worst Case
x in s O(1) O(n)
Union s|t O(len(s)+len(t))
Intersection s&t O(min(len(s), len(t)) O(len(s) * len(t))
Multiple intersection s1&s2&…&sn (n-1)*O(l) where l is max(len(s1),…,len(sn))
Difference s-t O(len(s))
s.difference_update(t) O(len(t))
Symmetric Difference s^t O(len(s)) O(len(s) * len(t))
s.symmetric_difference_update(t) O(len(t)) O(len(t) * len(s))

更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大同市| 县级市| 革吉县| 永川市| 英超| 翁源县| 秀山| 金川县| 普宁市| 庆云县| 赣州市| 闻喜县| 囊谦县| 公安县| 赤城县| 喜德县| 偏关县| 治县。| 大石桥市| 民丰县| 芮城县| 安福县| 钟祥市| 昭苏县| 泰兴市| 清流县| 普宁市| 娱乐| 墨竹工卡县| 海晏县| 安宁市| 日土县| 青海省| 盐亭县| 广昌县| 阿巴嘎旗| 宣武区| 广元市| 讷河市| 博客| 佛山市|