简单的二分查找


package com.kangkang.array;

public class demo03 {
public static void main(String[] args) {
// 简单的二分查找,必须时有序的,无序的不能使用二分查找
int[] arr = {10,20,30,40,50,60,70,80,90}; int index = getIndex(arr,10);
System.out.println("该元素的下标为"+index);
} private static int getIndex(int[] arr, int i) {
//定义一个最小值
int min = 0;
//定义一个最大值
int max = arr.length-1;
//定义一个中间值
int center = (max + min ) / 2;
//定义一个循环,当最小值大于最大值肯定时找到了就退出循环
while ( min <= max) {
// 当找的那个数等于中间数时退出循环
if (i == arr[center]) {
return center;
//当 i < 中间数时 最大值为中间值-1
} else if (i < arr[center]) {
max = center - 1;
//当 i > 中间数时 最大值为中间值+1
} else if (i > arr[center]) {
min = center + 1;
}
// 重新计算中间索引
center = (min + max) / 2;
}
// 不存在就返回-1,程序结束
return -1;
}
}

最新文章

  1. oracle的IMU和ora-01555
  2. Extract Fasta Sequences Sub Sets by position
  3. Hibernate.lock()方法中各种锁的区别
  4. NFC 与 Windows Phone 的那点事儿
  5. SharePoint表单和工作流 - Nintex篇(三)
  6. SAP交货单过账自动生产采购订单、采购订单自动收货入库
  7. compile php 5.4
  8. ReSharper warning: Virtual member call in a constructor
  9. plsql找外键约束关联的表的方法
  10. June 29th. 2018, Week 26th. Friday
  11. 接口隔离原则(ISP)
  12. 使用CSS选择器定位页面元素
  13. jsp使用servlet实现文件下载
  14. VMware中四种网络连接模式的区别
  15. js中编写velocity逻辑
  16. 配置Oracle访问SQL地理数据库
  17. 快速排序|2018年蓝桥杯B组题解析第五题-fishers
  18. 【原创】有关Silverlight中 &quot;Silverlight提示4004错误&quot; 的解决方案及思路。
  19. [USACO09MAR]Moon Mooing
  20. JavaScript 之 日常积累

热门文章

  1. DICOM医学文件的解析
  2. WPF 之 依赖属性与附加属性(五)
  3. LA3902 Network (树上dfs)
  4. python爬取酷我音乐
  5. 【2020杭电多校】Distinct Sub-palindromes 找规律
  6. Leetcode(213)-打家劫舍II
  7. ewebeditor 路径
  8. Linux bash script regex auto replace
  9. js &amp; document.designMode
  10. Mapbox 地图实验室