线性搜索与二进制搜索

作者: Laura McKinney
创建日期: 4 四月 2021
更新日期: 13 可能 2024
Anonim
【Python(漫画版)】P9  二进制:“扳”着手指学编程 轻松搞定二进制
视频: 【Python(漫画版)】P9 二进制:“扳”着手指学编程 轻松搞定二进制

内容

线性搜索和二进制搜索之间的区别在于,在线性搜索中,将检查并比较每个元素,然后将其排序,而在二进制搜索中,将要排序的列表分为两部分,然后进行排序。搜索和排序是计算机编程中的两个主要概念。用于搜索和排序的算法很多,但是用于搜索和排序的两种最常用的算法是线性搜索和二进制搜索。


线性搜索和二进制搜索之间的区别在于这两种算法的工作和效率。与线性搜索算法相比,二进制搜索是一种效率更高的算法。与线性搜索相比,二进制搜索在排序之前比较每个值所需的迭代次数或时间要少。

如果要搜索列表中的数字,有时需要比较和迭代列表中的数值,线性搜索是一种非常复杂的算法。检索列表中的每个元素,并将其与相邻元素进行比较。访问所有元素并进行检查,然后找到正确的元素。如果列表中的最后一个数字是要搜索的数字,则可能是最坏的情况。线性搜索是遍历数组并建立要搜索的元素的方法。如果我们谈论效率,效率就是程序必须运行才能找到该数字的次数。如果我们在第一个位置找到所需的数字,则只需进行一次比较,然后对事物进行排序,但如果没有找到,则必须一次又一次地进行比较,从而浪费了内存。平均而言,比较次数为(n + 1/2)。该技术的最坏情况效率为O(n)表示执行顺序。

与线性搜索相比,二进制搜索非常有效。在这种方法中,将数组分为两部分,与二进制搜索相比,这种比较的次数非常少。与线性搜索相比,二进制搜索的时间也更少。二进制搜索的工作方式是找到数组的中间元素,然后将中间元素与数组的一部分进行比较。可能存在三种可能性,即中间数字可以是我们需要查找的数字,也可以是小于中间数字的数字,也可以是大于中间数字中间的数字。比较次数最多为log(N + 1)。与线性搜索相比,二进制搜索与线性搜索相比是一种有效的算法,但是在进行二进制搜索之前必须对数组进行排序。

内容:线性搜索和二进制搜索之间的区别

  • 比较表
  • 二进制搜索
  • 关键差异
  • 结论
  • 解释性视频

比较表

基础线性搜寻二进制搜索
含义线性搜索检查并比较每个元素,然后进行排序

二进制搜索将要排序的列表分为两个部分,然后进行排序。


 

时间复杂度线性搜索的时间复杂度为O(N)。二分查找的时间复杂度为O(log 2 N)
算法类型线性搜索是迭代的。二进制搜索是分而治之。
代码行在线性搜索中,我们需要编写更多代码。在二进制搜索中,我们需要编写更少的代码。

线性搜寻

如果要搜索列表中的数字,比较并迭代列表中的值数量,则线性搜索是一种非常复杂的算法。检索列表中的每个元素,并将其与相邻元素进行比较。访问并检查所有元素,然后找到正确的元素。如果列表中的最后一个数字是要搜索的数字,则可能是最坏的情况。线性搜索是遍历数组并建立要搜索的元素的方法。如果我们谈论效率,效率就是程序必须运行才能找到该数字的次数。如果我们在第一个位置找到所需的数字,则只需进行一次比较,然后对事物进行排序,但如果没有找到,则必须一次又一次地进行比较,从而浪费了内存。平均而言,比较次数为(n + 1/2)。这种技术的最坏情况效率是O(n)代表执行顺序。

二进制搜索

与线性搜索相比,二进制搜索非常有效。在这种方法中,将数组分为两部分,与二进制搜索相比,这种比较的次数非常少。与线性搜索相比,二进制搜索的时间也更少。二进制搜索的工作方式是找到数组的中间元素,然后将中间元素与数组的一部分进行比较。

可能存在三种可能性,即中间数字可以是我们需要查找的数字,也可以是小于中间数字的数字,也可以是大于中间数字中间的数字。比较次数最多为log(N + 1)。与线性搜索相比,二进制搜索与线性搜索相比是一种有效的算法,但是在进行二进制搜索之前必须对数组进行排序。

关键差异

  1. 线性搜索检查并比较每个元素,然后进行排序,而二进制搜索将要排序的列表分为两部分,然后进行排序。
  2. 线性搜索的时间复杂度为0(N),而二进制搜索的时间复杂度为O(log2N)。
  3. 线性搜索是迭代的,而二进制搜索是分而治之。
  4. 在线性搜索中,我们需要编写更多的代码,而在二进制搜索中,我们需要编写更少的代码。

结论

在上面的这篇文章中,我们看到了线性搜索和二进制搜索之间的明显区别。


解释性视频