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 线性回归算法

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

  1. 线性搜索或顺序搜索算法在Java中如何工作? 示例教程

    大家好,我之前谈到了二进制搜索算法的工作原理,并分享了在Java中实现二进制搜索的代码. 在那篇文章中,有人问我是否还存在其他搜索算法? 如果数组中的元素未排序,又如何使用二进制搜索算法,该如何搜索呢 ...

  2. java 概率 算法_使用概率算法优化快速排序(JAVA)

    前言 前面一篇文章系统介绍了快速排序算法,提到快速排序虽然平均时间复杂度为o(n*log2(n)),效率相对比较高.但是其在特殊情况下,比如降序的情况下,效率和冒泡排序一致,这就削弱了快速排序给人的好 ...

  3. java节假日算法_「国家法定节假日」java 国家法定节假日和双休日判断工具类 - seo实验室...

    国家法定节假日 package com.newland.dateutil; import java.text.ParseException; import java.text.simpledatefo ...

  4. java python算法_用Java,Python和C ++示例解释的搜索算法

    java python算法 什么是搜索算法? (What is a Search Algorithm?) This kind of algorithm looks at the problem of ...

  5. java python算法_用Python,Java和C ++示例解释的排序算法

    java python算法 什么是排序算法? (What is a Sorting Algorithm?) Sorting algorithms are a set of instructions t ...

  6. 6种java垃圾回收算法_被说烂了的Java垃圾回收算法,我带来了最“清新脱俗”的详细图解...

    一.概况 理解Java虚拟机垃圾回收机制的底层原理,是系统调优与线上问题排查的基础,也是一个高级Java程序员的基本功,本文就针对Java垃圾回收这一主题做一些整理与记录.Java垃圾回收器的种类繁多 ...

  7. 机器学习 线性回归算法_探索机器学习算法简单线性回归

    机器学习 线性回归算法 As we dive into the world of Machine Learning and Data Science, one of the easiest and f ...

  8. java轮训算法_负载均衡算法WeightedRoundRobin(加权轮询)简介及算法实现

    Nginx的负载均衡默认算法是加权轮询算法,本文简单介绍算法的逻辑,并给出算法的Java实现版本. 算法简介 有三个节点{a, b, c},他们的权重分别是{a=5, b=1, c=1}.发送7次请求 ...

  9. java 路由算法_几种简单的负载均衡算法及其Java代码实现

    什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助.通过某种 负载分 ...

最新文章

  1. OSChina 周一乱弹 —— 六天颓废一天看剧
  2. 【集合论】容斥原理 ( 复杂示例 )
  3. 学习python:练习3.随机生成200个序列号存入文件
  4. devc++调试下一步没反应_某化工厂污水处理站SBR工艺调试方案
  5. SSD固态存储大观(二)
  6. 阿里云服务器由于被检测到对外攻击,已阻断该服务器对其它服务器端口的访问...
  7. android中设置lmargin简书,超详细React Native实现微信好友/朋友圈分享功能-Android/iOS双平台通用...
  8. jackson驼峰转下划线注解_jackson序列化与反序列化的应用实践
  9. canvas绘制竖排的数字_Python绘制可爱的卡通人物 | 【turtle使用】
  10. linux 系统文件目录颜色及特殊权限对应的颜色
  11. less(css)语言快速入门
  12. glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
  13. 裤子尺码对照表eur40_裤子尺寸对照表,衣服尺寸对照表,服装尺寸对照表 - 尺码对照表...
  14. 来客在线客服系统源码 支持一键安装
  15. EffectiveC++-读后感
  16. 关于阿里云视频点播出现的问题
  17. GameBuilder开发游戏应用系列之60行代码实现FlappyBird
  18. mybatis中resultMap和resultType区别,三分钟读懂
  19. 李宏毅老师2022机器学习课程笔记 01 Introduction of Deep Learning
  20. bind()和on()的区别

热门文章

  1. [luogu-P4299] 首都(并查集 + LCT动态维护树的重心 / 维护虚儿子信息)
  2. 选数游戏(ybtoj-二叉堆)
  3. 并查集:P1196 [NOI2002] 银河英雄传说
  4. P3702-[SDOI2017]序列计数【矩阵乘法】
  5. nssl1522-简单数数题【dp】
  6. 学习手记(2020/8/19~2021/3/19)
  7. P3389-[模板]高斯消元法
  8. P3384-[模板]树链剖分
  9. Ch4201-楼兰图腾【树状数组】
  10. 动态规划训练6 [统计单词个数]