线性和二进制搜索

Posted

技术标签:

【中文标题】线性和二进制搜索【英文标题】:Linear & Binary search 【发布时间】:2018-02-10 09:07:16 【问题描述】:

如果计算机速度超快且内存无限,那么最好使用哪种搜索操作,或者我们可以使用任何我们选择的方法怎么办? (在线性搜索和二分搜索之间)

【问题讨论】:

【参考方案1】:

线性搜索一次扫描一个项目,而不跳转到任何项目。时间复杂度为 O(n)。

作为二分搜索,一旦您找到排序列表的中间位置,您的搜索就会减少一半。时间复杂度为 O(log n)。

注意:如果没有排序,二分搜索将与线性搜索具有相同的性能。

所以无论你有多少计算能力或空间,二分搜索总是更好。

【讨论】:

【参考方案2】:

这取决于。一般来说,如果您正在搜索的内容已经排序 - 使用二进制搜索,否则使用线性搜索。

【讨论】:

【参考方案3】:

这是Linear vs Binary Search 的一篇很棒的文章

【讨论】:

以上是关于线性和二进制搜索的主要内容,如果未能解决你的问题,请参考以下文章

线性和二进制搜索逻辑错误

使用迭代器位置的线性和二进制搜索

C 二进制和线性搜索

为啥这个线性和二进制搜索的基准代码不起作用?

在java中使用线性和二进制搜索的用户输入

线性/二进制搜索功能不显示任何内容?