/*** @author Administrator*二分查找法:*       特点:*         1.该数组是已经排好序的*           2.效率还是比较高的*/
public class BinSearch {//{2,3,4,5,7} 6public static int binSearch(int [] arr ,int key){int start =0;int end =arr.length-1;int mid=(start+end)/2;while(start<=end){if(arr[mid]<key){start=mid+1;mid=(start+end)/2;}if(arr[mid]>key){end=mid-1;mid=(start+end)/2;}if(arr[mid]==key){return mid;}}//执行完后依然没有跳出,则说明该数组中不包含该keyreturn -1;}//测试二分查找public static void main(String[] args) {int [] arr={2,3,4,5,7};System.out.println("该数组中是10的位置:"+BinSearch.binSearch(arr, 10));System.out.println("该数组中是5的位置:"+BinSearch.binSearch(arr, 5));}
}
输出结果:
 该数组中是10的位置:-1
    该数组中是5的位置:3

二分查找的实现---java版本相关推荐

  1. 二分查找法(Java实现)

    package sort;import java.util.Arrays;public class SearchUtils {public static void main(String[] args ...

  2. 十七、二分查找法(java)

    1.二分查找又称折半查找,它是一种效率较高的查找方法. 2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列 3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位 ...

  3. 二分查找法。Java泛型设计二分查找法。

    前言基础: 1.只能针对有序的数组进行查找. 2.时间复杂度为O(logn). 3.使用前可以先排序,然后再查找,广泛应用于当一大组数据需要频繁查找,于是我们先将其进行排序,然后再通过二分查找进行查找 ...

  4. 随手写个二分查找算法【Java】

    夫陶公清风千古,余又何人,敢称庶几 个人博客地址:http://www.breez.work 介绍 代码 public class Dichotomy {public static void sear ...

  5. c语言分蛋糕均匀正方形,分蛋糕(C - 二分查找)

    分蛋糕 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/C Description My birthd ...

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

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

  7. vue 怎么样不重复往数组里插入数据_前端数据结构与算法(1) -二分查找vs二叉树...

    今天给大家开始介绍前端方面的数据结构,刚把vue源码过完就开始数据结构,可见它的地位有多重要.有人说我一前端又不是后端学这个数据结构干嘛,好吧,只能说你还没有这个意识,一是面试很多大厂就会考察,我面试 ...

  8. php+求二分查找递归算法,PHP二分查找(递归和循环)

    二分查找可以通过递归和循环来实现, 思路如下: 将要查找的数和中间数进行比较, 如果相等,则表示找到,返回下标 如果要查找的数小于中间这个数,则说明要查找的数分布在数组左边,修改right边界,使其等 ...

  9. 【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找

    1.0 冒泡排序原理 冒泡排序就是:轻的上浮,沉的下降.小的往前排,大的往后走. 原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置. 每一次比较,都是相对最沉的到位. ...

最新文章

  1. pybind11传输文件
  2. 【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★
  3. php连接mysqli面向过程,PHP基础知识总结:MySQLi 面向过程
  4. shell脚本每日一练(一)
  5. 捋一捋PDF、PMF、CDF是什么
  6. 最优化学习笔记(二)一维搜索
  7. PHP扩展调用C++静态库
  8. SpringBoot注解@Component、Repository、Service、Controller的含义
  9. 你不知道的Event
  10. 机器学习-决策树(ID3、C4.5、CART)
  11. 从JS库的使用者转变成JS的开发者——第一篇 javascript对象
  12. google earth 专业版下载方法
  13. 鸡兔同笼头吃20脚56c语言,数学课件《鸡兔同笼》
  14. 简单的用java操作Excel入门
  15. SVM中对偶、凸优化与KTT条件问题
  16. OkHttp证书校验
  17. 最后三天!当当网3折购书优惠码限时抢
  18. 深度学习实战(七)——目标检测API训练自己的数据集(R-FCN数据集制作+训练+测试)
  19. Golang Protocol Buffers数据格式教程
  20. SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决

热门文章

  1. 05.multi_search_template
  2. 蓝桥杯 ADV-205 算法提高 拿糖果
  3. 24行代码-Leecode 2063. 所有子字符串中的元音——Leecode周赛系列
  4. 【题意+推导讲解】1031 Hello World for U (20 分)_15行代码AC
  5. 1027 Colors in Mars (20 分)_20行代码AC
  6. 【可运行,刘汝佳代码】Trees on the level UVA - 122
  7. mysql 引擎是表级别_Mysql表引擎优化
  8. ubuntu mysql 5.7 出错_\ubuntu mysql5.7 启动提示错误:/var/run/mysqld/mysqld.sock??
  9. hdfs数据节点分发什么协议_HDFS主要节点解说(一)节点功能
  10. java hex to float_Hex to Float