算法 二分查找

package com.cn.find;

public class BinaryFind {
    /*
     * 项目名称:二分查找 ;
     * 项目要求:用JAVA对数组进行查找,并运用快速查找算法;
     * 作者:Sevck;
     */
    public void find(int leftIndex, int rightIndex, int val, int arr[]) {
        // 首先找到中间的数
        int midIndex = (leftIndex + rightIndex) / 2;
        int midval = arr[midIndex];
        // 如果要找的数比midval大
        if (rightIndex >= leftIndex) {
            if (midval > val) {
                // 在arr左边数中找
                find(leftIndex, midIndex - 1, val, arr);
            } else if (midval < val) {
                // 在arr右边数中找
                find(midIndex + 1, rightIndex, val, arr);
            } else if (midval == val) {
                System.out.println("找到下标:" + midIndex);
            }
        }
    }

    public static void main(String[] args) {
        int arr[] = { 2, 5, 7, 12, 55 };
        BinaryFind bf = new BinaryFind();
        bf.find(0, arr.length-1, 55, arr);
    }
}
原文地址:https://www.cnblogs.com/bksqmy/p/4563881.html