Está en la página 1de 4

1.

- #bsqueda binaria

def busqueda_binaria2(s, i, j, clave):


if i > j :
return 0
k = (i + j)/2
if clave == s[k] :
return k
k1 = busqueda_binaria2(s, i, k - 1, clave)
k2 = busqueda_binaria2(s, k + 1, j, clave)
return k1 + k2

print "LA RESPUESTA DE LA A : CUANDO LA CLAVE ESTA PRESENTE "


print busqueda_binaria2([1,3,5,7,9,11,13,15,17],0,8,15)
print "LA RESPUESTA DE LA A : CUANDO LA CLAVE NO ESTA PRESENTE "
print busqueda_binaria2([1,3,5,7,9,11,13,15,17],0,8,19)
print "LA RESPUESTA DE LA C : "
print busqueda_binaria2([1,3,5,7,9,11,13,15,17],0,8,17)
print busqueda_binaria2([1,3,5,7,9,11,13,15,17,19,21],0,8,11)
print busqueda_binaria2([1,2,3,4,5,6,7,8,9,10],0,8,8)

2.- #Clculo de una exponencial

def exp1(a, n) :
if n == 1 :
return a

m = n/2
return exp1(a, m)*exp1(a, n - m)

3.- #Clculo de una exponencial

def exp2(a, n) :
if n==1 :
return a
m = n/2
potencia = exp2(a, m)
potencia = potencia * potencia
if n%2==0 :
return potencia
else :
return potencia * a
4.- #Encuentra el mayor y menor valor de una lista

def mayor_menor (s, i, j):


if (i == j):
mayor = s[i]
menor = s[i]
return [mayor,menor]
m = (i + j)/2
r1 = mayor_menor(s, i, m)
r2 = mayor_menor (s, m + 1, j)
if (r1[0]> r2[0]):
mayor = r1[0]
else:

mayor = r2[0]
if (r1[1] > r2[1]):
menor = r2[1]
else:
menor = r1[1]
return [mayor,menor]

s = [2,4,3,7,8,9,1,5]
rpta = mayor_menor(s,0,len(s)-1)
print "mayor: ", rpta[0]
print "menor: ", rpta[1]

5.- #Encuentra el mayor y menor valor de una lista


def mayor_menor2 (s, i, j) :
if i == j :
mayor = s[i]
menor = s[i]
return [mayor,menor]
if j==(i+1) :
if s[i]>s[j] :
mayor = s[i]
menor = s[j]
else :
menor = s[i]
mayor = s[j]
return [mayor,menor]
m = (i + j)/2
r1=mayor_menor2 (s, i, m)
r2=mayor_menor2 (s, m + 1, j)

if r1[0] > r2[0] :


mayor = r1[0]
else :
mayor = r2[0]
if r1[1] > r2[1] :
menor = r2[1]
else :
menor = r1[1]
return [mayor,menor]

s = [8,4,6,33,21,2,61,41,23]
rpta = mayor_menor2(s, 0, len(s)-1)
print "mayor: ", rpta[0]
print "menor: ", rpta[1]

También podría gustarte