import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("想输入多少个数?");
Scanner in = new Scanner(System.in);
int n;
n = in.nextInt();
System.out.println("请输入"+n+"个数:");
int []array = new int[n];
for (int i = 0; i < array.length; i++) {
array[i] = in.nextInt();
}
System.out.println("请输入查找范围");//以上为用户输入数组
int a;
int b;
a = in.nextInt();
b = in.nextInt();//(a,b)是查找的范围
for(int i=a;i<=b;i++) {
search(array,i,0,array.length-1);//(a,b)里的数逐一进行折半查找
}
}
//递归折半查找↓
public static int search(int array[],int key,int start, int end) {
if(start>end) {
return -1;//作循环出口,数据无用
}
int mid=(start+end)/2;
if(array[mid]==key) {
System.out.print(key+" ");//输出语句
return key;//作循环出口,数据无用
}
else if (array[mid]<key) {
search(array,key,mid+1,end);
return 0;//作循环出口,数据无用
}
else {
search(array,key,start,mid-1);
return 0;//作循环出口,数据无用
}
}
}
这是一次算法小作业。仅用于自己记录。