algorithm - 所有 O(n) 算法也是 O(n²) 吗?
问题描述
大 O 表示法的正式定义是,如果我们有一个函数f(n)
(用于算法的时间和空间)和另一个函数,并且对于所有g(x)
都有常数c
等no
,那么。但是使用这个定义以及不断增长的二次函数总是会在某个点超过线性函数的事实,是否所有函数也是?或者更好的说法,是?c*g(n) > f(x)
n > no
f(n) = O(g(n))
O(n)
O(n²)
n = O(n²)
解决方案
是的,所有 O(n) 算法也是 O(n²)。当谈到 Big-O 时,人们对符号非常草率。为了清楚起见,我认为最好将 O(f) 概念化为返回一组函数。使用集合表示法:
n ∈ O(n) ⊂ O(n²)
推荐阅读
- python - 如何处理我的 AWS EC2 实例上的多个 Python 请求?
- php - 点击后通知图标隐藏号码
- python - 在 Python 3.6+ 中按值排序字典
- firebase - 如何在无服务器模型中初始化 firebase 应用程序?什么是并发应用程序限制?
- node.js - .findByIdAndRemove 不是函数
- c# - Unity将对象序列化为Json
- node.js - 阿波罗服务器 2 + Auth0
- r - dplyr:: 如果 uid 不存在,则附加到 postgresql 远程源
- java - 为一个活动中的多个列表定义 onItemClick 行为的正确方法?
- java - onAppWidgetOptionsChanged() 在屏幕唤醒时调用。如何防止这种情况?