二分查找
来源:互联网 发布:2017年伤感网络歌曲 编辑:程序博客网 时间:2024/06/08 09:50
public class BinarySearch { public static void main(String[] args) { int[] arr = {0,1,2,3,4,5,6,7,8,9}; Integer pos = Iterative_BinarySearch(arr,11,0,arr.length-1); if(pos==null){ System.out.println("不存在的"); }else{ System.out.println("找到,位置是:"+pos); } ///////////////////////////////////////// int[] arr2 = {0,1,2,3,4,5,6,7,8,9}; Integer pos2 = Recursive_BinarySearch(arr2,3,0,arr.length-1); if(pos2==null){ System.out.println("不存在的"); }else{ System.out.println("找到,位置是:"+pos2); } } //迭代版本的二分查找: public static Integer Iterative_BinarySearch(int[] arr,int value,int low,int high){ while(low<=high){ int mid = (low+high)/2; if(arr[mid]==value){ return mid; }else{ if(arr[mid]<value){ low = mid+1; }else{ high = mid-1; } } } return null; } //递归版本的二分查找: public static Integer Recursive_BinarySearch(int[] arr,int value,int low,int high){ if(low>high){ return null; } int mid = (low+high)/2; if(arr[mid]==value){ return mid; }else{ if(arr[mid]<value){ return Recursive_BinarySearch(arr,value,mid+1,high); }else{ return Recursive_BinarySearch(arr,value,low,mid-1); } } }}
阅读全文
5 0