折半查找:是对有序表的查找
主要代码:
public static int findNumber(int a[], int key){ int low = 1; int high = a.length; int mid; while(low <= high){ mid = (low + high)/2; if(key == a[mid]) return mid; else if(key < a[mid]) high = mid -1; else low = mid +1; } return 0; }
完整代码:
package find; public class Find { static int a[] = {0,1,2,3,4,5,6,7,8,9}; public static void main(String[] args) { System.out.println(findNumber(a, 5)); } public static int findNumber(int a[], int key){ int low = 1; int high = a.length; int mid; while(low <= high){ mid = (low + high)/2; if(key == a[mid]) return mid; else if(key < a[mid]) high = mid -1; else low = mid +1; } return 0; } }