算法描述:
遍历有序数组查找目标。
始终将数组A的n个元素分成个数基本相同的两部分,取a【n/2】与x比较,若相等则终止;若“<”则在数组左半部看作数组A搜索x;若“>”则在数组右半部看作数组A搜索x。
代码:
/**
*binarySearch
*@paramArray
*@paramX
*@return
*/
public int binarySearch (int [] Array, int X) {
int left = 0;
int right = Array.length -1;
while (right >= left) {
int middle = (right + left) / 2;
if (X == Array [middle]) {
return middle;
}
if (X > Array [middle]) {
left = middle + 1 ;
} else {
right = middle - 1;
}
}
return -1;
}