`
GrantWoo
  • 浏览: 1468 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

二分查找法的Java实现

阅读更多


方法一:

/**<b><li>实现二分查找法</b>
     * 
     * <li>如果没有找到则返回-1
     * */
    public static int binaryFind(int []array,int value){

        int index = -1;//未查到目标值时的
        
        Arrays.sort(array);
        int len = array.length;
        int halft = len/2;
        int a = 0,b =len;
        while(true){
            if(value > array[halft]){
                a = halft;
                halft = (a+b)/2;
                if(a >= halft){
                    break;
                }
            }else if(value < array[halft]){
                b = halft;   
                halft = (a+b)/2;
                if(b <= halft){
                    break;
                }
            }else{
                index = halft;
                break;
            }
            
        }
       
        return index;
    }

 

方法二:

/**<b><li>实现二分查找法</b>
     * 
     * <li>如果没有找到则返回-1
     * */
    public static int binarySearch(int []array,int value){

        Arrays.sort(array);
        int low = 0;
        int hight = array.length-1;
        int middle = (low + hight)/2;

        while(low<=hight){
            middle = (low + hight)/2;
            
            if(value < array[middle]){
                hight = middle-1;
            }else if(value > array[middle]){
                low = middle +1;
            }else{
               return middle;
            }
        }
       
        return -1;
    }

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics