O(nlogn)+ O(n)的时间复杂度就是O(nlogn)吗?

时间:2018-09-12 23:55:37

标签: algorithm time-complexity big-o

比方说,我有一个长度为n的数组,我使用时间为nlogn的排序算法对它进行了排序。获得此排序数组后,我将对其进行遍历以找到具有线性时间的任何重复元素。我的理解是,由于操作是分开进行的,所以这将是时间O(nlogn) + O(n),而不是O(nlogn+n)。如果是这种情况,nlogn是否会采用线性时间复杂度,从而使最终时间复杂度为O(nlogn)

2 个答案:

答案 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 )。因此,一个函数不可能在一个函数中,而不能在另一个函数中。