算法的时间和内存复杂度的定义是什么?

What is the definition of time and memory complexity of algorithm?

寻求对任何算法的时间和内存复杂度的一般理解。

当我们谈论算法的 thing-complexity 时,我们是在谈论 thing 增长的一般函数集,随着输入大小的增长。

对于时间,这是很明显的,它是执行算法所需的时间(好吧,通常是“操作次数”)。

对于内存,我们通常指的是算法所需要的额外内存。这包括“显式临时变量”、“堆栈”等内容。

对于复杂性,我们经常使用“big-O”表示法。一般形式是 f(n) ∊ O(g(n)),这意味着我们拥有的(精确的)函数是集合的一部分,因此存在一个 m,其中所有 k ≥ m,和 c,使得 f(k) ≤ c * g(k).