请问如何证明算法复杂度加法运算法则

jackyyb 2008-11-27 09:50:58
如题:证明Ο(f)+ Ο(g)=Ο(f +g)
...全文
657 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyyb 2008-11-27
  • 打赏
  • 举报
回复
谢谢楼上的,明白了。
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyyb 的回复:]
能否解释一下如何从“<=”变成“=”
[/Quote]
直接从大O符号定义来的~
任意F是O(f)的,任意G是O(g)的,F+G是O(f+g)的,就意味着O(f)+O(g)是O(f+g)的。
这里的大O符号是个定性的说法,它实际上表述的是满足某种要求的函数的集合。
证明集合O(f)+O(g)中每个元素都是O(f+g)的就可以了。

O(f)+O(g)=O(f+g)
这里的“=”更多的是种信息描述,代表前面集合中的元素都属于后面的集合。
这种表述方法并不严谨,也并不代表实际的“大小相等”的关系。
jackyyb 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dlyme 的回复:]
设F(x)是O(f)的,根据定义可知,必存在常数C1>0和x1,使得当x>x1时0 <F(x) <=c1*f(x)成立;
设G(x)是O(g)的,同样根据定义,必存在常数C2>0和x2,使得当x>x2时0 <G(x) <=c2*g(x)成立;
令x0=max{x1,x2},c0=max{c1,c2},
当x>x0时一定有F(x)+G(x) <=c1*f(x)+c2*g(x) <=c0*(f(x)+g(x))
所以说O(f)+O(g)=O(f+g)
[/Quote]
请问从当x>x0时一定有F(x)+G(x) <=c1*f(x)+c2*g(x) <=c0*(f(x)+g(x)) 如何就能得出O(f)+O(g)=O(f+g)
能否解释一下如何从“<=”变成“=”
  • 打赏
  • 举报
回复
设F(x)是O(f)的,根据定义可知,必存在常数C1>0和x1,使得当x>x1时0<F(x)<=c1*f(x)成立;
设G(x)是O(g)的,同样根据定义,必存在常数C2>0和x2,使得当x>x2时0<G(x)<=c2*g(x)成立;
令x0=max{x1,x2},c0=max{c1,c2},
当x>x0时一定有F(x)+G(x)<=c1*f(x)+c2*g(x)<=c0*(f(x)+g(x))
所以说O(f)+O(g)=O(f+g)
Super.Jiju 2008-11-27
  • 打赏
  • 举报
回复
O(f)=ax^n;
O(g)=bx^m;
O(f)+O(g)=ax^n+bx^m;
=O(f+g)

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧