You are on page 1of 2

/home/pablo/Dropbox/02 - Docencia/Paradigmas de Programación/code/python/BS.

py

1 def binary_search(A,x):
2 """ busqueda en una lista ordenada
3 A: la lista ordenada
4 x: lo que queremos buscar
5 """
6 i = 0
7 j = len(A) - 1
8 while i <= j:
9 m = (i+j)/2
10 if x == A[m]:
11 return True
12 elif x < A[m]:
13 j = m - 1
14 else:
15 i = m + 1
16 return False
17
18 def binary_search2(A,x):
19 i = 0
20 j = len(A) - 1
21 while i < j:
22 m = (i+j)/2
23 if x > A[m]:
24 i = m + 1
25 else:
26 j = m
27 return x == A[i]
28
29 def binary_search3(A,x):
30 return bsearch(A, x, 0, len(A)-1)
31
32 def bsearch(A,x,i,j):
33 if i == j:
34 return x == A[i]
35 else:
36 m = (i+j)/2
37 if x > A[m]:
38 return bsearch(A, x, m+1, j)
39 else:
40 return bsearch(A, x, i, m)
41
42 def binary_search_g(A, x, comp = cmp):
43 i = 0
44 j = len(A) - 1
45 while i <= j:

1 of 2 02/21/2018 10:10 PM
/home/pablo/Dropbox/02 - Docencia/Paradigmas de Programación/code/python/BS.py

46 m = (i+j)/2
47 if comp(x, A[m]) == 0:
48 return True
49 elif comp(x, A[m]) < 0:
50 j = m - 1
51 else:
52 i = m + 1
53 return False
54

2 of 2 02/21/2018 10:10 PM

You might also like