public class TestBinSearch {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
System.out.println(binSearch(a, 0, a.length - 1, 100));
}
// 二分查找递归实现
public static int binSearch(int a[], int start, int end, int key) {
int mid = (end - start) / 2 + start;
if (a[mid] == key) {
return mid;
}
if (start >= end) {
return -1;
} else if (a[mid] < key) {
return binSearch(a, mid + 1, end, key);
} else if (a[mid] > key) {
return binSearch(a, start, mid - 1, key);
}
return -1;
}
// 二分查找普通循环实现
public static int binSearch(int a[], int key) {
int mid = a.length / 2;
if (key == a[mid]) {
return mid;
}
int start = 0;
int end = a.length - 1;
while (start <= end) {
mid = (end - start) / 2 + start;
if (key < a[mid]) {
end = mid - 1;
} else if (key > a[mid]) {
start = mid + 1;
} else {
return mid;
}
}
return -1;
}
}
分享到:
相关推荐
java二分查找开发技术实现代码,注意二分查找必须是有序数组
java 二分查找法的实现方法 java 二分查找法的实现方法
用java二分查找法实现日期搜索 用java二分查找法实现日期搜索 用java二分查找法实现日期搜索
Java 二分查找算法的示例代码。 欢迎访问个人博客。 http://blog.csdn.net/evanwang1987
Java 二分查找算法的示例代码。 欢迎访问个人博客。 http://blog.csdn.net/evanwang1987
Java二分查找递归算法
java二分查找算法,用于普通的代码算法。。,。。
Java二分查找.doc
用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch 用java实现二分查找法BianrySearch
java实现二分查找,包含时间复杂度的计算
JAVA用递归和非递归的方法实现二分查找
在这个教程中,我们将深入研究二分查找算法的工作原理,并提供一个Java示例来演示如何实现它。无论您是初学者还是有经验的Java开发者,通过学习这个算法,您将获得一个强大的搜索工具,有助于在大型有序数据集中快速...
二分查找的三种实现方式 分别是: while for 递归
while(low){ if(x==arr[mid]){ return mid; } else if(mid>0&&x[mid]){... else if(mid){//若前面没有判断,则当要查找数超过arr数组中最大值时出现死循环。 low=mid+1; mid=(low+high)/2; }
用java实现了二分查找,效率较高,思路清晰易懂。
二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 要求: 必须采用顺序存储结构。 必须按关键字大小有序排列。...
将二分法查找和快速排序集合在JavaApplet中,其中快速排序给输出中间过程,适合初学者观看。有问题可以联系本人,欢迎。
简单地实现了二分查找的可视化。界面很简单就包括两个部分:界面左侧是可视化查找部分,右侧是二分查找的代码。 程序的关键点主要有两点: 1. 如何在页面上表示出查找程序的运行过程。 2. 如何将排序程序的运行...
public class 二分查找 { 二分查找(int N,int M,int[]a){ int min = 0, max = 0,mid,temp; for(int i=0;i;i++){ if(min[i]) min=a[i]; max+=a[i]; } mid=(min+max)/2; temp=test(N,mid,a); while(min){ ...