核心思想
:二分查詢。
演算法思想
:在升序陣列number是中,設定左右指標用於二分查詢特定值target,對於陣列中央特定值number[i]:
1) 若number[i] = target,存在。返回i即為所求;
2) 若number[i] < target,則在下標i的左側進行查詢;
3) 若number[i] > target,則在下標i的右側進行查詢。
Java示例程式碼
:
class
Solution
{
public
int
search
(
int
[] number,
int
target)
{
int
low =
0;
int high=
number
。length-
1
;
while
(low <= high) {
int
middle = (high + low) /
2
;
int
flag = number[middle];
if
(flag == target) {
return
middle;
}
else
if
(flag > target) { high = middle -
1
; }
else
{ low = middle +
1
; } }
return
-
1
; }}