折半查找
作者: 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推荐
作者:
Chris Wang
出处:
http://chriswang.cnblogs.com/
文章版权归本人所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。