java---二分查詢法
阿新 • • 發佈:2018-11-24
/** * 二分查詢法 * 注: 陣列元素必須有順序 * */ public class sort4 { public static void main(String[] args) { int [] arr ={1,2,3,4,5,6,7,8}; int a = binarySerarch(arr,7); // 從這些數中查詢7返回這個數字的索引 System.out.println(a); } private static int binarySerarch(int[] arr, int key) { int min = 0; // 最小的索引 int max = arr.length - 1; // 最大的索引 while(min<=max){ System.err.println("最大索引" + max + "---" + "最小索引:" + min); int mid = (min + max)/2; // 中間索引 int midVal = arr[mid]; // 中間索引的值 if (midVal<key) { // 猜小了 min = mid + 1; }else if(midVal>key) { max = mid-1; }else { return mid; } } return -1; } }