您的位置:首页 > 其它

算法导论_二分查找

2013-02-28 22:49 239 查看
package com.wzs;

/**
* 算法导论--page22
*
* @author Administrator
*
*/
public class BinarySearch {
public static void main(String[] args) {
int[] arr = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
System.out.println(binarySearch(arr, 6, 0, arr.length));
}

/**
* 二分查找
*
* @param arr
*            查找的数组
* @param value
*            查找的值
* @param left
*            数组开始下标
* @param right
*            数组结束下标
* @return 查找的值所在数组中下标位置,-1表示不存在
*/
static int binarySearch(int[] arr, int value, int left, int right) {
while (left <= right) {
int middle = (left + right) / 2;
if (value == arr[middle]) {
return middle;
} else if (value > arr[middle]) {
left = middle + 1;
} else {
right = middle - 1;
}
}
return -1;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息