递归函数的Big-O运行时间

造雨者

以下伪代码的Big-O运行时间是多少:

rec(int N) {
    if (N<0) return;
    for i=1:N {
        for j=1:N {
            print("waste time");
        }
        rec(N-1);
    } 
}

如果我的理解是正确的,则此代码的准确运行时间为

N^2 * 1 + (N-1)^2 * N + (N-2)^2 * N * (N-1) ... + N!

或等效地

(N-k)^2 * nPk from k=0 to k=N-1

Big O运行时是否仍为O(N!)?如果我们进一步嵌套“浪费时间”循环该怎么办?如果我们将“浪费时间”循环替换为花费2 ^(Nk)时间而不是(Nk)^ 2时间的东西怎么办?

我的猜测是所有这些问题的答案仍然是O(N!),因为该系列的最后几个词占主导地位。如果我错了,请纠正我。

菲利普·贡萨尔维斯(FilipeGonçalves)

您是对的:在您描述的所有场景中,仍然是O(n!)因为那是该系列的主导-阶乘的增长比其他因素要快得多,它很快成为算法运行时间的主要瓶颈。

除非您用比O(n!)(例如O(n^n)更差的东西代替浪费时间循环,否则它将始终为O(n!)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

递归函数的Big-O运行时间

来自分类Dev

big-O中的运行时间分析

来自分类Dev

Big O对运行时间的粗略估计

来自分类Dev

递归函数运行时

来自分类Dev

递归算法的运行时间

来自分类Dev

解决递归关系的运行时间

来自分类Dev

循环函数的运行时间

来自分类Dev

计算函数的运行时间

来自分类Dev

计算 Big-O 运行时

来自分类Dev

算法的实验运行时间与理论运行时间函数的比较

来自分类Dev

使用Big-O渐近分析计算总运行时间

来自分类Dev

什么是Big-O和确切的运行时间

来自分类Dev

用内部循环重复时间确定循环的big-O运行时是const

来自分类Dev

递归函数在运行时崩溃

来自分类Dev

递归函数的Big-O表示法

来自分类Dev

如何找到潜水递归函数的Big O

来自分类Dev

递归函数的Big-O表示法

来自分类Dev

减少我的递归子集和算法的运行时间

来自分类Dev

具有两个输入的递归函数的运行时间

来自分类Dev

如何优化递归球拍函数的运行时间以确定列表中元素的最大值?

来自分类Dev

如何计算此递归函数的最坏情况(理论上)运行时间?

来自分类Dev

如何确定给定递归函数的运行时间 T(n)?

来自分类Dev

这些Python函数没有预期的运行时间

来自分类Dev

试图弄清楚我的函数的运行时间

来自分类Dev

如果运行时间太长,则中止函数执行

来自分类Dev

计算给定函数python的运行时间

来自分类Dev

脚本中的函数运行时的时间戳

来自分类Dev

如何使用clock()函数获取运行时间

来自分类Dev

确定多个函数调用的运行时间