1.二分查找

1.1非递归实现

public static int BinarySearch(int[] arr,int target) {int high=arr.length;int low=0;while(low<=high) {int mid=(low+high)/2;if(target==arr[mid])return mid;else if(target<arr[mid])high=mid-1;elselow=mid+1;}return -1;
}

1.2 递归实现

public static int BinarySearch(int[] arr,int high,int low,int target) {      if(low<=high) {int mid=(low+high)/2;if(target==arr[mid])return mid;else if(target<arr[mid])return BinarySearch(arr,mid-1,low,target);elsereturn BinarySearch(arr,high,mid+1,target);}       return -1;
}

注:递归调用时的return BinarySearch(...)

算法练习day1——190318(二分查找)相关推荐

  1. php二分查找算法时间复杂度,一个运用二分查找算法的程序的时间复杂度是什么...

    一个运用二分查找算法的程序的时间复杂度是"对数级别".二分查找是一种效率较高的查找方法,算法复杂度即是while循环的次数,时间复杂度可以表示"O(h)=O(log2n) ...

  2. 经典算法之左边界二分查找法(俗称左边界二分搜索法)

    经典算法之左边界二分查找法(俗称左边界二分搜索法) 文章目录 经典算法之左边界二分查找法(俗称左边界二分搜索法) 前言 一.什么左边界二分查找法? 二.代码实现 总结 前言 就算法而言,我们主要学习的 ...

  3. 经典算法之右边界二分查找法(俗称基本右边界二分搜索法)

    经典算法之右边界二分查找法(俗称基本右边界二分搜索法) 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 经典算法之右边界二分查找法(俗称基本右边界二分搜索法) 前言 一.什 ...

  4. 【算法】详解二分查找算法(思路很简单,细节是魔鬼)

    我周围的人几乎都认为二分查找很简单,但事实真的如此吗?二分查找真的很简单吗?并不简单.看看 Knuth 大佬(发明 KMP 算法的那位)怎么说的: Although the basic idea of ...

  5. LeetCode算法题4:二分查找及扩展应用

    文章目录 前言 一.二分查找 二.第一个错误的版本 三.搜索插入位置 总结 前言 Leetcode算法系列:https://leetcode-cn.com/study-plan/algorithms/ ...

  6. 算法与数据结构之二分查找

    一.两道LeetCode题 首先来两道算法题举例,来初步探讨二分查找 278.First Bad Version 先贴上代码 // Forward declaration of isBadVersio ...

  7. 小白的算法初识课堂(part1)--二分查找法

    学习笔记 学习书目:<算法图解>- Aditya Bhargava 二分查找法 算法是一组完成任务的指令,任何代码片段都可视为算法.二分查找是一种算法,其输入是一个有序的元素列表(必须有序 ...

  8. 【数据结构与算法】task3 排序二分查找

    排序 参考:https://github.com/wangzheng0822/algo/tree/master/python 归并排序 def merge_sort(a):_merge_sort_be ...

  9. python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)

    在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...

最新文章

  1. RHEL\CentOS 7 下 MySQL 连接数被限制为214个
  2. mybatis 传递set集合
  3. Cocos2d-x3.0 不规则Button
  4. 1024-程序员节快乐!给大家发福利啦!以及向大家讲述节日由来
  5. java 设计模式 示例_Java中的策略设计模式-示例教程
  6. 移除镜像_这是否是你心目中的英雄联盟手游?镜像地图。水晶塔,传送移除
  7. 类和对象编程(九):类的静态成员
  8. Package sqlite3 was not found in the pkg-config search path.add the directory containing `sqlite3.pc
  9. (转)互联网投顾平台的监管风险:和讯信息
  10. QML Item定位器 Anchor
  11. Sql server 中的bulk insert语句使用
  12. 阈值分割python实现
  13. 用计算机软件绘制思维导图,无需其他软件!用Word 2016快速制作思维导图
  14. matlab插值与拟合例题_[转载]MATLAB插值与拟合(1)
  15. Lambda表达式----“进化论”
  16. [大洋] Unity3D架构系列之- FSM有限状态机设计一至四
  17. 怎么设置html禁止直接打开,如何禁止网页自动跳转
  18. Geforce Experience无法登录的解决方法
  19. phpst安装memcache扩展_超简单的wordpress网站安装教程(基于phpstudy PHP环境)
  20. js中的经典题Foo.getName

热门文章

  1. php ob_flush 和flush
  2. c++Builder XE6 MD5 加密算法 BASE64 URL 编码
  3. 《UML用户指南第二版》再次温读笔记(一)(downmoon)
  4. 世纪佳缘,玫瑰和面包开始PK
  5. 【Python】 1055 集体照 (25 分)
  6. sealos包管理使用
  7. Ansible roles角色实战案例:httpd nginx memcached mysql
  8. kube-controller-manager 配置参数解读
  9. 【好文收藏】K8S集群部署CoreDNS服务
  10. Python Django 常用字段类型