比方说,我有一个长度为n
的数组,我使用时间为nlogn
的排序算法对它进行了排序。获得此排序数组后,我将对其进行遍历以找到具有线性时间的任何重复元素。我的理解是,由于操作是分开进行的,所以这将是时间O(nlogn) + O(n)
,而不是O(nlogn+n)
。如果是这种情况,nlogn
是否会采用线性时间复杂度,从而使最终时间复杂度为O(nlogn)
?
答案 0 :(得分:3)
是的,因为对于大n,log(n)> 1,所以O(nlog(n))是O(n)的超集
答案 1 :(得分:3)
O(nlogn)+ O(n)而不是O(nlogn + n)
没有这样的东西; O ( n log n )+ O ( n )和 O ( n log n + n )相等,并且都等于 O ( n 日志 n )。因此,一个函数不可能在一个函数中,而不能在另一个函数中。