二分查找的实现---java版本
/*** @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版本相关推荐
- 二分查找法(Java实现)
package sort;import java.util.Arrays;public class SearchUtils {public static void main(String[] args ...
- 十七、二分查找法(java)
1.二分查找又称折半查找,它是一种效率较高的查找方法. 2.二分查找要求:(1)必须采用顺序存储结构 (2).必须按关键字大小有序排列 3.原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位 ...
- 二分查找法。Java泛型设计二分查找法。
前言基础: 1.只能针对有序的数组进行查找. 2.时间复杂度为O(logn). 3.使用前可以先排序,然后再查找,广泛应用于当一大组数据需要频繁查找,于是我们先将其进行排序,然后再通过二分查找进行查找 ...
- 随手写个二分查找算法【Java】
夫陶公清风千古,余又何人,敢称庶几 个人博客地址:http://www.breez.work 介绍 代码 public class Dichotomy {public static void sear ...
- c语言分蛋糕均匀正方形,分蛋糕(C - 二分查找)
分蛋糕 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=85904#problem/C Description My birthd ...
- 二分查找算法(递归与非递归两种方式)
首先说说二分查找法. 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回1,失败返回对应的数组下标. 采用非递归方式完成二分查找法.java代码如下 ...
- vue 怎么样不重复往数组里插入数据_前端数据结构与算法(1) -二分查找vs二叉树...
今天给大家开始介绍前端方面的数据结构,刚把vue源码过完就开始数据结构,可见它的地位有多重要.有人说我一前端又不是后端学这个数据结构干嘛,好吧,只能说你还没有这个意识,一是面试很多大厂就会考察,我面试 ...
- php+求二分查找递归算法,PHP二分查找(递归和循环)
二分查找可以通过递归和循环来实现, 思路如下: 将要查找的数和中间数进行比较, 如果相等,则表示找到,返回下标 如果要查找的数小于中间这个数,则说明要查找的数分布在数组左边,修改right边界,使其等 ...
- 【Java常识】7.0 数组实现冒泡排序、选择排序和二分查找
1.0 冒泡排序原理 冒泡排序就是:轻的上浮,沉的下降.小的往前排,大的往后走. 原理:若一个N个元素的数组,两个相邻位置比较,如果前面的元素比后面的元素大就换位置. 每一次比较,都是相对最沉的到位. ...
最新文章
- pybind11传输文件
- 【Android 性能优化】应用启动优化 ( 阶段总结 | Trace 文件分析及解决方案 | 源码分析梳理 | 设置主题的方案总结 ) ★
- php连接mysqli面向过程,PHP基础知识总结:MySQLi 面向过程
- shell脚本每日一练(一)
- 捋一捋PDF、PMF、CDF是什么
- 最优化学习笔记(二)一维搜索
- PHP扩展调用C++静态库
- SpringBoot注解@Component、Repository、Service、Controller的含义
- 你不知道的Event
- 机器学习-决策树(ID3、C4.5、CART)
- 从JS库的使用者转变成JS的开发者——第一篇 javascript对象
- google earth 专业版下载方法
- 鸡兔同笼头吃20脚56c语言,数学课件《鸡兔同笼》
- 简单的用java操作Excel入门
- SVM中对偶、凸优化与KTT条件问题
- OkHttp证书校验
- 最后三天!当当网3折购书优惠码限时抢
- 深度学习实战(七)——目标检测API训练自己的数据集(R-FCN数据集制作+训练+测试)
- Golang Protocol Buffers数据格式教程
- SQLIntegrityConstraintViolationException: Duplicate entry 'xxx' for key 'yyyzzz'异常解决
热门文章
- 05.multi_search_template
- 蓝桥杯 ADV-205 算法提高 拿糖果
- 24行代码-Leecode 2063. 所有子字符串中的元音——Leecode周赛系列
- 【题意+推导讲解】1031 Hello World for U (20 分)_15行代码AC
- 1027 Colors in Mars (20 分)_20行代码AC
- 【可运行,刘汝佳代码】Trees on the level UVA - 122
- mysql 引擎是表级别_Mysql表引擎优化
- ubuntu mysql 5.7 出错_\ubuntu mysql5.7 启动提示错误:/var/run/mysqld/mysqld.sock??
- hdfs数据节点分发什么协议_HDFS主要节点解说(一)节点功能
- java hex to float_Hex to Float