package TestArray;

import java.util.Arrays;

/**
* 二分法查找
*/ public class Test {
public static void main(String[] args) {
int[] arr = {30, 20, 50, 10, 80, 9, 7, 12, 100, 40, 8};
int searchWord = 20;
/**
* 二分法执行前,一定要排序
*/
Arrays.sort(arr); //二分法查找之前,一定要对数组元素排序
System.out.println(Arrays.toString(arr));
System.out.println(searchWord + "元素的索引:" + binarySearch(arr, searchWord));
} // 定义一个数组,然后传一个值进去
public static int binarySearch(int[] array, int value) {
int low = 0;
int high = array.length - 1;
while (low <= high) {
int middle = (low + high) / 2; // 获取中间索引
if (value == array[middle]) { // 如果这个值是这个数组的中间的话,则返回这个索引
return middle; // 返回查询到的索引位置
} // 如果值大于中间的值的话, 说明则要改起点,起点应该改成中间的key+1
if (value > array[middle]) {
low = middle + 1;
} if (value < array[middle]) {
high = middle - 1;
}
} //上面循环完毕,说明未找到,返回-1
return -1;
}
}

最新文章

  1. mybatis多表查询
  2. MessageReceiver
  3. pe创建激活administrator后消除问题,删除用户问题
  4. 教你在Excel里做GA的水平百分比图的详细步骤(图文教程)-成为excel大师(1)
  5. java系列: 对不起,JavaFX——Java 8目前还不能救你(zz)
  6. Servlet之Filter详细讲解
  7. UVA 10325 The Lottery( 容斥原理)
  8. 8添加一些样式:开始学习CSS
  9. robot API笔记5
  10. Xstream之常用方式与常用注解
  11. python 中 json的处理
  12. IntelliJ IDEA对开发者的三大诱惑
  13. Unity CommandInvokationFailure: Failed to re-package resources. 解决方案
  14. 位图(BitMap)
  15. java集合之ArrayList,TreeSet和HashMap分析
  16. Java内存模型概念简单介绍,想深入自行百度
  17. 详细记录sql运行时间(精确到毫秒)
  18. Oracle 入门
  19. form图片上传遇到错误
  20. Spring中使用两种Aware接口自定义获取bean

热门文章

  1. 漫谈C++:良好的编程习惯与编程要点(转载)
  2. bootstrap table 主子表 局部数据刷新(刷新子表)
  3. 异常:org.hibernate.id.IdentifierGenerationException
  4. 【转】 ios的手势操作之UIGestureRecognizer浅析
  5. 关于TOCTTOU攻击的简介
  6. &lt;知识整理&gt;2019清北学堂提高储备D3
  7. C# 利用HttpWebRequest进行HTTPS的post请求的示例
  8. URL 与URI 的区别
  9. jstl有什么优势(简单介绍)
  10. C# 打开文件或打开文件夹