您的位置:首页 > 编程语言 > Java开发

Java/Go实现——折半查找 二分查找

2017-09-01 11:19 706 查看
要求数组已经排好序。
public class HalfSeek {
public int halfSeek(int[] array, int low, int high, int number){
//要求数组已经从小到大进行了排序,low时当前数组最小的索引,high是当前数组最大的索引
if(array == null || array.length == 0 || low > high){
return -1;
}
int middle = (low + high) / 2;
if(array[middle] == number){
return middle;
}else if(number < array[middle]){
return halfSeek(array, low, middle - 1, number);
}else{
return halfSeek(array, middle + 1, high, number);
}
}
public static void main(String[] args) {
//
4000
TODO Auto-generated method stub
int[] array = {1,2,3,4,5};
HalfSeek h = new HalfSeek();
int result = h.halfSeek(array, 0, array.length - 1, 2);
System.out.println(result);
}
}Go语言func halfSearch(array [] int, number int, begin int, end int) int {
if array == nil || len(array) == 0 || begin > end {
return -1
}
var middle = (begin + end) / 2
if array[middle] == number {
return middle
} else if array[middle] < number {
return halfSearch(array, number, middle + 1, end)
} else {
return halfSearch(array, number, begin, middle - 1)
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: