黑马程序员技术交流社区
标题:
二分查找的原理: 希望嫩个帮到大家
[打印本页]
作者:
陈熙
时间:
2015-8-14 22:06
标题:
二分查找的原理: 希望嫩个帮到大家
public class BinarySearchDemo {
public static void main(String[] args) {
// 定义一个有序数组
int[] arr = {11, 22 , 33 , 44,55, 66, 77, 88, 99};
int index = binarySearch2(arr , 33);
System.out.println(index);
}
/**
* 优化后的代码
* @param arr
* @param value
* @return
*/
public static int binarySearch2(int[] arr , int value){
// 定义三个变量
int minIndex = 0 ;
int maxIndex = arr.length - 1;
// 循环
while(minIndex <= maxIndex){
int midIndex = (minIndex + maxIndex) >> 1 ;
if(arr[midIndex] == value){
return midIndex ;
}else if(arr[midIndex] > value){
maxIndex = midIndex - 1 ;
}else if(arr[midIndex] < value){
minIndex = midIndex + 1 ;
}
}
return -1 ;
}
/**
* 二分查找
* @param arr
* @param value
* @return
*/
public static int binarySearch(int[] arr , int value){
// 定义三个变量
int minIndex = 0 ;
int maxIndex = arr.length - 1;
int midIndex = (minIndex + maxIndex) / 2 ;
// 循环
while(minIndex <= maxIndex){
if(arr[midIndex] == value){
return midIndex ;
}else if(arr[midIndex] > value){
maxIndex = midIndex - 1 ;
}else if(arr[midIndex] < value){
minIndex = midIndex + 1 ;
}
midIndex = (minIndex + maxIndex) / 2 ;
}
return -1 ;
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2