我一直在解决教科书中有关计算算法的大O复杂性的一些问题。我难以理解的其中一个问题在后面没有答案,我很感激任何意见。
您有一个长度为n-1的数组,其中包含包含单词列表的链接列表。每个链表首先插入排序,然后使用链表中的第一个单词,数组被快速排序。这个算法的大O复杂性是什么?
我已经知道:
遍历链表是O(n) 插入排序为O(n ^ 2) 快速排序是(nlogn)
我只是不确定如何计算整个算法的复杂性
答案 0 :(得分:1)
“每个链接列表首先按插入排序”
这会导致O(n) * O(m^2)
或O(n*m^2)
的复杂性 - 我们必须使用不同的字母,因为每个列表的长度与列表的数量无关。
“然后数组快速排序”
这增加了O(n log n)
。
总计:O(n*m^2 + n log n)
,简化为O(n*m^2)
(n log n
与n*m^2
相比并不重要。