二分法的应用

package com.atguigu.java;

public class ArrayTest2 {    
    
    public static void main(String[] args){        
        
        int[] arr1 = {-1,5,8,9,15,47,68,94};       //必须有序
        int dest = 5;
        int head = 0;
        int end = arr1.length - 1;
        boolean isFlag = true; 
        
        while(head <= end){                      //要取等号
            int middle = (head + end)/2;            
            if(dest == arr1[middle]){
                System.out.println("找到了。位置为:" + middle);
                isFlag = false;
                break;                
            }else if(dest < arr1[middle]){
                end = middle - 1;
            }else{
                head = middle + 1;
            }    
        }
        
        if(isFlag == true){
            System.out.println("找不到这个数");
        }
    
    }
        
}
        

 

posted @ 2021-01-31 00:49  pilipalala  阅读(56)  评论(0)    收藏  举报