java基础之二分法查找

package p;

public class NumberSearch {

/**
* @param args
* 二分查找法
*/
public static void main(String[] args) {

int[] arr = new int[] { 12, 23, 34, 45, 56, 67, 77, 89, 90 };
System.out.println(NumberSearch.NumSearch(arr, 12));
System.out.println(NumSearch(arr, 45));
System.out.println(NumSearch(arr, 67));
System.out.println(NumSearch(arr, 89));
System.out.println(NumSearch(arr, 99));
}

public static int NumSearch(int arr[], int key) {
int start = 0;
int end = arr.length - 1;
while (start <= end) {
int middle = (start + end) / 2;
if (key < arr[middle]) {
end = middle - 1;
} else if (key > arr[middle]) {
start = middle + 1;
} else {
return middle;
}
}
return -1;
}

}

原文地址:https://www.cnblogs.com/netlws/p/8530234.html