有一个哈希表,一个数组中的插槽,每个插槽都有一个双向链表,未排序。
元素总数为n
,广告位数为m
。
时间复杂度是多少:
他们应该都是O(n)
,对吗?因为你必须迭代每个元素。
但是,在书<The algorithm design manual 2nd>
,第90页中,它表示它是O(n+m)
,但我不明白。
任何人,有助于告诉哪个是对的?而且,为什么。
感谢。
答案 0 :(得分:5)
插槽可以为空(列表中没有元素)。您必须迭代所有插槽才能找到所有非空列表,这样O(m)才能正常工作。然后你必须搜索所有列表,这是O(n)工作。总工作量:O(n + m)。