import java.util.Scanner;
//递归二分查找
public class Re5 {
public static void main(String args[]){
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字 n ,用于建立一个长度为n的随机数组");
int n = input.nextInt();
int[] arr = new int[n];
for(int i = 0;i < arr.length;++i){
arr[i] =(int)( Math.random()*100);
}
System.out.println("随机数组元素依次为:");
for(int x: arr){
System.out.print(x + " ");
}
System.out.println();
System.out.println("请输入你要查找的元素:");
int key = input.nextInt();
if(recurisiveBinarySearch(arr,key,0,arr.length-1) != -1)
System.out.println("数组存在该元素,该元素下标为:" +
(recurisiveBinarySearch(arr,key,0,arr.length-1)));
else{
System.out.println("不存在该元素");
}
}
public static int recurisiveBinarySearch(int[] arr, int key,int low,int high){
int mid = (low + high)/2;
if(low > high) return -1;
if(key > arr[mid]){
return recurisiveBinarySearch(arr,key,mid+1,high);
}
else if(key < arr[mid]){
return recurisiveBinarySearch(arr,key,low,mid-1);
}else if(key == arr[mid]) return mid;
return -1;
}
}
递归递归实现二分查找/java语言
最新推荐文章于 2023-02-25 10:15:42 发布