线性搜索(linear search)和二进制搜索(带比较表)(binary search (with comparison table))的区别

线性搜索也称为顺序搜索,是按顺序搜索列表中元素的最简单搜索算法。它依赖于一种技术,即通过探索途中发现的所有元素的属性,从头到尾遍历列表。当列表只有几个元素或在未排序的列表(项目未排序的列表)中执行单个搜索时,线性搜索通常非常容易实现。...

什么是线性搜索(linear search)?

线性搜索也称为顺序搜索,是按顺序搜索列表中元素的最简单搜索算法。它依赖于一种技术,即通过探索途中发现的所有元素的属性,从头到尾遍历列表。当列表只有几个元素或在未排序的列表(项目未排序的列表)中执行单个搜索时,线性搜索通常非常容易实现。

使用以下步骤实现线性搜索:

步骤1-从用户处读取搜索元素

步骤2-将搜索元素与列表中的第一个元素进行比较。

步骤3-如果两者匹配,则显示“找到给定元素”并终止该函数。

步骤4-如果两者不匹配,则将搜索元素与列表中的下一个元素进行比较。

步骤5-重复步骤3和4,直到将搜索元素与列表中的最后一个元素进行比较。

步骤6-如果列表中的lastelement也不匹配,则显示“Element is not found”并终止函数。

007Ys3FFgy1gwtn6vk3q7j30ip07nglu

关于线性搜索你需要知道什么

  • 线性搜索是一种算法,通过顺序检查列表中的元素,直到找到匹配的元素,从而在列表中查找元素。
  • 线性搜索一次扫描一个项目,而不跳到任何项目。
  • 线性搜索可以在任何线性容器(向量、单链表、双链表)上实现。
  • 线性搜索很容易使用,因为不需要任何有序元素。
  • C编程语言中的线性搜索不需要排序的元素,因此元素可以方便地插入列表的底部。
  • 线性搜索是重复的或迭代的,并且在其功能中使用顺序方法。
  • 在线性搜索中,性能是通过相等比较完成的。
  • 在线性搜索中,搜索元素的最坏情况相当于O(n)个比较数。当搜索键是最后一个元素时发生。
  • 线性搜索的最佳情况是在第一个位置O(1)中查找元素。当搜索键是第一个元素时发生。
  • 线性搜索的时间复杂度恰好为O(n)。其中n是输入范围内的元素数。

什么是二进制搜索(binary search)?

二进制搜索是从已排序的项目列表中查找项目的有效算法。它的工作原理是将列表中可能包含该项的部分重复划分为一半,直到您将可能的位置缩小为一个。使用binarysearch最常用的方法之一是在已排序的数组或较大的列表中查找项。与其他排序算法相比,它的时间复杂度使其速度非常快。

二进制搜索算法基于分治原理。二进制搜索的一个主要限制是,必须对数组或元素列表进行排序,算法才能对其进行处理。

二进制搜索通过比较集合中最中间的项来查找特定项。如果发生匹配,则返回item的索引。如果中间项大于该项,则在中间项左侧的子数组中搜索该项。否则,将在中间项右侧的子数组中搜索该项。这个过程也在子数组上继续,直到子数组的大小减小到零为止。

007Ys3FFgy1gwtn6y573vj30fz08mgm2

关于线性搜索你需要知道什么

  • 二进制搜索是一种在排序数组中查找目标值位置的算法。
  • 一旦找到排序列表的中间部分,二进制搜索就会将搜索减少一半。
  • 二进制搜索只能在可能进行双向遍历的数据结构上实现。在单个链表上直接实现二进制搜索是困难的,因为我们不能在两个方向上遍历。
  • 二进制搜索有点复杂,元素必须按给定顺序排列。
  • C编程语言中的二进制搜索需要排序数组才能获得有效的性能。这有助于在所需位置插入元素,本质上是维护排序列表。
  • 二进制搜索在其功能上采用了分而治之的方法。它将范围分为两部分;左和右,并不断递归查找。
  • 在二进制搜索中,性能是通过排序比较来实现的。
  • 在二进制搜索中,最坏的情况是O(Log2n)个相似数。
  • 最好的情况是找到中间位置O(1)中的元素。当搜索关键字位于排序列表的中间时发生。
  • 二进制搜索的时间复杂度为O(log2n)。其中n是输入范围内的元素数。

Also Read: Difference Between Binary Tree And Binary Search Tree

线性搜索(linear search)和表格形式的二进制搜索(binary search in tabular form)的区别

比较基础 线性搜索 二进制搜索
描述 线性搜索是一种算法,通过顺序检查列表中的元素,直到找到匹配的元素,从而在列表中查找元素。 二进制搜索是一种在排序数组中查找目标值位置的算法。
工作原理 线性搜索一次扫描一个项目,而不跳到任何项目。 一旦找到排序列表的中间部分,二进制搜索就会将搜索减少一半。
实施 线性搜索可以在任何线性容器(向量、单链表、双链表)上实现。 二进制搜索只能在可能进行双向遍历的数据结构上实现。
复杂性 线性搜索很容易使用,因为不需要任何有序元素。 二进制搜索有点复杂,元素必须按给定顺序排列。
排序元素 C编程语言中的线性搜索不需要排序的元素,因此元素可以方便地插入列表的底部。 C编程语言中的二进制搜索需要排序数组才能获得有效的性能。这有助于在所需位置插入元素,本质上是维护排序列表。
方法 线性搜索是重复的或迭代的,并且在其功能中使用顺序方法。 二进制搜索在其功能上采用了分而治之的方法。
表演 在线性搜索中,性能是通过相等比较完成的。 在二进制搜索中,性能是通过排序比较来实现的。
更糟糕的情况 在线性搜索中,搜索元素的最坏情况相当于O(n)个比较数。 在二进制搜索中,最坏的情况是O(Log2n)个相似数。
最佳方案 线性搜索的最佳情况是在第一个位置O(1)中查找元素。 最好的情况是找到中间位置O(1)中的元素。
时间复杂性 线性搜索的时间复杂度恰好为O(n)。 二进制搜索的时间复杂度为O(log2n)。

  • 发表于 2021-11-27 13:27
  • 阅读 ( 208 )
  • 分类:IT

你可能感兴趣的文章

线性的(linear)和非线性分子(nonlinear molecules)的区别

线性分子和非线性分子的关键区别在于,线性分子的化学结构是直线的,而非线性分子的化学结构是锯齿形或交联的。 根据分子的形状,我们知道的分子可以分为线性分子和非线性分子两类。如果一个分子的化学结构具有线...

  • 发布于 2020-09-25 02:34
  • 阅读 ( 733 )

二叉树(binary tree)和二叉搜索树(binary search tree)的区别

...数据结构类型,其中每个父节点最多可以有两个子节点。二进制搜索树是一个二进制树,其中左侧子节点仅包含值小于或等于父节点的节点,而右侧子节点仅包含值大于父节点的节点。这是关键的区别。与数组等数据结构不同,...

  • 发布于 2020-10-19 12:25
  • 阅读 ( 1054 )

线性的(linear)和非线性文本(nonlinear text)的区别

线性文本和非线性文本的关键区别在于它们的阅读路径。在线性文本中,读者可以通过从头到尾顺序阅读来理解文本。然而,在非线性文本中,阅读路径是非线性的、非连续的,因此读者可以选择自己的阅读路径。 阅读路径...

  • 发布于 2020-10-22 14:06
  • 阅读 ( 1033 )

Windows10中自定义cortana的7种方法

...以帮助你提高工作效率。你可以将它用于许多目的,比如搜索互联网或计算机、查找问题的答案、为自己设置提醒以及管理任务。 ...

  • 发布于 2021-03-23 21:20
  • 阅读 ( 237 )

如何设置高级谷歌搜索标准?

在进行在线搜索时,很容易得到比你需要或想要的更多的结果,但是如果你真的想限制搜索的参数,你该怎么做(或使用)?今天的超级用户问答帖子给出了一位困惑读者求助的答案。 今天的问答环节是由SuperUser提供的,SuperUs...

  • 发布于 2021-04-11 06:38
  • 阅读 ( 186 )

为什么不是所有的文件搜索工具都使用主文件表来获得即时结果?

...组。 问题 超级用户读者Dan Dascalescu很好奇为什么所有的搜索都不是基于表的: I’ve just discovered UltraSearch and was blown away by its file and folder search speed. It’s instantaneous. And doesn’t use any indexing service. It simply uses the NTFS Master File Tab...

  • 发布于 2021-04-11 21:18
  • 阅读 ( 132 )

二叉树(binary tree)和二叉搜索树(binary search tree)的区别

...的电话号码。唯一键以有组织的方式排序,以便可以使用二进制搜索执行查找和其他动态操作。它支持三个主要操作:搜索元素、**元素和删除元素。二叉搜索树允许快速检索存储在树中的元素,因为每个节点键都与根节点进行...

  • 发布于 2021-06-25 04:51
  • 阅读 ( 532 )

搜索(search)和研究(research)的区别

...改进了现有知识,开发了新技术和新工艺。 另一方面,搜索是一个随机的过程,试图以一种非系统的方式识别某些东西。 两者都具有同等的重要性,可以相互依赖,例如,研究可能需要在初步过程中进行某种形式的基本搜索。 ...

  • 发布于 2021-06-25 17:46
  • 阅读 ( 277 )

线性回归(linear regression)和逻辑回归(logistic regression)的区别

...归(logistic regression)? Logistic回归可分为两类。它也被称为二进制分类。检查邮件是否是垃圾邮件,预测客户是否会购买产品,预测是否有可能获得促销,这些都是逻辑回归的其他一些例子。 Figure 3: Logistic Regression 假设学生每天...

  • 发布于 2021-06-30 23:41
  • 阅读 ( 1404 )

浏览器(browser)和搜索引擎(search engine)的区别

浏览器和搜索引擎的主要区别在于,浏览器是一种帮助访问和显示WWW网站的软件应用程序,而搜索引擎是一种帮助搜索WWW网站的软件应用程序。 浏览器和搜索引擎之间有着明显的区别,尽管有些人可以互换使用这两个词。搜索...

  • 发布于 2021-07-01 05:26
  • 阅读 ( 797 )
张泰迪灬
张泰迪灬

0 篇文章

相关推荐