使用二叉树查找指定数字的下标

 /**
     * 使用二叉树查找指定数字的下标
     * @param findNum 被查找的数
     * @param nums     原数组
     * @return        成功返回指定下标,失败返回-1
     */
    public static int findByNumsIndex(int findNum, int[] nums) {
        Arrays.sort(nums);
        int left=0,right=nums.length-1,mid;
        while(left<=right){
            mid=left+(right-left)/2;//获取中间位置
            if(nums[mid]==findNum){
                return mid;
            }else if(findNum<nums[mid]){//根据中间数判断 如果被查询的数小于当前中间数下标位置的值,则在前半区找
                right=mid-1;
            }else{//如果被查询的数大于当前中间数下标位置的值,则在后半区找      
                left=mid+1;
            }
        }
        return -1;
    }

 

posted @ 2020-09-17 15:04  阿_闯  阅读(270)  评论(0编辑  收藏  举报