折半查找


作者: 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推荐



posted @ 2008-10-20 22:15  Chris Wang  阅读(378)  评论(1编辑  收藏  举报