[英]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.