2. Analizamos el punto medio del segmento (el valor central), si es el valor buscado,
devolvemos el ndice del punto medio.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
4. Si el valor central es menor al buscado, podemos descartar el segmento que est
desde el punto medio hacia la izquierda.
Para sealar la porcin del segmento que se est analizando a cada paso, utilizaremos
dos variables ( izq y der ) que contienen la posicin de inicio y la posicin de fin del
segmento que se est considerando. De la misma manera usaremos la varible medio
para contener la posicin del punto medio del segmento.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Figura 8.1 Cmo funciona la bsqueda de un elemento dentro del array
#!/usr/bin/env python
# encoding: latin1
main()
Resultado: 0
Dame una lista ordenada ([[]] para terminar): [1, 3, 5]
Valor buscado?: 2
DEBUG: izq: 0 der: 2 medio: 1
DEBUG: izq: 0 der: 0 medio: 0
Resultado: -1
Dame una lista ordenada ([[]] para terminar): [1, 3, 5]
Valor buscado?: 3
DEBUG: izq: 0 der: 2 medio: 1
Resultado: 1
Dame una lista ordenada ([[]] para terminar): [1, 3, 5]
Valor buscado?: 5
DEBUG: izq: 0 der: 2 medio: 1
DEBUG: izq: 2 der: 2 medio: 2
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
Resultado: 2
Dame una lista ordenada ([[]] para terminar): [1, 3, 5]
Valor buscado?: 6
DEBUG: izq: 0 der: 2 medio: 1
DEBUG: izq: 2 der: 2 medio: 2
Resultado: -1
Dame una lista ordenada ([[]] para terminar): []
Valor buscado?: 0
Resultado: -1
Dame una lista ordenada ([[]] para terminar): [1]
Valor buscado?: 1
DEBUG: izq: 0 der: 0 medio: 0
Resultado: 0
Dame una lista ordenada ([[]] para terminar): [1]
Valor buscado?: 3
DEBUG: izq: 0 der: 0 medio: 0
Resultado: -1
Dame una lista ordenada ([[]] para terminar): [[]]
En cada paso el segmento se divide por la mitad y se desecha una de esas mitades, y en
cada paso se hace una comparacin con el valor buscado. Por lo tanto, la cantidad de
comparaciones que hacen con el valor buscado es aproximadamente igual a la cantidad
de pasos necesarios para llegar a un segmento de tamao 1. Veamos el caso ms
sencillo para razonar, y supongamos que la longitud de la lista es una potencia de 2, es
decir len(lista)= 2^k :
...
Vemos entonces que si lista es una lista ordenada, la bsqueda binaria es muchsimo
ms eficiente que la bsqueda lineal (por ejemplo, dado que 2^20 es aproximadamente
1.000.000, si lista tiene 1.000.000 de elementos, la bsqueda lineal sobre lista ser
proporcional a 1.000.000, y en promedio har unas 500.000 comparaciones, mientras
que la bsqueda binaria har como mximo 20 comparaciones).
Anterior Siguiente
8.4. Buscar sobre una lista ordenada 8.6. Resumen
Copyright (c) 2011-2014 Rosita Wachenchauzer, Margarita Manterola, Maximiliano Curia, Marcos Medrano,
Nicols Paez. La copia y redistribucin de esta pgina se permite bajo los trminos de la licencia Creative
Commons Atribucin - Compartir Obras Derivadas Igual 3.0 siempre que se conserve esta nota de copyright.
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
INDICE DE CONTENIDOS
1. Algunos conceptos bsicos
2. Programas sencillos
3. Funciones
4. Decisiones
5. Ms sobre ciclos
6. Cadenas de caracteres
7. Tuplas y listas
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
8.6. Resumen
8.7. Ejercicios
9. Diccionarios
14. Objetos
3.757
2006-2017 LibrosWeb.es Contacto Novedades Condiciones Privacidad
das online
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com
open in browser PRO version Are you a developer? Try out the HTML to PDF API pdfcrowd.com