线性搜索和二进制搜索之间的区别
内容
线性搜索和二进制搜索是用于数组的两种方法 搜寻 要素。搜索是在以任何顺序或随机存储的元素列表中查找元素的过程。
线性搜索和二进制搜索之间的主要区别在于,二进制搜索花费较少的时间从排序的元素列表中搜索元素。因此可以推断二元搜索方法的效率要高于线性搜索。
两者之间的另一个区别是二进制搜索存在先决条件,即元素必须是 已排序 而在线性搜索中没有这样的先决条件。尽管两种搜索方法都使用不同的技术,但下面将对此进行讨论。
- 比较表
- 定义
- 关键差异
- 结论
比较表
比较依据 | 线性搜索 | 二进制搜索 |
---|---|---|
时间复杂度 | 上) | O(对数 2 N) |
最佳案例时间 | 第一元素O(1) | 中心元素O(1) |
数组的先决条件 | 不需要 | 数组必须按排序顺序 |
N个元素的最坏情况 | 需要N个比较 | 只需登录即可得出结论2 N个比较 |
可以实施 | 数组和链接列表 | 无法直接在链表上实施 |
插入操作 | 轻松插入列表的末尾 | 需要处理以在适当位置插入以维护排序列表。 |
算法类型 | 本质上是迭代的 | 在自然界中分而治之 |
有用性 | 易于使用,不需要任何有序元素。 | 无论如何,棘手的算法和元素应按顺序组织。 |
代码行 | 减 | 更多 |
线性搜索的定义
在线性搜索中,以逻辑顺序一个接一个地检索数组的每个元素,并检查是否为所需元素。如果访问了所有元素,但未找到所需的元素,则搜索将失败。在最坏的情况下,我们可能必须扫描平均大小的数目来扫描数组大小的一半(n / 2)。
因此,线性搜索可以定义为依次遍历数组以定位给定项目的技术。下面给出的程序说明了使用search搜索数组元素的过程。
效率 线性搜索
在搜索表中的记录中进行搜索所花费的时间或比较次数决定了该技术的效率。如果所需记录出现在搜索表的第一位置,则仅进行一个比较。当所需的记录是最后一个记录时,则必须进行n次比较。如果记录要出现在搜索表中的某处,则平均而言,比较次数将为(n + 1/2)。此技术的最坏情况效率是O(n)表示执行顺序。
C程序 使用线性搜索技术搜索元素。
#包括 二进制搜索是一种非常有效的算法。在最小可能的比较中,这种搜索技术在搜索给定项目时消耗的时间更少。要进行二进制搜索,首先,我们必须对数组元素进行排序。 该技术背后的逻辑如下: 可能出现三种情况: 重复相同的步骤,直到在搜索区域中找到一个元素或将其用尽。在这种算法中,每次搜索区域都在减少。因此,比较次数最多为log(N + 1)。结果,与线性搜索相比,它是一种有效的算法,但是在进行二进制搜索之前必须对数组进行排序。 C程序 用二进制搜索技术查找元素。 #包括 线性和二进制搜索算法都可以根据应用程序使用。当数组是数据结构且元素按排序顺序排列时,二进制搜索是首选 快搜索。如果链表是数据结构而不管元素如何排列,则由于无法直接执行二进制搜索算法而采用线性搜索。 典型的二进制搜索算法不能用于链接列表,因为链接列表本质上是动态的,并且不知道中间元素的实际分配位置。因此,由于二进制搜索的执行速度比线性搜索快,因此需要设计一种也可以在链表上工作的二进制搜索算法。二进制搜索的定义
结论