algorithm - Big-O找到函数/算法的上限

标签 algorithm data-structures computer-science

我在读一本数据结构和算法的书,但是我在这些例子和它们的答案上陷入了困境:
问)查找的上限
i)f(n)=3n+8
ii)f(n)=n^2+1
iii)f(n)=n^4+100n^2+50
Narasimha Karumanchi
enter image description here
更让人困惑的是,当我关注这个enter image description here时,它试图说,我们区分是为了得到一个上限,但似乎也不起作用,有人知道对此的一个很好的解释吗?(我更喜欢一个基本的解释)。
谢谢。

最佳答案

所以上界函数是一个随着元素的增加将大于原始函数的函数。
所以所给出的解决方案是一种获取上限的简单方法。
所以对于第一个例子,你要做的就是找到增长最快的函数。
f(n) = 3n + 8中,它将是线性因子3n,因此您可以使用n替换函数的其余部分(增长较慢的部分)在本例中,它只是常数项8,但它可能是一个较长的函数,如在示例3中,您将100n^2 +50替换为n^4。回顾示例1,这将给出上限函数f(n) = 3n + n,它将减少到f(n) = 4n。现在设置不等式3n + 8 ≤ 4n并求解n以得到8 ≤ n
现在我们可以将n4n前面的常量设置为c(作为常量)和n-nought = 8,因为它是使函数成为上界的最小值。记住n-nought不能为负,因为元素的数量为负并没有真正的意义,如果你得到多个解,就用最小的数。编辑:如果你得到的不是n-nought的整数,也可以使用最近的大整数例如,如果得到10.2,则使用11(因为不能有元素的一部分)
我相信你可以做剩下的;)
编辑2:这只是找到上界的一种方法,我怀疑你的教科书也希望你这样做,但是上界函数有无限多。

关于algorithm - Big-O找到函数/算法的上限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57150559/

相关文章:

algorithm - 如果我知道图中的拓扑排序,我如何才能知道边连接的所有可能方式?

algorithm - 图 - 在具有正节点和负边的图形中移动的算法

algorithm - 寻找强连通分量 - Kosaraju 算法

java - 如何使用java或C#计算执行时间

c++ - 将数据插入数据结构时是深拷贝还是浅拷贝?

math - 当我除以零时会发生什么?

algorithm - 您可以通过取数组的和然后再乘积来检查重复项吗?

java - Java 中将两个列表合并到一张 map 的最佳方法?

algorithm - 目前认为用于二维点匹配的 "best"算法是什么?

C++ 从文本文件中读取并计算每行的总数 :