假设我有一个长度为n
的数组,我使用时间为nlogn
的排序算法对其进行排序。获得此排序数组后,我遍历它以查找具有线性时间的任何重复元素。我的理解是,由于操作分开进行,这将是时间O(nlogn) + O(n)
而不是O(nlogn+n)
。如果是这样的话,nlogn
会不会采用线性时间复杂度来制作最终时间复杂度O(nlogn)
?
是的,因为对于大n,log(n)> 1,所以O(nlog(n))是O(n)的超集
O(nlogn)+ O(n)而不是O(nlogn + n)
哪有这回事; O(n log n)+ O(n)和O(n log n + n)相等,并且都等于O(n log n)。因此,一个函数不可能在一个而不是另一个函数中。