折半查找


作者: wangding263  链接: http://wangding263.javaeye.com/blog/255544  发表时间: 2008年10月20日

声明:本文系JavaEye网站发布的原创博客文章,未经作者书面许可,严禁任何网站转载本文,否则必将追究法律责任!

    通过折半查找的方法 进行查找元素的时候:必须要保证要查找的元素集合collection是有序的。然后想象改需要查找的集合是有头又尾的,头为top,尾bottom.先把要查找的目标元素target,同集合的中间元素mid进行比较,如果target>collection[mid]则表示,目标元素在集合的右半部分,否则在左半部分。然后重复这个过程.

 

   代码如下:

public class BiFind {
	// 假如data[]数组是从小到大的
	public static boolean find(int[] data, int target) {
		int top = 0;
		int bottom = data.length - 1;
		while (top <= bottom) {
			int mid = (top + bottom) / 2;
			if (target < data[mid]) {
				bottom = mid - 1;

			} else if (target>data[mid]) {
				top = mid + 1;

			} else {
				return true;

			}

		}

		return false;

	}

	public static void main(String[] args) {
		int[] data = new int[] { 1, 2, 3, 4, 5,5,5,5,6, 6, 6,11111 };
		System.out.println(find(data, 5));

	}
}

 

   



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



转载于:https://www.cnblogs.com/ChrisWang/archive/2008/10/20/1324996.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值