Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 线性搜索或二进制搜索或二进制搜索树_Algorithm_Search - Fatal编程技术网

Algorithm 线性搜索或二进制搜索或二进制搜索树

Algorithm 线性搜索或二进制搜索或二进制搜索树,algorithm,search,Algorithm,Search,我有点怀疑 如果我知道列表中的一个搜索元素(比如包含32个按顺序排序的元素)出现在前四个位置内 哪一种是最好的搜索算法 线性搜索至少需要4次迭代。。。。 二进制搜索至少5次迭代 二叉搜索树怎么样。。在这种情况下,它是提供更好的解决方案还是等同于二进制搜索 我相信线性搜索在这种情况下会更好 有人能确认一下吗?如果您知道位置在前4个位置,那么线性搜索比线性搜索更好,因为您需要测试的元素不超过4个。使用二进制搜索lg32=5,因此您最多需要测试5个元素 此外,对于像这样的少量元素,时间差可以忽略不计,

我有点怀疑

如果我知道列表中的一个搜索元素(比如包含32个按顺序排序的元素)出现在前四个位置内

哪一种是最好的搜索算法

线性搜索至少需要4次迭代。。。。 二进制搜索至少5次迭代 二叉搜索树怎么样。。在这种情况下,它是提供更好的解决方案还是等同于二进制搜索

我相信线性搜索在这种情况下会更好


有人能确认一下吗?

如果您知道位置在前4个位置,那么线性搜索比线性搜索更好,因为您需要测试的元素不超过4个。使用二进制搜索lg32=5,因此您最多需要测试5个元素

此外,对于像这样的少量元素,时间差可以忽略不计,最好保持简单并进行线性搜索

您也可以将哈希表或哈希集用于O(1)次,但对于少量数据,线性搜索可能比执行哈希函数更快


如果微小的差异真的很重要,我建议在它运行的环境中进行测量。

您可以对前4个元素进行二进制搜索。这将是lg 4=2次迭代!
:-)

有了这么多的元素和手头的应用程序,二元搜索树就太过了

此外,对于解决目前的问题,线性搜索会更好,因为定位特定元素的预期迭代次数将超过二进制搜索


在现实生活中,问题的出现将是非常罕见的。因此,在排序数组上使用二进制搜索总是更好的

如果数据以某种方式均匀分布,则明智的做法是使用插值搜索。利用分布知识,你有很好的机会一步猜出正确的位置。预期的复杂性为O(log(log(n)))


这是我的页面链接,我在这里用Java实现了算法:

二叉搜索树呢?它类似于二进制搜索吗?是的,二进制搜索树是围绕执行二进制搜索而设计的数据结构。与排序数组相比,二叉搜索树的优势在于插入和删除元素。查找时间(假设树是平衡的)是相同的。。必须对所有元素进行搜索。。只有为数不多的我知道它将在前4个元素之内