二进制搜索与线性搜索
线性搜索,也称序贯搜索是最简单的搜索算法。它通过检查列表中的每个元素来搜索列表中的指定值。二进制搜索也是一种方法,用于在排序列表中定位指定的值。二进制搜索方法将检查的元素数减半(在每次迭代中),减少了在列表中找到给定项目所需的时间。
什么是线性搜索?
线性搜索是最简单的搜索方法,它按顺序检查列表中的每个元素,直到找到指定的元素。线性搜索方法的输入是一个序列(例如数组、集合或字符串)和需要搜索的项。如果指定项在提供的序列中,则输出为true;如果指定项不在序列中,则输出为false。因为这个方**检查列表中的每个项目,直到找到指定的项目为止,在最坏的情况下,它会在找到所需元素之前遍历列表中的所有元素。线性搜索的复杂度为o(n)。因此,当搜索大列表中的元素时,它被认为太慢而无法使用。但这是非常简单和容易实现的。
什么是二进制搜索?
二进制搜索也是一种用于在排序列表中查找指定项的方法。此方法首先将搜索到的元素与列表中间的元素进行比较。如果比较确定两个元素相等,则方法停止并返回元素的位置。如果搜索到的元素大于中间元素,则它只使用排序列表的下半部分再次启动该方法。如果搜索到的元素小于中间元素,它将仅使用排序列表的上半部分再次启动该方法。如果搜索到的元素不在列表中,则该方法将返回一个唯一的值,该值指示。因此,根据比较的结果,二进制搜索方法(在每次迭代中)将比较的元素数量减半。因此,二进制搜索以对数时间运行,结果是o(logn)的平均情况性能。
二元搜索和线性搜索有什么区别?