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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冬冬宋 中级黑马   /  2016-8-12 00:27  /  383 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

[AppleScript] 纯文本查看 复制代码
package com.heima.array;

public class Demo_Biinary {

	/**
	 * * 数组高级二分查找代码
	 */
	public static void main(String[] args) {
		int [] arr = {11,22,33,44,55,66,77,88,99};
		System.out.println(getIndex(arr,25));
	}
	//数组高级查找之二分法;
	/*
	 * 分析:
	 * 	1、明确参数列表;int[] arr,vaule;
	 *  2、明确返回值类型
	 * */
	public static int getIndex(int [] arr,int vaule){
		int min = 0;	//定义最小索引
		int max = arr.length-1;//定义最大索引值
		int mid =(min+max)/2;//定义中间索引值
		while(arr[mid] != vaule){
			if(arr[mid]<vaule){
				min = mid+1;//这里啊,你是有病啊,当传入的值比中间值还小时肯定是,是再从中间值的下一个值往后找啊
			}else if(arr[mid]>vaule){
				max = mid - 1;
			}
			mid =(max+min)/2;
		
		if(min>max){
			return -1;
		}
		}
		return mid;
	}

}

2 个回复

倒序浏览
对二分查找法还是有点懵,不太好记
回复 使用道具 举报
{:2_43:}   好厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马