算法描述:
遍历有序数组查找目标。
始终将数组A的n个元素分成个数基本相同的两部分,取a【n/2】与x比较,若相等则终止;若“<”则在数组左半部看作数组A搜索x;若“>”则在数组右半部看作数组A搜索x。
代码:
/**
*
binarySearch
*
@param
Array
*
@param
X
*
@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;
}