使用二分查找法,查找一个有序的int[]中的某个数,并返回下标位置,如果不存在返回-1

 1 public class Test2 {
 2      static int Ef(int[] arr,int ed){
 3          int left = 0;
 4          int right = arr.length-1;
 5          while(left <= right){
 6              int tmp = (left+right)/2;
 7              if(arr[tmp] > ed){
 8                  right = tmp-1;
 9              }else if(arr[tmp] < ed){
10                  left = tmp + 1;
11              }else{
12                  return tmp;
13              }
14          }
15          return -1;
16      }
17     public static void main(String[] args) {
18         int[] arr = {1,2,3,4,8,10,59};
19         int ed = 59;   //这是想要找下标的数字
20         int back = Ef(arr, ed);
21         if(back==-1){
22             System.out.println("数组中不存在该数");
23         }else{
24             System.out.println(ed+"的下标:"+back);
25         }
26 
27     }
28 }

 

posted @ 2020-11-27 17:28  想当好程序员的骚年  阅读(337)  评论(0编辑  收藏  举报