折半查找

来源:互联网 发布:现货软件 编辑:程序博客网 时间:2024/06/03 17:35

public class ZheBan {

    publicstatic void main(String[] args) {
       int[] nums = {1, 2, 3, 4, 5, 7};
       System.out.println("二分/折半查找到所在的数组下标:\n" + find(nums, 5));

      //find (expr1,expr2)expr2不能超过数组的最后一个数组下标值
    }

    privatestatic int find(int[] nums, int findNum) {
       int low = 0;
       int high = nums.length;


       while (low <= high) {

           int mid = (low + high) / 2;

           if (nums[mid] == findNum) {
               return mid;
           } else if (nums[mid] > findNum) {
               high = mid - 1;
           } else if (nums[mid] < findNum) {
               low = mid + 1;
           } else {
               return -1;
           }
       }
       return -1;
    }
}

原创粉丝点击