java 二分查找
2015-05-24 00:00
211 查看
摘要: java 二分查找 递归/非递归
/**
* Created by 737597978 on 2015/5/23.
*/
public class BinarySearch {
//常规循环方法
public static int binarySearch(int [] array,int key){
int low=0;
int high=array.length-1;
int mid;
while (low<=high){
mid=(low+high)/2;
if(array[mid]==key){
return mid;
}
if(array[mid]>key){
high=mid-1;
}else{
low=mid+1;
}
}
return -1;
}
//递归方式
public static int recursiveBinarySearch(int [] array,int low,int high ,int key){
if(low<=high){
int mid=(low+high)/2;
if(array[mid]==key){
return mid;
}else if(key>array[mid]){
recursiveBinarySearch(array,mid+1,high,key);
}else{
recursiveBinarySearch(array,low,mid-1,key);
}
}
return -1;
}
public static void main(String[] args) {
int [] test={1,2,3,5,19,20,23,49,50,51,60,89,100,123,124};
//int index=BinarySearch.binarySearch(test,49);
int index=BinarySearch.recursiveBinarySearch(test,0,test.length-1,49);
System.out.println(index);
}
}
/**
* Created by 737597978 on 2015/5/23.
*/
public class BinarySearch {
//常规循环方法
public static int binarySearch(int [] array,int key){
int low=0;
int high=array.length-1;
int mid;
while (low<=high){
mid=(low+high)/2;
if(array[mid]==key){
return mid;
}
if(array[mid]>key){
high=mid-1;
}else{
low=mid+1;
}
}
return -1;
}
//递归方式
public static int recursiveBinarySearch(int [] array,int low,int high ,int key){
if(low<=high){
int mid=(low+high)/2;
if(array[mid]==key){
return mid;
}else if(key>array[mid]){
recursiveBinarySearch(array,mid+1,high,key);
}else{
recursiveBinarySearch(array,low,mid-1,key);
}
}
return -1;
}
public static void main(String[] args) {
int [] test={1,2,3,5,19,20,23,49,50,51,60,89,100,123,124};
//int index=BinarySearch.binarySearch(test,49);
int index=BinarySearch.recursiveBinarySearch(test,0,test.length-1,49);
System.out.println(index);
}
}
相关文章推荐
- 二分查找递归和非递归(java实现)
- Java数组中的排序和二分查找
- java语言实现二分查找数据法
- 二分查找java代码
- leetcode解题之374. Guess Number Higher or Lower Java版 (猜数字大小二分查找)
- [LeetCode] Serch Insert Position (总结二分查找) Java version
- java中的 二分查找
- Java实现二分查找
- 二分查找 java实现
- Java实现二分查找
- java 实现二分查找
- 【java】二分查找 求下界 求上界
- 8、二分查找 JAVA实现
- java实现二分查找-两种方式
- Java数组与二分查找
- Java实现二分查找
- java二分查找
- 二分查找之Java实现
- 数据结构和算法设计专题之---二分查找(Java版)
- java 二分查找