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)
}
}
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)
}
}
相关文章推荐
- 折半查找(二分查找)Java实现
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现折半查找(二分查找)的递归和非递归算法
- Java 语言实现折半查找(二分查找)
- java实现查找算法——折半查找(二分查找)
- Java实现折半查找(二分查找)的递归和非递归算法
- 【转】Java实现折半查找(二分查找)的递归和非递归算法
- java中的折半查找(二分查找)
- java递归实现二分查找
- 线性查找与二分查找(java实现)
- Java实现二分查找
- java 二分查找算法实现
- java语言实现二分查找数据法
- java实现顺序查找和二分查找
- 算法:查找----二分查找(Java实现)
- JAVA实现二分查找
- 8、二分查找 JAVA实现