当n的值变得非常小时,会变成Big-O吗?

标签 big-o

我错过了介绍big-O的类(class),因为认为这很简单。但是,当n变得非常小时,老师似乎仍然对O(n)偏离函数有什么看法?我在书的任何地方都找不到。有人可以启发我吗?如果有重要意义,我们对O(n)的探索已在排序算法的背景下进行。
谢谢
基因
编辑:
感谢您的帮助,它一直在照亮。我有一个后续问题。是否有一种相对简单的数学方法来找出n对于O(n)而言太小的点?

Related questions

are there any O(1/n) algorithms?
What is the difference between Θ(n) and O(n)?

最佳答案

Big O不会描述函数的执行时间,而只是描述增长。所有函数都具有一定的常数因子或开销,需要添加。当n低时,此开销会使该算法的任何改进都相形见--一种算法(每次操作需要50ms,但是具有O(n),对于较小的n而言,性能会更差)而不是每次操作需要5 ms,但具有O(n * n)的算法。

这就是为什么通常对于小集合来说大O无关紧要的原因。对于大多数具有简单比较的对象,对10个项目的快速排序显然不会比气泡式排序快,对100个项目的线性搜索可能比二叉树更快,依此类推。

关于当n的值变得非常小时,会变成Big-O吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/842242/

相关文章:

algorithm - 该函数的正确时间复杂度是多少

performance - 按字典顺序对名称列表进行排序

ruby - 算法的大O复杂度

algorithm - O(n^2) 与 O(n(logn)^2)

algorithm - 大O记法——循环的疑惑

algorithm - 阶乘时间复杂度算法是否需要递归或堆栈?

algorithm - 基数排序 - O(n) 时间

algorithm - 如何计算给定算法的时间复杂度(岭回归)?

c - 时间复杂度划分

ios - 如何从快速字典数组中获取所选键数组的值及其复杂性