package search; import java.util.Scanner; /* * 实现递归的折半查找 * 输入:一个升序数组A[0..n-1]和一个查找键K * 输出:一个数组元素的下标,该元素等于K;如果没有这样的元素,则返回-1 */ public class BinarySearchRec { int A[] = {1,2,3,4,5,6,7,8,9}; int left = 0; int right = A.length-1; int mid; int Search(int k){ while(left<=right){ mid = (left+right)/2; if(k==A[mid]){ return mid; } else if(k<A[mid]){ right = mid-1; Search(k); } else{ left = mid+1; Search(k); } } return -1; } public static void main(String[] args) { System.out.println("请输入你需要查找的键K的值:"); Scanner in = new Scanner(System.in); int k = in.nextInt(); in.close(); int tag =new BinarySearchRec().Search(k); if(tag==-1){ System.out.println("没找到!"); } else{ System.out.println(k+" 在数组中的位置为:"+tag); } } }