A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yehai 中级黑马   /  2016-3-10 16:35  /  340 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package com.hai2;

public class Demo3 {

        public static void main(String[] args) {
                // TODO Auto-generated method stub
               
                int arr[]={2,5,7,12,25};
                BinaryFind bf=new BinaryFind();
        bf.find(0, arr.length-1, 7, arr);
        }

}

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

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马