package com.hbut.test2;

public class BinaryFind {

public static void main(String[] args) {

int arr[]={1,2,3,4,5,6,7,8,9};
int index=binaryFind(arr, 8);
System.out.println("index:"+index);
}

/**
* 二分查找法:
* 根据target在数组中找元素的索引,找到就返回该元素的位置,没有找到就返回-1
* @param arr
* @param target
*/
public static int binaryFind(int []arr ,int target){
int mid=arr.length/2;
int start=0,end=arr.length-1;
while(start<=end){
   if(target==arr[mid]){
return mid;

}
else if(target<arr[mid]){
end=mid-1;
mid=start+end;
}
else if(target>=arr[mid]){
start=mid+1;
mid=(start+end)/2;
}

}

return -1;

}

}

二分查找法---java实现相关推荐

  1. java二分查找法_java算法之二分查找法的实例详解

    java算法之二分查找法的实例详解 原理 假定查找范围为一个有序数组(如升序排列),要从中查找某一元素,如果该元素在此数组中,则返回其索引,否则返回-1.通过数组长度可取出中间位置元素的索引,将其值与 ...

  2. java 二分查找_计算机入门必备算法——二分查找法

    1.引言 笔者对于计算机的研究一直停滞不前,近期想对一些算法进行复习和进一步的研究,每天都会更新一个新的算法,算法有难有易,层层递进.不希望能学的有多么高深,只希望在一些最基本的算法上有编码的思路,或 ...

  3. 学习练习 java 二分查找法

    1 package com.hanqi; 2 3 import java.util.*; 4 5 public class Test5 { 6 7 public static void main(St ...

  4. java算法2_二分查找法

    比如现在有个记录名单的字典,里面的名字是按A-Z的顺序排好的,现在我想找Lily这个人.我可以从第一页开始一页一页的翻,但显然这样效率太低了.我可以怎么做呢?首先我直接翻到字典的中间位置,假如发现这里 ...

  5. binarysearch java,java数据结构之二分查找法 binarySearch的实例

    java数据结构之二分查找法 binarySearch的实例 折半查找法,前提是已经排好序的数组才可查找 实例代码: public class BinarySearch { int[] bArr; p ...

  6. 线性查找法java代码_Java线性查找和二分查找

    Java线性查找和二分查找. 一 线性查找 定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程. 线性查找又称为顺序查找.如果查找池是某种类型的一个表,比如一个数组,简 ...

  7. java小练习题---冒泡排序+二分查找法

    题目: 冒泡排序+二分查找法 代码: package scan; import java.util.Scanner; //import java.util.Scanner; public class ...

  8. (java)leetcode852 山脉数组的封顶索引(二分查找法找出数组中最大值的下标)(Peak Index in a Mountain Array)

    题目描述: 我们把符合下列属性的数组 A 称作山脉: A.length >= 3 存在 0 < i < A.length - 1 使得A[0] < A[1] < ... ...

  9. java for循环和数组--冒泡排序、二分查找法

    //100以内与7相关的数 for(int a=1;a<=100;a++){     if(a%7==0||a%10==7||a/10==7){      System.out.print(a+ ...

最新文章

  1. mysql5.7中使用group by报错
  2. 个人博客系统毕业设计开题报告
  3. 汇编 align_从零开始自制操作系统(5):实模式汇编(二)
  4. LeetCode--026--删除排序数组中的重复项(java)
  5. Error accessing PRODUCT_USER_PROFILE?
  6. latex 设置表格的字体大小和行高
  7. 计算机趣味知识竞赛策划,大学生趣味知识竞赛活动的策划书
  8. 简单实用的查询ip地址、mac地址,修改ip地址的方法,ping命令检测网络是否通畅
  9. MySQL的基本学习(三)——DD/M/QL三类SQL语言和SQLyog
  10. Forest上传下载功能使用
  11. 必备的网络常用测试命令(ping命令)
  12. django mezzanine添加多语言支持
  13. C/C++编程学习 - 第13周 ⑤ 财务管理
  14. 计算机信息化教育的意义,论信息技术对于教育的重要性
  15. 基于词向量空间专业化的动词类跨语言归纳与迁移
  16. linux分配活动分区,活动分区与最后分区确定的批处理(DOS/omnifs版)
  17. Python Django框架+jQuery Ajax实现CRUD
  18. ffmpeg 多张图片转视频
  19. 天国没有加班,胡新宇兄弟一路好走
  20. C++ 单冒号: 和双冒号:: 的作用

热门文章

  1. 洛谷——P1051 谁拿了最多奖学金
  2. ES6函数第二篇:剩余参数与展开运算符的练习
  3. 【最贴心】C++字符串转换(stoi;stol;stoul;stoll;stoull;stof;stod;stold)
  4. redis数据库价格_阿里云数据库Redis购买流程
  5. python 两阶段聚类_挑子学习笔记:两步聚类算法(TwoStep Cluster Algorithm)——改进的BIRCH算法...
  6. C#结构体中数组的分配
  7. python开发网页视频播放器_HTML5 VideoAPI,打造自己的Web视频播放器
  8. java list数组排序_浅谈对象数组或list排序及Collections排序原理
  9. python 清空所有对象_学习python第38天
  10. gbq6的文件能转换成gbq5_PPT文件转换成PDF怎么转?这些方法能实现快速转换