java 二分查找

来源:互联网 发布:github for mac 教程 编辑:程序博客网 时间:2024/04/27 15:08
package 查找;public class BinarySearch {static int[] itns = new int[]{1,2,3,4,5,6,7,8,9,11,111,323,3443};//必须是有序的才可以public static void main(String[] args) {int num = binarySearch(itns,0,itns.length,324); //递归实现num = binarySearch_(itns,3443);//while 实现System.out.println(num);}/**  递归 * @param ints * @param low * @param high * @param key * @return */private static  int binarySearch(int[] ints,int low,int high,int key) {if(low>=high){return -1;}else{int midle = (low+high )/2;if(ints[midle]==key){return midle;}else if(ints[midle]<key){return binarySearch(ints,midle+1,high,key);}else{return binarySearch(ints,low,midle-1,key);}}}/**非递归 * @param ints * @param key * @return */private static int binarySearch_(int[] ints,int key){int midle = ints.length /2;int low=0,high=ints.length;while (low<high) {midle = (low+high) / 2;if(ints[midle] == key){return midle;}else if(ints[midle] < key){low = midle+1;}else if(ints[midle] > key){high = midle-1;}}return -1;}}

0 0
原创粉丝点击