一半一半找。
import math;
def bS(A, l, h, key):
if l> h:
return -1;
m = l+math.floor((h-l)/2);
if A[m] == key:
return m;
return bS(A,m+1, h, key) if key>A[m] else bS(A, l, m-1, key);
Not recursive version:
import math;
def bS(A, key):
l = 0;
h =len(A) - 1;
while (l<= h):
m = l+math.floor((h-l)/2);
if(A[m] == key):
return m;
if(key<A[m]):
h = m-1;
else:
l = m+1;
return -1;