如何知道算法函数是否需要特定操作的线性/常数/对数时间?它取决于cpu周期吗?
答案 0 :(得分:2)
有三种方法可以做到(至少)。
在网上查找算法,看看它的时间复杂度。
根据输入大小,自己检查算法以查看嵌套循环和递归条件,以及每个循环运行或每次递归的频率。对此的扩展是严格的数学分析。
试验。改变输入变量,看看它需要多长时间。计算一个方程式,根据变量给出所说的运行时间(联立方程求解是O(n c ) - 类型函数的一种可能性。
其中,第一个对于外行人来说可能是最简单的,因为它几乎肯定是由一个更有知识的人做出的第二个: - )
答案 1 :(得分:0)
首先,该功能可能需要任何时间来执行算法。它也可以是非线性的,甚至是无限的。
如果您有算法,那么很快就会使用名为图灵机的抽象。它用于测量在停止之前执行算法所需的许多操作。
您可以在此处获得更准确的信息WIKI::Computational complexity theory
答案 2 :(得分:0)
关于对CPU的依赖: 答案是否定的 - 时间复杂度完全独立于cpu。这是因为复杂性显示 - 算法对cpu资源的需求如何随着算法输入数据大小的增加而增加。换句话说,它是一个功能。并且功能在任何地方都是相同的 - 无论是在不同的机器上还是在不同的星球上:)