折半查找JAVA实现
2011-10-09 21:11
225 查看
程序说明笔者都写在注释里面了,思想很简单,但是写代码的时候还是要注意一些细节,比如特殊情况的处理,防止死循环等
本文出自 “老江北” 博客,转载请与作者联系!
package sixth; public class HalfSearch { /** * 这般查找 * @param array 要查找的数组,数组必须是有序的 * @param num 要查找的数 * @return 返回的是数组所在数组的索引 */ public int halfSearch(int[] array,int num){ //l表示低位游标,h表示高位游标,index指示之间位置的索引 int index,l=0,h=array.length; index=array.length/2; //先排除首位与尾位两个位置,这两个位置比较特殊,用折半查找需要特殊指出 if(num==array[0]) { return 0; } else if(num==array[array.length-1]) { return array.length-1; } //开始折半的循环,注意中断条件,防止死循环 while((l+1)!=h) { if(num==array[index]) { return index; } else if(num>array[index]) { l=index; index=(h+l)/2; } else { h=index; index=(h+l)/2; } } return -1; } public static void main(String[] args) { int count=100; int[]array = new int[100]; Tool.initArray(count, array); HalfSearch hs=new HalfSearch(); System.out.println(hs.halfSearch(array, 100)); } }
本文出自 “老江北” 博客,转载请与作者联系!
相关文章推荐
- java实现查找List集合中的最大值和最小值
- 二分查找过程、比较次数分析、java实现
- Java小例程------实现对象存入集合中、遍历、随机数做索引在集合中查找
- Java/Go实现——折半查找 二分查找
- 查找旋转数组的最小数字 JAVA实现
- 用堆排序实现查找最小的K个元素 java
- 树——平衡二叉树插入和查找的JAVA实现(2):增加删除方法
- Java 语言实现折半查找(二分查找)
- java实现二叉查找
- Java实现动态表查找--二叉排序树
- Java实现二分法查找数组中的元素
- java实现单链表的增加,删除,查找,打印
- java 实现递归查找数组中的重复数字
- Java实现-二分查找
- Java实现二分查找--非递归
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- java 数组实现哈希表的构建,查找,插入,删除
- Java-第十四章-带参的方法(二)-添加Search方法(),实现学生姓名查找
- 二分查找的实现---java版本
- java 利用Jframe实现查找鼠标点击的位置坐标