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语言
猜你喜欢
转载自blog.csdn.net/aa792978017/article/details/80679685
今日推荐
周排行