美文网首页
简单的二分查找算法java实现

简单的二分查找算法java实现

作者: 良人与我 | 来源:发表于2019-01-18 14:30 被阅读2次

    一个二分查找的java实现,
    查找value 在 有序数组(由小到大)中的 下标。
    时间复杂度为 O(logn)

    /**
     * @author river
     * @date 2019/1/18 13:21
     **/
    public class BinarySearchDemon {
        /**
         * 简单的二分查找方法
         * @param nums 从小到大的有序数组
         * @param value 需要查找的value
         * @return 返回value在数组中的下标,没有返回 -1
         */
        public static int bSearch(int[] nums ,int value){
            int startIndex = 0;
            int lastIndex = nums.length -1;
            int middle ;
            do{
                 middle = (lastIndex + startIndex)/2;
                if(value == nums[middle] ){
                    return middle;
                }
                if(nums[middle] < value){
                    startIndex = middle + 1;
                }
                if(nums[middle] > value){
                    lastIndex = middle -1;
                }
    
            }while (startIndex <= lastIndex);
            return -1;
        }
    
        public static void main(String[] args) {
            int[] b = {1,12,32,43,55,56,57,60,69,80};
            System.out.println(BinarySearchDemon.bSearch(b,55));
        }
    }
    
    

    执行结果

    4

    相关文章

      网友评论

          本文标题:简单的二分查找算法java实现

          本文链接:https://www.haomeiwen.com/subject/hxlndqtx.html