java 线性回归算法_线性搜索或顺序搜索算法在Java中如何工作? 示例教程

java 线性回归算法

大家好,之前,我讨论了二进制搜索算法的工作原理,并分享了在Java中实现二进制搜索的代码。 在那篇文章中,有人问我是否还有其他搜索算法? 如果数组中的元素未排序,又该如何使用它而不能使用二进制搜索算法,该如何搜索呢? 为了回答他的问题,我提到了线性搜索算法,它是二进制搜索的前身。 通常,在二进制搜索算法之前进行讲授,因为二进制搜索比线性搜索快 。 但是,没关系,您仍然可以学习此有用的算法来搜索数组或链接列表中的项目。

线性搜索或顺序搜索是一种用于在列表中查找特定值的方法,该方法包括以下步骤:一次检查每个元素,然后依次检查直到找到所需的元素。

线性搜索算法是最简单的。 对于n个项目的列表,最好的情况是值等于列表的第一个元素,在这种情况下,只需要一个比较即可。 最坏的情况是该值不在列表中(或在列表末尾仅出现一次),在这种情况下,需要进行n次比较。

对于线性搜索,最坏的性能情况是它必须遍历整个集合,这是因为该项目是最后一个项目,或者因为找不到该项目。

换句话说,如果您的集合中有N个项目,则找到主题的最坏情况是N次迭代。 用大O表示法是O(N)。 搜索速度随着集合中项目的数量线性增长。 与二进制搜索算法不同,线性搜索不需要对集合进行排序。

顺便说一句,如果您不熟悉像这样的基本数据结构和算法,最好先学习一个合适的数据结构和算法课程,例如“ 数据结构和算法:使用Java深入学习” 。 这是学习Java编程语言的基本数据结构和算法的综合资源。 它也非常实惠,您只需在Udemy的月度销售中购买10美元即可。

这是在Java中实现顺序搜索算法的示例程序。 这是不言自明的,但是如果您对理解代码的任何部分有任何疑问,请大喊大叫,我很乐意清除您的任何疑问。

您还可以阅读《 Grokking算法 》一书,这是我最喜欢的一本书,旨在学习基础数据结构和算法。 它有一整章有关线性搜索和二进制搜索,下面是一张图,它很好地解释了线性搜索和二进制搜索算法之间的区别。

您会看到线性搜索算法的原因,因为随着数组大小或元素数量的增加,搜索速度越来越慢。

 import java.util.Arrays;  import java.util.Scanner;   /**  * Java program to implement linear search algorithm in Java. It's also known as  * sequential search, because its sequentially search array for desired element.  * It's best case performance is O(1), when number is located at first index of  * array, in worst case it can take upto N array index access and N comparison.  * In Big O notation, time complexity of linear search is O(n), where n is  * number of elements in array.  *  * @author Javin  */  public class LinearSearchDemo {  public static void main(String args[]) {  int [] primes = { 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , 29 , 31 , 37 , 41 , 43 , 47 };  for ( int number : primes) { int index = linearSearch(primes, number); if (index != - 1 ) { System.out.printf( "'%d' is found at index '%d' %n" , number, index); } else { System.out.printf( "'%d' not found in array %n" , number, Arrays.toString(primes)); } }  }  /** * Search a number in array using linear search algorithm. It's one of the * simplest algorithm in programming world, which just require iterating * over array and comparing each element with desired one. Once found you * break the loop and return index of element. * * @param array * @param number * @return index of number in array, or -1 if not found */ public static int linearSearch( int [] array, int number) { for ( int i = 0 ; i < array.length; i++) { if (array[i] == number) { return i; } } return - 1 ; // Number not found in array }   }   Output:  is found at index '0' is found at index '2' '0'  '3' is found at index '1'  is found at index '2' is found at index '5' '2'  is found at index '3' is found at index '7' '3'  is found at index '4' is found at index '11' '4'  is found at index '12' is found at index '41' '12'  is found at index '13' is found at index '43' '13'  is found at index '14' is found at index '47' '14' 

就是这样
如何用Java实现线性搜索算法 。 它是您应该在计算机科学课上学习的首批搜索算法之一。 老师和教授接下来将解释二进制搜索,但是您已经了解了这一点。 没关系,此后您可以探索很多排序算法,下面的文章将为您提供帮助。

如果您准备面试并提高您的数据结构和算法技能,则还可以查看以下资源以进行下一个准备:

进阶学习

11个基本编码面试问题 。 掌握编码面试:数据结构和算法 摸索编码面试:编码问题的模式

其他
小号
您可能喜欢的搜索和排序算法教程

  • 如何在Java中实现插入排序算法? ( 教程 )
  • 如何在Java中将Quicksort算法应用到位? ( 教程 )
  • 如何在Java中实现冒泡排序算法? ( 教程 )
  • 比较与非比较排序算法之间的区别? ( 回答 )
  • 如何在Java中应用存储桶排序? ( 教程 )
  • 如何实现无递归的Quicksort算法? ( 教程 )
  • 如何在Java中执行二进制搜索算法? ( 教程 )
  • 如何在总和等于k的数组中找到所有对( 解 )
  • 如何从Java中的数组中删除重复项? ( 解决方案 )
  • 如何在不排序的情况下找到数组中最高有效和最小的数字? ( 解决方案 )
  • 如何从Java中未排序的数组中查找重复项? ( 解决方案 )
  • 如何在排序数组中找到一个缺失的数字? ( 解决方案 )
  • 如何从包含1到100的数组中查找缺失值? ( 解决方案 )
  • 如何计算Java中给定的二叉树中叶节点的数量? ( 解决方案 )
  • 递归有序遍历算法( 解决方案 )
  • 面试中的50多种数据结构和算法问题( 问题 )
  • 我最喜欢的免费课程,用于深入学习数据结构( FreeCodeCamp )
  • 如何从Java中的数组中删除元素? ( 解决方案 )
  • 如何检查数组是否包含特定值? ( 解决方案 )
  • 二叉树中的迭代PreOrder遍历( 解决方案 )
  • 面向程序员的10项免费数据结构和算法课程( 课程 )
  • 来自面试的100多个数据结构编码问题( 问题 )

感谢您阅读本文。 如果您喜欢这篇文章,请与您的朋友和同事分享。 如果您有任何疑问或反馈,请留下笔记。

PS –如果您正在寻找一些免费算法课程以增进您对数据结构和算法的理解,那么您还应该检查
关于Udemy的易于高级数据结构课程。 它是由Google软件工程师和算法专家撰写的,完全免费。

翻译自: https://www.javacodegeeks.com/2020/02/how-linear-search-or-sequential-search-algorithms-works-in-java-example-tutorial.html

java 线性回归算法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331673.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux安装i219网卡驱动下载,华硕E500 G5 (-INTEL I210 / I219-LM)网卡驱动12.17.10.7版下载,适用于Win10-64-驱动精灵...

驱动说明&#xff1a;-Windows-Intel(R) I210 Gigabit Network Connection with I/O Acceleration Technology (Intel(R) I/OAT) Software Version 23.2.0.1006 WHQL driver V12.14.7.0 for Windows Server 2012 R2 64 bit. Software Version 23.2.0.1006 WHQL driver V12.15.1…

java线程同步——条件对象+synchronized 关键字

【0】README 0.1&#xff09; 本文描述转自 core java volume 1&#xff0c; 源代码为原创&#xff0c;旨在理解 java线程同步——条件对象synchronized 关键字 的相关知识&#xff1b; 0.2&#xff09;for full source code &#xff1a; https://github.com/pacosonTang/co…

Hibernate之必须导入jar包

Hibernate必须导入的包 hibernate是ORM的解决方案&#xff0c;其底层对数据库的操作依赖于JDBC&#xff0c;所以必须先取得JDBC驱动程序&#xff0c;在这使用的是MySQL&#xff0c;所以必须至先取得MySQL的JDBC驱动程序 https://dev.mysql.com/downloads/connector/j/ Hibern…

赞扬别人团建评论_赞扬精心设计:基于属性的测试如何帮助我成为更好的开发人员...

赞扬别人团建评论开发人员的测试工具箱就是其中之一&#xff0c;很少保持不变。 可以肯定的是&#xff0c;一些测试实践已被证明比其他测试更有价值&#xff0c;但是&#xff0c;我们仍在不断寻找更好&#xff0c;更快和更具表现力的方法来测试我们的代码。 基于属性的测试 是 …

linux c read函数返回值,Linuxc - GNU Readline 库及编程简介

GNU Readline 库及编程简介简介用过 Bash 命令行的一定知道&#xff0c;Bash 有几个特性&#xff1a;TAB 键可以用来命令补全↑ 或 ↓ 键可以用来快速输入历史命令还有一些交互式行编辑快捷键&#xff1a;C-A / C-E 将光标移到行首/行尾C-B / C-F 将光标向左/向右移动一个位置C…

java泛型——桥方法

【0】README 0.1&#xff09;以下内容转自&#xff1a; http://www.cnblogs.com/ggjucheng/p/3352519.html 【1】泛型约束和局限性—— 类型擦除所带来的麻烦 1.1&#xff09;继承泛型类型的多态麻烦。&#xff08;—— 子类没有覆盖住父类的方法 &#xff09; 看看下面这个…

Hibernate框架之入门配置

一、Hibernate导入相关的包参考&#xff1a;http://blog.csdn.net/tunni/article/details/54982160这些包包括相应数据库驱动、hibernate.zip下lib目录下的jar包&#xff0c;其中必须包是required目录下的.jar二、在项目classpath&#xff08;类路径&#xff0c;即src目录下&am…

annotations_Spring Annotations我从来没有机会使用第2部分:@ConfigurationProperties

annotations几天前&#xff0c;我在检查其他内容时不小心偶然发现了Spring Boot项目中的Spring注释。 我们都知道如何将带有“ Value”的属性值绑定到类&#xff0c;并且我们都知道如果要绑定多个属性&#xff0c;这可能会很麻烦。 Spring Boot可以为您提供帮助。 您可以使用“…

linux下检测硬盘,【转载】linux下硬盘监控诊断工具SmartTools

对于windwos下raid卡具备告警功能&#xff0c;当硬盘故障、raid卡告警时&#xff0c;可以发邮件给管理员。IBM、HP、Dell都支持。但在linux下&#xff0c;就没有找到相关的好工具了&#xff0c;今天到陈沙克的博客上到一篇关于linux下硬盘监控诊断工具SmartTools&#xff0c;感…

hibernate框架之主键生成

一、 hibernate 框架中主键的生成策略 (1)native: 表示由设置的方言决定采用什么数据库生成主键方式&#xff0c;根据底层数据库能力选择identity、sequence中的一个。 例如&#xff1a;在MySQL中会采用自增长的方式&#xff0c;主键字段必须都是整形类型&#xff1b;在Oracle数…

java泛型通配符

【0】README 0.1&#xff09;以下内容转自&#xff1a; http://blog.csdn.net/baple/article/details/25056169 0.2&#xff09; T 有类型 &#xff1f; 未知类型 一、通配符的上界&#xff08;extends关键字&#xff09; 既然知道List并不是List的子类型&#xff0c;那就需…

jdk 1.8 内存可见性_JDK 14中的常规,安全和确定性外部内存访问

jdk 1.8 内存可见性在“ JDK 14 Rampdown&#xff1a;Build 27 ”一文中&#xff0c;我总结了JDK 14 Early Access Build &#xff03;27中新增的许多针对JDK 14的功能。 已经存在另一种JDK 14 Early Access Build&#xff0c;并且此[ Build 28&#xff08;2019/12/18&#xff…

linux开启防火墙ping,如何在防火墙中放开ping

如何在防火墙中放开ping操作时需要注意的几项:1,注意iptables各版本间的区别我们的server os最旧的版本是redhat 7.3 kernel是2.4.20-18.7最新的server os最新的版本是centos 5, kernel是2.6.18-8差距很大iptables以模块形式运行在内核的空间,用lsmod可以看到所以它与内核的版本…

Hibernate: You have an error in your SQL syntax; check the manual that corresponds to your MySQL

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...Hibernate 出现这样的错误是因为表中的字段名使用了sql的保留字&#xff0c;不要使用保留字 一、mysql的保留字主要有&#xff1…

java.io 包

java.io 通过数据流、序列化和文件系统提供系统输入和输出。 请参见&#xff1a; 接口摘要CloseableCloseable 是可以关闭的数据源或目标。DataInputDataInput 接口用于从二进制流中读取字节&#xff0c;并根据所有 Java 基本类型数据进行重构。DataOutputDataOutput 接口用…

linux系统怎么安装pr,Linux安装后的配置

系统:CentOS-6.31.NVIDIA驱动的安装与配置Linux本身的显卡驱动是能够满足平常应用的&#xff0c;但是有时候我们为了获得3D效果&#xff0c;或者更流畅的视频体验&#xff0c;我们会安装新的显卡驱动。这时候就需要安装闭源驱动了&#xff0c;个人认为闭源的驱动更为好一些&…

java第三阶段源代码_有效Java第三版的源代码已更新为使用较新的功能

java第三阶段源代码那些已经阅读了有效Java 第三版的人可能知道与该书相关的源代码可以在GitHub上获得 。 jbloch / effective-java-3e-source-code项目拥有1700多个星星&#xff0c;截至撰写本文时&#xff0c;它已被分叉了近800次。 在有效Java的第三版中&#xff0c; Java的…

《线性代数及其应用》

【0】README 0.1&#xff09;以下内容转自&#xff1a; http://blog.csdn.net/ljbkiss/article/details/7194719 【1】正文干货 1.1&#xff09; 断断续续的终于把 《线性代数及其应用&#xff08;Linear Algebra and Its Application&#xff09; David C.Lay》 这本书看完了…

micrometer_具有InlfuxDB的Spring Boot和Micrometer第1部分:基础项目

micrometer对于那些关注此博客的人来说&#xff0c;难怪我会经常使用InfluxDB。 我喜欢这样一个事实&#xff0c;它是一个真正的单一用途的数据库&#xff08;时间序列&#xff09;&#xff0c;具有许多功能&#xff0c;并且还带有企业支持。 Spring也是我选择的工具之一。 因…

如何在win7(xp)home version下安装 rose 32 bit

【0】README 0.1&#xff09; 以下部分内容转自 http://blog.csdn.net/encienqi/article/details/5578725 【1】 干货开始 如果是家庭版(win7 or WindowsXPHomeEdition)请先按以下步骤修改部分文件后再安装&#xff1a; 1.1&#xff09;安装Microsoft Orca工具 step1&#x…