【发布时间】:2015-08-06 15:16:45
【问题描述】:
如果问题大小是 n,并且每次算法将问题大小减少一半,我相信复杂度是 O (n log n),例如归并排序。所以,基本上你正在运行一个(log n)算法(比较)n次......
现在的问题是,如果我有一个大小为 n 的问题。我的算法能够在一次运行中将大小减少一半,每次运行需要 O(n log n)。这种情况的复杂性是什么?
【问题讨论】:
-
用我认为发布的算法来计算会更容易
-
合并排序是 O(n*logn) 因为它在将大小减半后执行了两次递归调用。如果它只进行一次递归调用,它将是 O(n) (参见例如快速选择算法)。因此,您需要更具体地了解您所讨论的算法,以便分析其复杂性。