用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

JAVA 二分发查找方法的实现

2015-04-04 作者: java源代码大全举报

[java]代码库

/**
	 * 二分发查找方法的实现
	 * @param a		要查找的目标整型数组
	 * @param num	要查找的(整)数
	 * @return		查找到的结果(整数)
	 */
	public int binarySearch(int[] a, int num) {
		Arrays.sort(a); 			 //一定要排序后才能实现二分法查找
		int start = 0; 				 //开始元素的索引
		int end = a.length - 1; 	 //结束元素的索引(数组内元素的索引是当前长度小一位)
		int mid = (start + end) / 2; //中间元素的索引=(开始元素的索引+结束元素的索引)/2,这是死的所以写死没关系
		while(num!=a[mid]){			 //用while循环判断当要找的数字不是当前数组的中间元素时,继续查找
			if(num<a[mid]){ 		 //如果要找的数字小于当前数组的中间元素,即以中间索引的元素为分界
				end=mid-1;  		 //当前数组中的结束元素索引递减1
			}else{ 					 //如果要找的数字大于当前数组的中间元素
				start=mid+1; 		 //当前数组中的开始元素索引递增1
			}
			mid=(start + end) / 2;   //上面的田间判断完后,重新计算中间元素的索引
		}
		return a[mid]; //到这一步说明要找的数字已经找到了,所以返回这个数字
		/*总结:
		 * 将要查找的数组排序,将数组以中间元素为分隔成两组元素,如果中间元素就是要找的数则返回,
		 * 如果不是则判断是否比中间元素大,大则分到右手边的数组,小则分到左手边的数组,
		 * 分完后要以当前数组为主,重新分配开始索引,中间索引和结束索引,
		 * 以此类推以循环为条件最终得到要查找的数。
		 * */
	}//源代码片段来自云代码http://yuncode.net
			


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...