java 实现二分查找法
2013-01-15 17:17
337 查看
/** * 二分查找又称折半查找,它是一种效率较高的查找方法。 【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。 * @author Administrator * */ public class BinarySearch { public static void main(String[] args) { int[] src = new int[] {1, 3, 5, 7, 8, 9}; System.out.println(binarySearch(src, 3)); System.out.println(binarySearch(src,3,0,src.length-1)); } /** * * 二分查找算法 * * * * @param srcArray * 有序数组 * * @param des * 查找元素 * * @return des的数组下标,没找到返回-1 */ public static int binarySearch(int[] srcArray, int des){ int low = 0; int high = srcArray.length-1; while(low <= high) { int middle = (low + high)/2; if(des == srcArray[middle]) { return middle; }else if(des <srcArray[middle]) { high = middle - 1; }else { low = middle + 1; } } return -1; } /** *二分查找特定整数在整型数组中的位置(递归) *@paramdataset *@paramdata *@parambeginIndex *@paramendIndex *@returnindex */ public static int binarySearch(int[] dataset,int data,int beginIndex,int endIndex){ int midIndex = (beginIndex+endIndex)/2; if(data <dataset[beginIndex]||data>dataset[endIndex]||beginIndex>endIndex){ return -1; } if(data <dataset[midIndex]){ return binarySearch(dataset,data,beginIndex,midIndex-1); }else if(data>dataset[midIndex]){ return binarySearch(dataset,data,midIndex+1,endIndex); }else { return midIndex; } } }
相关文章推荐
- 【Java】二分查找、插值查找、斐波那契查找的实现,及分析
- Java实现二分查找
- Java实现折半查找(二分查找)的递归和非递归算法
- Java实现二分查找的变种
- java 之 二分查找实现
- c++/java/python 实现二分查找
- java实现的选择排序、冒泡排序、二分查找
- Java实现二分查找
- java实现查找算法——折半查找(二分查找)
- 二分查找java实现
- 二分查找递归和非递归(java实现)
- JAVA实现二分查找
- Java实现二分查找--非递归
- Java实现二分查找
- Java实现二分查找
- java cpp py 实现 二分查找,如果没查找到,显示离代查找值最近的值
- java实现顺序,二分,分块查找
- java 二分查找算法实现
- java实现二分查找
- 二分查找 java递归和非递归实现