簡體   English   中英

Python3中字典的空間復雜度

[英]Space Complexity for dictionary in Python3

這個字典在Python中的空間復雜度是多少?

(1)我的猜測:O(V + E)其中V是鍵的數目,E是字典中數組值的最大長度。

{
    'key' : ['value', 'value2', ...],
    'key2': ['value30', 'value31', ...],
    ...
}

小問題:如果字典是由有向圖構成的,則其空間復雜度應為O(2E)嗎?

(2)我的猜測:O(V)其中V是鍵的編號。

{
    'key' : 4,
    'key2': 5,
    ...
}

Python中的字典被實現為哈希表。

通常,哈希表將具有n個鍵和n個元素(每個鍵一個)。 這將使它們具有O(n)空間,因為我們可以在O(2n)中刪除常量。

您想要做的是獲取一個像數據結構這樣的哈希表,並使其表現出通常不會出現的行為...據我了解,您試圖使用它的方式是您擁有元素列表,並且每個列表都可以通過關鍵。 由於每個列表都可以有自己的長度,因此更好地表示空間復雜度是O(k + v1 + v2 ... + vn),其中v1是列表1的長度,而vn是最后一個列表的長度。

如果您像使用哈希表一樣使用字典,則空間復雜度為O(n)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM