查找算法中顺序查找算是最简单的了,无论是有序的还是无序的都可以,也不需要排序,只需要一个个对比即可,但其实效率很低。我们来看下代码

1public static int search1(int[] a, int key) {2    for (int i = 0, length = a.length; i 3        if (a[i] == key)4            return i;5    }6    return -1;7}

如果找到就返回查找的数所在数组中的下标,如果没找到就返回-1。还有说上面的代码可以优化,使用一个哨兵,免去了每次都要越界的判断,但通过实际测试运行效率并没有提高,无论测试的数据是多还是少运行的时间都差不多,我们来看下代码。

1public static int search2(int[] a, int key) {2    int index = a.length - 1;3    if (key == a[index])4        return index;5    a[index] = key;6    int i = 0;7    while (a[i++] != key) ;8    return i == index + 1 ? -1 : i - 1;9}

顺序查找是最简单的一种查找算法,对数据的要求也很随意,不需要排序即可查找。后面会介绍二分法查找,插值查找和斐波那契查找都是基于已经排序过的数据。

二分法查找是基于有序_201,查找顺序查找相关推荐

  1. 二分法查找是基于有序_【二分查找】May1th “First Bad Version (Python3)”

    " 五月,总结模板的日子."Day 1  --  First Bad Version首个坏"蛋"问题描述You are a product manager an ...

  2. 查找技术:有序表的对分查找(折半查找)类

    一 查找技术相关总结: 1.顺序查找:(1)如果线性表为无序表(即表中元素的排序是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找:(2)即使是有序线性表,如果采用链式存储结构,也只能 ...

  3. 【Java】 查找数组中指定元素之 顺序查找 与 二分查找

    今天博主分享两个查找数组中指定元素的算法:顺序查找与二分查找 小小目录 1.顺序查找 2. 二分查找 1.顺序查找 给定一个数组, 再给定一个元素, 找出该元素在数组中的位置. 代码如下: //顺序查 ...

  4. 数据结构——线性表的查找:顺序查找、设置监视哨的顺序查找、折半查找

    算法7.1顺序查找 #include<iostream> using namespace std;typedef int KeyType; typedef int InfoType; #d ...

  5. java顺序查找法 监视器_java算法:顺序查找(有监视哨和无监视哨)

    package Ceshi; public class seqSearch { /** * @param args */ /* 顺序查找又称线性查找; 基本思想:从查找表的一端开始,向另一端逐个按给定 ...

  6. 二分法查找是基于有序_利用二分法查找有序数组中是否含有给定Value

    //利用二分法查找有序数组中是否含有给定Value class AlgorithmByZXQ { /// /// 二分法查找数组中某一数值 /// /// /// /// /// /// public ...

  7. 查找(包括顺序查找和折半查找)

    顺序查找 顺序查找又叫线性查找,主要用于线性表中的查找.顺序查找通常情况下分为对一般无序线性表的查找和对按关键字有序的顺序表的查找.下面进行比较讨论: 1.一般线性表的查找 作为一个直观的查找方法,其 ...

  8. 数据结构之查找-顺序查找,折半查找,分块查找

    文章目录 一.顺序查找 1.1 无序表的顺序查找 1.2 有序表的顺序查找 二.折半查找 三.分块查找 一.顺序查找 顺序查找又称线性查找,主要用于在线性表中进行查找. 1.1 无序表的顺序查找 对无 ...

  9. 408数据结构学习笔记——顺序查找、折半查找、分块查找

    目录 1.顺序查找 1.1.顺序查找的概念 1.2.顺序查找的代码 1.3.顺序查找的查找效率 1.4.顺序查找的优化 1.5.顺序表的时间复杂度 2.折半查找 2.1.折半查找的概念 2.2.折半查 ...

最新文章

  1. ios5中apple增加了解析JSON的api——NSJSONSerialization。
  2. 找啊找啊找木偶,图灵奖得主G. Hinton第一篇论文曝光!
  3. 自定义Android时钟(支持秒针)
  4. Kinect学习(四):提取深度数据
  5. .net framework4与其client profile版本的区别
  6. 通过串口打印--超声波测距模块测得距离
  7. python自动测试a_python自动化单元测试
  8. JAVA_if或者怎么用_Java条件语句if的使用方法介绍
  9. python-5 函数
  10. 为什么hashtable中桶的数目都是用质数表示
  11. renpy 如何执行2个action_可执行的网络推广方案如何策划 8个维度 学会了策划方案不求人...
  12. navicat的注册出现提示No All Pattern Found! File Already Patched?
  13. 虚拟服务器不识别网银盾,建行u盾插电脑没反应网页不自动跳出 3步教你快速解决...
  14. 一个据说可以让瑞星ravmond.exe崩溃的网站
  15. 《数据库系统概论》知识整理
  16. untiy游戏接入之uc_sdk(九游)
  17. python自动登录校园网_python实现校园网一键自动连接
  18. 随笔杂记(十)——C++:C4996报错解决方法
  19. 4种CSS文字竖排方法
  20. 9.1总结前日(数学+图论)

热门文章

  1. 安全——《微服务设计》读书笔记
  2. 发布在即!.NET Core 1.0 RC2已准备就绪
  3. 采用MiniProfiler监控EF与.NET MVC项目
  4. django17:importlib应用中间件代码思想
  5. [转]【分布式系统】唯一ID生成策略总结
  6. 【ArcObject开发】实验:ArcObject地图开发基本操作
  7. 趣学算法之斐波拉契数列实现
  8. linux c之用命名管道实现进程通信
  9. 除掉字符串里面相同的字符
  10. 个人空间风格模版php,ThinkPHP 模板布局