折半查找0~100的数

在0到100中查找需要的数,找到则输出数组下标;找不到则返回-1.

算法要求:已排序的数组序列。

算法思想:

       (1)若low>height,返回-1;

       (2)若n<1或n>100,则输出”超出范围“。

       (3)判断要查找的数n与mid的大小,若n>mid,则令low=mid+1。

       (4)若n<mid,则令height=mid-1。

       (5)若n=mid,则输出。

代码段:

import java.util.*;
public class Zheban {
public int sun(int low,int height,int n) {
int []b=new int[100];
for(int i=1;i<b.length;i++) {
b[i]=i;
}
int mid=(low+height)/2;
if(low>height) {
return -1;
}
else if(n>99||n<1){
System.out.println("该数据不在数组序列中");
}
else if(n<b[mid]&&n>b[low]){
height=mid-1;
return sun(low,height,n);
}
else if(n>b[mid]) {
low=mid+1;
return sun(low,height,n);
}
else if(n==b[mid]){
System.out.println(n+"的顺序为"+mid);
}

return -1;
}
public static void main(String []args) {
System.out.println("请输入需要查找的数");
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int low=0;
int height=100;
Zheban a=new Zheban();
a.sun(low,height,n);
}
}

      

原文地址:https://www.cnblogs.com/mianyang0902/p/10625515.html