二分法查找数组中的元素(原创)

/**
 * 2018。7.30
 * 作者:小孟鱼
 * 功能:二分查找(前提是是一个有序数组)
 */
package com.test4;

public class Shuzuerfenchazhao {
            public static void main(String[] args) {
            int arr[]= {1,2,3,5,89,100,214};
            BinaryFind bf=new BinaryFind();
            bf.find(0, arr.length-1, 5, arr);
            
            }
}
class BinaryFind
{

    public void find(int leftIndex,int rightIndex,int val, int arr[]) {
         //首先找到中间的这个数
         int midIndex=(rightIndex+leftIndex)/2;
        int midVal=arr[midIndex];
        if(rightIndex>=leftIndex) {
         
        //如果要找的数比midIndex小
        if(midVal>val) {
            //在arr左边数中找
            find(leftIndex,midIndex-1,val,arr);
        }else if(midVal         {
            //在arr的右边的数找
            find(midIndex,rightIndex+1,val,arr);
        }else if(midVal==val) 
        {
            System.out.println("找到下标"+midIndex);
        }
     }
 }
}

你可能感兴趣的:(二分法查找数组中的元素(原创))