蛮力法在查找算法中的应用

对于查找算法来说,最简单的一个思路就是逐个匹配,直到找到目标元素

顺序查找:

public class Main {public static void main(String[] args) {int[] a = {89, 45, 68, 90, 29, 34, 17, 0};int k = 45;int i = 0;a[a.length-1] = k;while (a[i] != k) {i++;}if (i < a.length-1) {System.out.println(i);} else {System.out.println("no find");}}
}

上面的算法不同于大家常见的算法,这是在顺序查找时常用的一个小技巧:将查找建添加到列表末尾(也称 限位器 ),那么查找必定会成功,这样就不比在每次循环都检查是否达到的末尾,只需再循环外面做一次即可。

发现问题:如果未定的数组是有序的,即使后面的元素都不可能等于查找建,但是算法不会停止

优化思路:当我们当查到一个比查找键还大的元素,仍未找到,那么就可以终止循环了。

蛮力法在查找算法中的应用(JAVA)--顺序查找相关推荐

  1. 蛮力法在排序算法中的应用(JAVA)--选择排序、冒泡排序

    蛮力法在排序算法中的应用 对于一个排序问题,我们能想到的最简单的排序方法就是选择和冒泡 1.选择排序:时间复杂度O(n^2) public class Main {public static void ...

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

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

  3. 减治法在查找算法中的应用(JAVA)--二叉查找树的查找、插入、删除

    减治法在查找算法中的应用 二叉查找树的查找与插入: 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根节点的值: (2)若右子树不空, ...

  4. 减治法在查找算法中的应用(JAVA)--折半查找

    减治法在查找算法中的应用 折半查找:(时间复杂度O(log以2为底n的对数)) 对于有序数组的查找来说,折半查找是一种非常高效的算法,其基本原理为:比较查找键k和数组中间元素a[m],如果相等,算法结 ...

  5. 减治法在查找算法中的应用(JAVA)--快速查找

    减治法在查找算法中的应用 快速查找:选择问题是求一个n个数列表的第k个最小元素的问题,这个数k被称为顺序统计量.对于k=1或k=n来说,这并没有什么意义,我们通常会要找出这样的元素:该元素比列表中一半 ...

  6. 关于二分查找算法中中间值的获取

    关于二分查找算法中中间值的获取 //left是左边元素索引的变量,right是右边元素索引的变量 int mid = (left + right) / 2; //这样写的话可能会出现问题,当数组中的元 ...

  7. 查找算法:斐波那契查找算法实现及分析

    斐波那契查找算法介绍 斐波那契查找法肯定与斐波那契相关嘛,斐波那契数列 又称黄金分割数列.所以我们先把黄金分割弄懂,后面代码才能看得懂!黄金分割点大家都知道吧.1:0.618或者1.618:1,我们的 ...

  8. 【数据结构与算法】插值查找算法、斐波那契查找算法(黄金分割法)的介绍和程序实现

    目录 1. 插值查找算法 1.1 插值查找算法的介绍 1.2 插值查找算法的程序实现 2. 斐波那契查找算法 2.1 斐波那契查找算法的介绍 2.2 斐波那契查找算法的程序实现 1. 插值查找算法 1 ...

  9. 查找算法【二叉查找树】 - 二叉查找树的查找

    查找算法[二叉查找树] - 二叉查找树的查找 因为二叉查找树的中序遍历有序性,所以查找与二分查找类似,每次都缩小查找范围,查找效率较高. [算法步骤] ① 若二叉查找树为空,查找失败,则返回空指针. ...

最新文章

  1. Centos 6启动流程详解
  2. java web简单三层结构
  3. javase学习第10天(形式参数和返回值类型、包、内部类、匿名内部类)
  4. 实现Evernote的OAuth授权
  5. Python爬虫开发
  6. 重建二叉树(基于js)
  7. SAP Spartacus 的页面模型在SAP 电商云后台WCMS里的模型
  8. 有效沟通的技能有哪些_如何有效地展示您的数据科学或软件工程技能
  9. java 省市区三级联动_AJAX省市区三级联动下拉菜单(java版)
  10. php简单记账本_介绍你3个记账本小程序,让你花钱有规划
  11. 西门子ug通用后处理_浅谈SIEMENS数控系统UG后置处理常用TCL语句使用技巧
  12. Hcse 交换知识点-4
  13. 中国广电即将放号,感受到压力的中国移动率先推出19元5G套餐
  14. 如何使用微信公众平台测试号进行系统开发
  15. 用计算机中的知识秀恩爱,用你的专业,说最美的情话......
  16. Laravel第三方登录开发之实现QQ登录
  17. git 源码安装后报错/usr/bin/git: No such file or directory
  18. 计算机键盘优点,机械键盘有哪些优点
  19. 百度千言-中文文本相似度实战
  20. 详解比较好的音视频通话SDK开发包的技术要点

热门文章

  1. php引用计数器,PHP 引用计数器 通俗版解释_PHP教程
  2. vue获取table一列数据_VUE table表格动态添加一列数据,新增的这些数据不可以编辑(v-model绑定的数据不能实时更新)...
  3. 中raise抛出异常_Python 异常处理知识点汇总,五分钟就能学会 !
  4. python元素定位input button_python+selenium 定位到元素,无法点击的解决方法
  5. aspen怎么做灵敏度分析_不会敲代码怎么做智能分析?用奥威商业智能BI
  6. java值栈_Struts2 中的值栈是什么?
  7. abb限位开关已打开drv1_Telemecanique传感器限位开关产品系列
  8. 如何查看keepalived版本号_Keepalived介绍 , 配置说明 , 及实际应用
  9. linux sz到指定的机器,linux 机器之间 zssh, rz, sz互相传输讲解
  10. python集合操作班级干部竞选演讲稿_精选竞选班干部的演讲稿集合7篇