1、二分查找算法(非递归)介绍

  1. 前面我们讲过了二分查找算法,是使用递归的方式,下面我们讲解二分查找算法的非递归方式
  2. 二分查找法只适用于从有序的数列中进行查找(比如数字和字母等),将数列排序后再进行查找
  3. 二分查找法的运行时间为对数时间O(㏒₂n) ,即查找到需要的目标位置最多只需要㏒₂n步,假设从[0,99]的队列(100个数,即n=100)中寻到目标数30,则需要查找步数为㏒₂100 , 即最多需要查找7次( 2^6 < 100 < 2^7)

2、二分查找算法(非递归)代码实现

数组 {1,3, 8, 10, 11, 67, 100}, 编程实现二分查找, 要求使用非递归的方式完成.

package com.qf.math;public class BinaryMathDemo {public static void main(String[] args) {int[] arr={1,3, 8, 10, 11, 67, 100};int i = binaryFind(arr, 10);System.out.println("index="+i);}//二分查找public static int binaryFind(int[] arr,int target){int left=0;int right=arr.length-1;while (left<=right){int mid=(left+right)/2;if (arr[mid]==target){return mid;}else if (arr[mid]>target){right=mid-1;}else{left=mid+1;}}return -1;}
}

二分查找算法(非递归)相关推荐

  1. 【Java数据结构与算法】第十七章 二分查找(非递归)和分治算法(汉诺塔)

    第十七章 二分查找(非递归)和分治算法(汉诺塔) 文章目录 第十七章 二分查找(非递归)和分治算法(汉诺塔) 一.二分查找 1.思路 2.代码实现 二.分治算法(汉诺塔) 1.概述 2.汉诺塔 一.二 ...

  2. python递归实现二分查找_python二分查找算法的递归实现

    本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 ...

  3. python递归实现二分查找_python二分查找算法的递归实现方法

    本文实例讲述了python二分查找算法的递归实现方法.分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = 0 ...

  4. 二分查找算法(递归与非递归两种方式)

    首先说说二分查找法. 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回1,失败返回对应的数组下标. 采用非递归方式完成二分查找法.java代码如下 ...

  5. 二分查找算法(递归+非递归)

    二分算法步骤描述 前提:有序数组中查找关键词所在的位置 ① 首先确定整个查找区间的中间位置 mid = strat+(end-strat)/2 ② 用待查关键字key值与中间位置的关键字值进行比较: ...

  6. 二分查找算法(递归方式)

    文章目录 基本思想 代码示例 复杂度分析 尾注 基本思想 二分查找算法,也叫折半搜索算法,一般来讲,二分查找算法常用于一个有序数组(也可以用于无序数组,下一节讲解).在搜索时,首先选择一个中点,如果中 ...

  7. 二十一、二分查找算法(递归非递归)

    一.二分查找思路分析 1.首先确定该数组中间的下标 ,即mid=(left+high)/2; 2.然后让需要查找的value值与array[mid]值进行比较 2.1)findVal > arr ...

  8. 二分查找原理非递归与递归实现【转载】

    二分查找 实现查找指定数值在元素有序的数组中存储的位置(索引),返回该位置(索引). 解题步骤: 定义3个用来记录索引值的变量,变量min记录当前范围最小索引值,初始值为0:变量max记录当前范围最大 ...

  9. 二分查找算法的递归、循环实现及其缺陷

    关于二分查找法 在学习算法的过程中,我们除了要了解某个算法的基本原理.实现方式,更重要的一个环节是分析算法的复杂度.在时间复杂度和空间复杂度之间,我们又会更注重时间复杂度,往往用牺牲空间换时间的方法提 ...

最新文章

  1. liunx导出mysql慢查询日志查看_查看 MySQL 慢查询日志文件-问答-阿里云开发者社区-阿里云...
  2. pe如何自动加载外置工具_如何自动加载网站的深色模式?
  3. eclipse 快捷键大全
  4. Vue第一部分(2): 数据的渲染
  5. Hyper-v副本容量规划器
  6. 为什么微信小程序也能做游戏?
  7. 【CSS3】CSS多列属性(Multi-column)
  8. qps多少才算高并发_AGV小车价格多少才算合适?
  9. PHP 验证日期格式
  10. 本地邮件服务器 易邮 使用
  11. mysql有rollup函数,Mysql,Oracle使用rollup函数完成行列统计
  12. 趋肤效应实验报告_GB/T 4857.2
  13. 计算机Word更改表格中,word中快速应用表格样式及表格样式的修改——想象力电脑应用...
  14. VoIP的落地通信模型和要考虑几个大的方面问题及基本概念和交互流程整理
  15. My Sixth-Third Page - 爬楼梯 - By Nicolas
  16. 阅兵方阵-蓝桥杯国赛
  17. css中关于旋转属性trtransform: rotate影响文字轻微变形的解决办法。
  18. Enriched Feature Guided Refinement Network for Object Detection(面向目标检测的丰富特征引导细化网络)
  19. Mac中代理配置不稳定生效
  20. 编程练习:头条校招题

热门文章

  1. Overleaf LaTex 学习(一):页边距设置与matlab代码
  2. DHCP 中继Snooping解释以及配置
  3. Python简单的操作excel表格
  4. [Adnroid]打包错误:SSL peer shut down incorrectly
  5. 剑指Offer三天挑战赛03~15
  6. java好玩的项目github_GitHub 上有些什么好玩的项目?
  7. zxr10交换机配置手册vlan_中兴ZXR10配置说明
  8. 记录一次最坑的微信会员卡 跳转型开发时的bug errcode72011
  9. lua/luci入门
  10. YOLOv5训练自己的数据集(超详细)