Big-O和等号,滥用符号

时间:2011-08-16 11:16:53

标签: big-o time-complexity

Wikipedia says

  

如上定义的语句“f(x)是O(g(x))”通常写为   f(x)= O(g(x))。有人认为这是滥用符号,因为   使用等号可能会产生误导,因为它暗示了一个   这个陈述没有的对称性。正如de Bruijn所说,O(x)=   O(x ^ 2)为真,但O(x ^ 2)= O(x)不是

我理解正式定义但不是de Bruin所说的。我试图理解O(x)= O(x ^ 2)甚至O(x)是O(x ^ 2)的真正含义。

直观地,我会把它读作“具有复杂度x的函数类与具有复杂度x ^ 2的函数类相同”。但这没有意义。

wikipedia talk页面也无济于事。

2 个答案:

答案 0 :(得分:6)

  

直观地,我会把它读作“具有复杂度x的函数类与具有复杂度x ^ 2的函数类相同”。但这没有意义。

是的,这就是为什么人们不喜欢带有等号的符号。

它应该读作“具有复杂度x的函数类包含在具有复杂性x ^ 2的函数类中”或“具有复杂性的线性上界的函数也是具有二次上部复杂性界限的函数” (当然,二次约束不是很紧。)

答案 1 :(得分:0)

在数学中,'='通常表示“平等”,应该是equivalence relation。这意味着它应该是反身的,对称的和传递的。

  

正如de Bruijn所说,O(x)= O(x ^ 2)为真但O(x ^ 2)= O(x)不是

表示关系不对称。