查找算法

顺序查找

又叫线性查找

我们来看一个题目

科大有学生成绩分布如下:1,8,10,89,1000,1234

要求:判断数列是否包含某个特定的值(这里我就不举例)直接在题目中展示

找到了就返回值以及下标

代码

//顺序查找算法
//@author 王
public class SeqSearch {public static void main(String[] args) {// TODO Auto-generated method stubint arr[] = {1,9,11,-1,34,89};//无序的数组int index = seqSearch(arr, 89);if(index == -1){System.out.println("没有查找到我们的值");}else{System.out.println("下标为"+index);}  }//这里是找到一个符合的值就返回了public static int seqSearch(int[] arr,int value) {//线性查找是逐一比对,发现相同值时,返回for (int i = 0; i < arr.length; i++) {if(arr[i] == value){return i;}}return -1; }
}

那如果我们的值并不是一个呢?我们的数组要是有两个相同的值,或者多个相同的值呢?

代码

public class SeqSearch {public static void main(String[] args) {// TODO Auto-generated method stubint arr[] = {89,1,9,11,-1,34,89,89};//无序的数组ArrayList index = seqSearch1(arr, 89);if(index.size() == 0){System.out.println("没有找到");}else{for (int i = 0; i < index.size(); i++) {System.out.println(index.get(i));}}}//这里找到可能是同样的值的多个情况public static ArrayList seqSearch1(int[] arr,int value) {ArrayList result = new ArrayList();int index=0;//辅助我们像结果数组中插入数据//线性查找是逐一比对,发现相同值时,返回for (int i = 0; i < arr.length; i++) {if(arr[i] == value){result.add(i);}}return result;}
}

这里我没有采用数组来存放我们的下标,省去不必要的麻烦,例如越界,不好判断是否找到等等,而是采用了我们的ArrayList可以动态的控制我们的长度,并且避免了,如果找到的数据下标为0,数组不好判断的情况

理所当然

我们的顺序查找还可以根据我们的条件来查找,当然代码需要做出响应的改变,在这我们就不多阐述,有兴趣的可以自己钻研,后续碰到有关题目我也会分享出来

查找算法------顺序查找相关推荐

  1. 数据结构与算法笔记(十二)—— 查找算法(顺序查找、二分法查找)

    搜索是在一个项目集合中找到一个特定项目的算法过程.搜索通常的答案是真的或假的,因为该项目是否存在.搜索的几种常见方法:顺序查找.二分法查找.二叉树查找.哈希查找 一.顺序查找 最基本的查找技术,过程: ...

  2. 查找算法——顺序查找

    目录 ​一.算法介绍 1.算法思想 2.算法流程 二.算法实现 1.代码实现 2.测试用例及结果 三.效率分析 1.时间复杂度 2.空间复杂度 ​一.算法介绍 1.算法思想 顺序查找也称线性查找,其查 ...

  3. 经典查找算法 - 顺序查找法

    查找-是最常见的数据操作之一,数据结构核心运算之一,其重要性不言而喻. 顺序查找是人们最熟悉的查找策略,对于小规模的数据,顺序查找是个不错的选择. 1. 顺序查找: 核心:从数据的第一个元素开始,依次 ...

  4. 查找算法:二分查找、顺序查找

    08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/de ...

  5. 【数据结构与算法】比较法分析查找算法与查找结构

    基本的查找技术: 线性表的查找技术 顺序查找 分块查找 二分查找(折半查找) 插值查找 树表的查找技术 二叉排序树 平衡二叉树 B树(B+树.B-树等) 散列表的查找技术 开散列表 闭散列表 顺序查找 ...

  6. C语言丨线性查找(顺序查找)

    程序员在程序设计时常常需要对存储在数组中的大量数据进行处理,如排序.查找等.使用数据库时,用户可能需要频繁通过输入键字值来查找相应的记录.在数组中搜索一个特定元素的处理过程,称为查找.这次我们来介绍一 ...

  7. 查找(顺序查找、二分查找、插值查找)

    查找定义:根据给定的某个值,在查找表中确定一个其关键字等于给定值的数据元素(或记录). 查找表分类:静态查找表和动态查找表. 动态查找表:在查找过程中同时插入查找表中不存在的数据元素,或者从查找表中删 ...

  8. 数据结构与算法-查找算法(二分查找,插值查找,斐波那契(黄金分割法)查找)

    查找算法 以下三种算法的基本思想相同,都是利用递归来寻找 二分查找 思路分析 1.首先确定该数组的中间下标,min = (left + right) / 2 2.然后让需要查找的的数findVal和a ...

  9. 算法 --- 顺序查找、二分查找的js实现

    顺序查找: function seqSearch(arr, data) {for(let i = 0; i< arr.length;i++) {if(data == arr[i]) {retur ...

  10. php顺序查找法,php二分查找、顺序查找算法

    摘要:php查找数组元素有内置的函数array_search和in_array,顺序查找对数组排序没有要求,二分查找法要求数组必须是一个有序数组!1.顺序查找function sequence_sea ...

最新文章

  1. json对象转为url参数_Day48_Ajaxamp;Json
  2. MDT 2010之部署Windows XP-5
  3. html版本的网站地图只适合,如何在HTML和XML网站地图中取舍
  4. python3 正则表达式 嵌套表格_在Python中将嵌套结构与正则表达式匹配
  5. poj 1160(Post Office)
  6. Redis哨兵主备切换的数据丢失及Redis数据持久化
  7. 阿里、字节为何都如此偏爱Go语言?
  8. Moving stones(暴力+思维)
  9. (12)python 的列表我从没想过会那么好用
  10. [题解]RQNOJ PID85 三个袋子
  11. 简单说说我对几位认识的号主的印象
  12. hive的安装和升级
  13. 如何在C#中使用全局鼠标、键盘Hook
  14. spring中用到了哪些设计模式
  15. oracle复制数据库文件,Oracle备份与恢复系列(四)复制数据库 使用原有的控制文件...
  16. 调用MYSQL存储过程实例
  17. 电脑爱好者 2008年第24期 12月下
  18. 博科BROCADE交换机开启snmp服务
  19. python机器学习 | 朴素贝叶斯算法介绍及实现
  20. 微信又支持改微信号了

热门文章

  1. 电脑如何分盘win10_电脑Win10系统如何一键进入BIOS?
  2. PHP多重身份认证,浅谈php用户身份认证
  3. python series拼接_pandas数据拼接的实现示例
  4. jmeter使用_jmeter概念及使用
  5. 江西单招主计算机学校,2019年江西单招学校,江西单招信息技术试题,2019江西单招综合素质...
  6. 红帽linux进阶,Linux进阶第二天
  7. JavaScript:递归实现深拷贝
  8. OpenCV_(Using GrabCut extract the foreground object) 使用 GrabCut 算法提取前景物体
  9. 分布式存储系统学习笔记(一)—什么是分布式系统(3)—复制
  10. 在手机上实现实时的单眼3D重建