【Java】 二分查找算法(递归+循环)
1. 二分查找算法――循环 public static int search ( int [] arr , int k ){ int start = 0 ; int end = arr . length - 1 ; while ( start <= end ){ int mid =( start + end )/ 2 ; if ( arr [ mid ]== k ) return mid ; else if ( arr [ mid ]> k ) end = mid - 1 ; else start = mid + 1 ; } return - 1 ; } 2. 二分查找算法――递归 public static int search2 ( int [] arr , int k , int start , int end ){ if ( start > end ) return - 1 ; int mid =( start + end )/ 2 ; if ( arr [ mid ]== k ) return mid ; else if ( arr [ mid ]> k ){ return search2 ( arr , k , start , mid - 1 ); } else { return search2 ( arr , k , mid + 1 , end ); } } 测试: