public class TestBinarySearch {
public static void main(String[] args) {
int [] array = {1,7,9,25,64,98};
int index1 = binarySearch(9,array,0,array.length);
System.out.println("Index : "+index1);
int index2 = binarySearch2(array,9,0,array.length);
System.out.println("Index : "+index2);
}
public static int binarySearch(int elem,int array [],int low,int high){
if(low>high)return -1;
int mid = (low+high)/2;
if(array[mid] == elem)return mid;
if(array[mid] < elem) return binarySearch(elem,array,mid+1,high);
if(array[mid] > elem) return binarySearch(elem, array, low, mid-1);
return -1;
}
public static int binarySearch2(int[] data,int goal,int left,int right){
int mid = (left+right)/2 ;
if(left>right){
return -1 ;
}
if(goal==data[mid]){
return mid ;
}
else if(goal<data[mid]){
//注意right = mid -1 ;
return binarySearch2(data,goal,left,mid-1);
}
else if(goal>data[mid]){
return binarySearch2(data,goal,mid+1,right);
}
return -1 ;
}
}
分享到:
相关推荐
二分法算法 弦截法算法 matlab,看看有用没
matlab开发-最小性的二分法算法。二分法求H无穷大的GAMA值
二分法实现.txt二分法实现.txt二分法实现.txt
matlab二分法算法,实测可用,直接调用该函数即可得到目标解
主要介绍了Python实现二分法算法实例,本文先是介绍了算法规则,然后给出了实现例子,需要的朋友可以参考下
主要介绍了java 二分法算法的实例的相关资料,希望通过本文大家能够掌握二分法,需要的朋友可以参考下
使用二分法解线性方程二分法解线性方程二分法解线性方程
牛顿迭代、割线法、二分法算法实验报告.docx
写出二分法查找算法函数实现。
二分法排序算法 C语言实现 个人爱好 希望相互学习
处理数值计算中的二分法求解问题,适合数值计算的实验
计算机二分法的算法步骤-五大常用算法之一:分治算法,算法数据结构 五大常用算法
二分法查找 *进行二分法查找的前提是数组已有序 *查找范围的上下界
二分法算法文件,龙格库塔法,高斯法,数值计算二分法求解,适用于初学数值计算人群
Java常用高效8大排序算法与二分法查找,适合正在学习算法和准备学习算法的算法爱好者和研究使用算法的开发人员使用。
欢迎下载,资源共享。c语言实现。排序方法
class binary_search { public: int * arr; int nElems; public : binary_search(); binary_search(int max); virtual ~binary_search(); int find(int searchKey); void insert(int value);...
普遍适用的的二分法算法,非常简单方便。。。。。。。。。。。