如何在JavaScript中自动计算算法的时间复杂度?[重复]

问题描述 投票:1回答:2

在JavaScript中是否有一个内置的方法来计算算法的时间复杂度?

例如,如果我输入这个函数。

function solution(A) {
    let smallestInt = 1;

    function existsInArray(val) {
        return A.find((a) => a === val);
    }

    for (let index = smallestInt; index < 1000000; index++) {
        if (existsInArray(index) && !existsInArray(index + 1) &&
            existsInArray(smallestInt)) {
            smallestInt = index + 1
        }
    }
    return smallestInt;
}

这个方法应该能告诉我算法的时间复杂度是多少?O(N*2) 或以正确答案为准?

如果没有内建方法,有没有一个库有自动实现的方法?

javascript ecmascript-6 time-complexity big-o
2个回答
2
投票

没有,这样的程序可以解决 哑巴问题. 这是不可能的。


1
投票

一般来说是不可能的,尽管人们可以在不同的输入上进行多次模拟,以得出一个合理的近似值。

请看这三个有用的讨论。

  1. P中的运行时间界限是可以确定的吗?(答案:不是)
  2. 程序上获得代码的大O效率
  3. 计算Java代码的大O时间复杂度的工具?
© www.soinside.com 2019 - 2024. All rights reserved.