algorithm - 如果 f(n) = O(n) 且 g(n) = O(n),证明 f(g(n)) = O(n)
问题描述
我似乎无法弄清楚如何解决这个问题。大O让我很困惑。谁能帮我弄清楚?f(n) = O(n)
和g(n) = O(n)
。我怎么证明f(g(n)) = O(n)
?
解决方案
使用O
定义:
f(n) = O(n) => f(n) < c1*n for n > n0 and c1 is constant.
g(n) = O(n) => g(n) < c2*n for n > n1 and c2 is constant.
因此,我们有:
f(g(n)) < c1 * g(n) < c1 * c2 * n for n > max(n0, n1) =>
f(g(n)) < c3 * n for n > max(n0, n1) and c3 is constant.
后者是定义O
和手段f(g(n)) = O(n)
。
推荐阅读
- mysql - SQL查询根据月度数据计算季度数据
- wordpress - 如何将“优惠结束”文本更改为西班牙语?
- python - 当字节来自 Python 中的 input() 时如何从字节创建 UUID
- spring - Spring:省略 GET 表单的 CSRF 令牌?
- javascript - Javascript 按钮启用或禁用
- c - 管道到 hexdump 时,用汇编编写的程序没有输出
- python - Raspberry Pi / 数字光强光敏传感器模块
- django - Django/Wagtail ImportError:无法从“django.db.models.fields”导入名称“FieldDoesNotExist”
- sql - 具有不同条件的多列 SQL 查询
- angular - 如何使用 select 禁用/启用特殊行值?