何时使用O(n)与O(logn)搜索算法

问题描述 投票:1回答:1

我对何时使用O(n)与O(logn)搜索算法存在疑问。我知道O(logn)比O(n)快很多,对此毫无疑问。但是,要首先使用O(logn),需要对数组进行结构化或排序,通常我们需要为其实现特殊的数据结构,例如二叉树。另一方面,即使O(n)是蛮力味的方法,我们也可以只用forwhile循环在大多数语言中非常简单地实现它。

但是有时候,当我得到PR评论时,我遇到了那些因使用O(n)搜索算法而感到震惊的人。我的观点是,如果代码在客户端并且处理较小的数组,我的意思是说不是以一百万个长度为单位,则可以证明使用O(n)是合理的。在我的实现中,持续时间甚至不会超过1毫秒,通常不会超过0毫秒。

您知道在“实际可行”的示例中实施O(n),O(logn)或其他方法时,有哪些合理的标准?谢谢。

我对何时使用O(n)与O(logn)搜索算法存在疑问。我知道O(logn)比O(n)快很多,对此毫无疑问。但是,要首先使用O(logn),请...

arrays search binary-tree big-o
1个回答
0
投票

通常不需要对数组进行排序,只需使用地图/字典或集合即可。 O(n)创建时间,实际上O(1)查找时间。

© www.soinside.com 2019 - 2024. All rights reserved.