线性搜索和二进制搜索是用于在列表中查找元素的常用算法。 了解每个算法得出的预期比较数, 有助于选择特定情况下最有效的方法。 本文章比较了线性搜索法和二进制搜索法的预期比较数 。

线性搜索

线性搜索按顺序检查列表中的每个元素,直到找到目标或到达终点。预期的比较次数取决于目标是否在列表中存在及其位置。

如果列表中包含n 元素,且目标同样有可能处于任何位置,则预期的比较次数为:

预测比较=(n+1)/2]

这是因为,平均而言,搜索将在清单中找到目标。

二进制搜索

二进制搜索在排序的列表上通过反复将搜索间隔分为一半来进行工作,其效率取决于列表大小和目标位置.

在最佳的情况下,目标位于中间,只需要一个比较即可. 在最坏的情况下,它需要大约log[2]n比较.

假设目标同样可能处于任何位置,预计比较次数大致如下:

预测比较 QQ对数2]n]

比较摘要

  • 线性搜索的预期比较计数为(n+1) / 2.
  • 二进制搜索的预期比较计数约为log2n.
  • 二进制搜索一般要求大列表比较较少.
  • 线性搜索对于小的或无排序的列表来说可能更为可取.