Professional Documents
Culture Documents
Programa de la asignatura:
Estructura de datos
Unidad 2.
Ordenacin y bsqueda
Clave:
Ingeniera TSU
15142419 16142419
1
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
ndice
2
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Presentacin de la unidad
Los diferentes temas abordados en esta unidad tienen que ver con mtodos de ordenacin y
mtodos de datos; es decir, son temas que dan continuidad a los temas de la unidad anterior,
los cuales, como podrs recordar, se refieren a las diferentes estructuras de datos, a sus
algoritmos y representacin, as como a los mtodos asociados a cada estructura en
particular. Es decir, en tanto que en la primera unidad aprendiste a manejar las estructuras de
datos, en esta unidad aprenders a ordenar los datos, adems de realizar bsquedas.
A lo largo de la unidad revisars textos y realizars actividades, de modo que sers capaz de
realizar ejercicios de programacin donde apliques los distintos mtodos de ordenacin y de
bsqueda de datos. Estos ejercicios de programacin estarn relacionados con aplicaciones
reales.
Propsitos de la unidad
Competencia especfica
Ejecutar los mtodos de bsqueda y ordenacin para mejorar los tiempos de ejecucin de
programas mediante los algoritmos de programacin.
Temario de la unidad
2. Ordenacin y bsqueda
2.1 Mtodos de ordenacin
2.1.1. Mtodo de la burbuja
2.1.2. Mtodo de insercin
2.1.3. Mtodo de seleccin
2.1.4. Mtodo quicksort
2.1 Mtodos de bsqueda
3
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
2. Ordenacin y bsqueda
Esta unidad es sumamente interesante, ya que en ella podrs conocer y aprender a utilizar los
diferentes mtodos, tanto de ordenacin como de bsqueda de datos. Cada uno de estos
mtodos se basa en un algoritmo y ofrece ventajas y desventajas en cuanto a los otros
mtodos existentes; es decir, conocers diferentes opciones para ordenar y buscar datos, pero
sers t quien decida qu mtodo emplears, segn sea el caso y tu preferencia. En esta
unidad podrs complementar los temas vistos en la unidad anterior, puesto que en las
estructuras de datos que aprendiste a utilizar, ahora podrs ordenar dichos datos y,
posteriormente, realizar bsquedas bajo ciertos criterios. Esto significa que de nada servira
aprender slo el almacenamiento correcto de datos de forma estructurada si posteriormente no
se realizaran bsquedas de datos. Por ejemplo: es un desperdicio tener una excelente agenda
que almacene los datos de nuestros contactos o clientes, si posteriormente no puede buscar
datos de una forma ordenada o en orden alfabtico ascendente.
4
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Existen muchos mtodos de ordenacin, por lo que se debe prestar especial atencin en su
eleccin. Cmo saber cul es el mejor mtodo? La eficiencia es el factor que mide la calidad
y rendimiento de un mtodo. En el caso de la operacin de ordenacin, dos criterios se suelen
seguir a la hora de decidir qu mtodo de ordenacin es el ms eficiente:
Tiempo menor de ejecucin en computadora.
Menor nmero de instrucciones.
Para ampliar tu conocimiento acerca de los diferentes mtodos tanto de ordenacin como de
bsqueda, consulta a Joyanes/Zahonero (2012. pp. 430 - 451), y revisa los diferentes
ejemplos que ilustran estos mtodos.
Mtodo de brbuja
Este mtodo funciona revisando cada elemento de la lista de elementos que va a ser ordenada
con el siguiente elemento; luego, intercambian su posicin si estn en un orden inadecuado.
Es necesario revisar varias veces toda la lista hasta que no se necesiten ms intercambios, lo
cual significa que la lista est ordenada.
Este mtodo toma su nombre de la forma con la que suben los elementos durante los
intercambios, como si fueran pequeas "burbujas". Tambin es conocido como el mtodo del
intercambio directo debido a que slo usa comparaciones para operar elementos. Por ello,
es considerado un mtodo de comparacin, siendo el ms sencillo de implementar, aunque
desafortunadamente no es muy eficiente.
En Joyanes/Zahonero (2012, pp. 438 - 442) puedes consultar de forma ms amplia este
algoritmo, al que tambin se le conoce como ordenacin por hundimiento, debido al parecido
entre las burbujas del agua que se van al fondo del recipiente que las contiene.
5
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Mtodo de insercin
Este mtodo es similar al proceso tpico de ordenar tarjetas de nombres (cartas de una baraja)
por orden alfabtico, el cual consiste en insertar un nombre en su posicin correcta dentro de
una lista o archivo que ya est ordenado.
Joyanes (2010, pp. 368-370) muestra diferentes ejemplos que ilustran este mtodo de
ordenacin; y en su obra tambin encontrars algunos pseudocdigos y diagramas de flujo
que explican dicho mtodo.
6
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Mtodo de insercin.
Tomado de http://www.educacioninformatica.com
Mtodo de seleccin
La totalidad de la lista de llaves no ordenadas debe estar disponible para que nosotros
podamos seleccionar la llave con valor mnimo en esa lista. Sin embargo, la lista ordenada
podr ser puesta en la salida, a medida que avancemos.
En Joyanes (2010, pp. 370-373) puedes revisar diferentes ejemplos que ilustran este mtodo
de ordenacin, y encontrars tambin algunos pseudocdigos y diagramas de flujo que
explican dicho mtodo.
7
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Este algoritmo resulta un poco mejor que el de burbuja. En el caso de tener que ordenar un
vector de enteros, no visualizamos gran mejora, pero cuando hay que ordenar un vector de
estructuras ms complejas, la operacin intercambiar() sera ms difcil en este caso. Este
algoritmo realiza muchas menos operaciones intercambiar() que el de burbuja, por lo que lo
mejora en algo. Si sustituimos la lnea comentada con (!) por intercambiar(lista[i], lista[j]),
tendramos una versin del algoritmo de la burbuja (naturalmente eliminando el orden
intercambiar del final).
Otra desventaja de este algoritmo respecto a otros, como el de burbuja o de insercin directa,
es que no mejora su rendimiento cuando los datos ya estn ordenados o parcialmente
ordenados. Por ejemplo, en el caso de la ordenacin de burbuja, se requerira una nica
pasada para detectar que el vector ya est ordenado y finalizar; por su parte, en la ordenacin
por seleccin se realizaran el mismo nmero de pasadas, independientemente de si los datos
estn ordenados o no.
8
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
9
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Bsqueda secuencial
El algoritmo de bsqueda secuencial compara cada elemento del arreglo con la clave de
bsqueda. Dado que el arreglo no est en un orden prefijado, es probable que el elemento a
buscar pueda ser el primer elemento, el ltimo elemento, o cualquier otro. El programa tendr
que comparar la clave de bsqueda con, por lo menos, la mitad de los elementos del arreglo.
El mtodo de bsqueda lineal funcionar bien con arreglos pequeos o no ordenados. La
eficiencia de la bsqueda secuencial es mnima, y tiene complejidad lineal O(n). Consulta a
Joyanes/Zahonero (2010, pg. 442) para una breve y concisa explicacin de este mtodo de
bsqueda.
10
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Bsqueda binaria
11
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Hemos terminado de revisar los diferentes mtodos de bsqueda que existen. Es importante
conocer el funcionamiento de cada mtodo para aplicar el que mejor se adece a la situacin
planteada. Por lo tanto, sigue las indicaciones que a continuacin se te presentan.
Cierre de la unidad
12
Estructuras de datos
Unidad 2. Ordenacin y bsqueda
Todo eso lleva te lleva a saber que no es til almacenar informacin si sta no es ordenada y
posteriormente se realiza una bsqueda. Haciendo una analoga con una agenda telefnica,
generalmente se realiza el registro de la informacin en forma alfabtica ascendente porque
luego habr la necesidad de realizar la bsqueda de algn registro en particular. Con los
temas revisados en la asignatura Estructura de datos sers capaz de realizar programas
robustos, como puede ser una agenda telefnica que te permita ordenar los distintos datos, as
como realizar bsquedas eficientes.
Para saber ms
Existen diversas fuentes que puedes consultar para ampliar tus conocimientos. Aqu se
sugieren algunas:
En esta fuente podrs encontrar informacin de los temas abordados en esta unidad:
ordenacin y bsqueda. La pgina se puede consultar en lnea o puedes descargar el
documento en formato pdf.
http://web.ing.puc.cl/~iic1103/IIC1103/Inicio_files/Ordenacion%20y%20Busqueda.pdf
Esta fuente proporciona ejemplos reales que facilitan la comprensin de los diferentes
conceptos abordados en la unidad. Entre los diferentes temas que esta fuente ofrece, figuran
aquellos tratados en esta unidad, y existen vnculos que te llevarn a cada tema en particular.
http://www.itnuevolaredo.edu.mx/takeyas/Apuntes/Estructura%20de%20Datos/index.htm
Fuentes de consulta
13