Sunteți pe pagina 1din 38

Mtodos de ordenamiento

UNIDAD III
Algoritmos de ordenacin y bsqueda.

OBJETIVOS ESPECFICOS
Describir el funcionamiento de los algoritmos de ordenacin: Burbuja, burbuja mejorada, insercin, seleccin, shell y Mezcla. Describir el funcionamiento de los algoritmos de bsqueda secuencial y bsqueda binaria. Comprender el concepto de complejidad algortmica.

OBJETIVOS ESPECFICOS
Determinar la complejidad de los algoritmos de ordenacin: Burbuja, burbuja mejorada, insercin, seleccin, shell y mezcla. Determinar la complejidad de los algoritmos de bsqueda secuencial y binaria. Implementar programas de aplicacin.

BIBLIOGRAFA RECOMENDADA
Cair Osvaldo & Guardati Silvia. Estructuras de Datos. 2001. Editorial Mc Graw Hill. Pp 319-384. Aguilar Joyanes. Programacin en C++. 2000. Editorial Mc Graw Hill. Pp 247-262. Zimerman Heilleman. Estructuras de Datos. Editorial Mc Graw Hill. Pp 19-37.

BIBLIOGRAFA RECOMENDADA
Centeno M. & Martnez J. Inteligencia Artificial. 2003. Tema 2. Dale & Nell. Estructuras de Datos. Mcgraw Hill. Pp 529-575.

CONTENIDO
Introduccin. Ordenar. Concepto. Clasificacin de los mtodos de ordenacin.

Ordenacin interna. Mtodos directos. Ordenacin por burbuja.

CONTENIDO
Ordenacin burbuja mejorada. Ordenacin por seleccin. Ordenacin por insercin. Mtodos logartmicos. Bsqueda. Bsqueda secuencial.

CONTENIDO
Bsqueda Binaria. Actividad 1. Recomendaciones. Errores ms frecuentes. Interrogantes. Preguntas.

INTRODUCCIN
Ordenar significa reagrupar o reorganizar un conjunto de datos u objetos en una secuencia especifica. Los procesos de ordenacin y bsqueda son muy frecuentes en nuestras vidas. La sociedad debe estar informada y por lo tanto buscar y recuperar informacin es ahora una necesidad.

INTRODUCCIN
La operacin de bsqueda para recuperar informacin normalmente se efecta sobre elementos ordenados.

ORDENAR
Significa permutar elementos de tal forma que los mismos queden de acuerdo con una distribucin preestablecida (Ascendente o descendente).

CLASIFICACIN DE LOS MTODOS DE ORDENACIN


Ordenacin interna (Arreglos) Ordenacin externa (Archivos)

ORDENACIN INTERNA
Mtodos directos (n2). Mtodos logartmicos (n*logn).

MTODOS DIRECTOS
Burbuja. Burbuja mejorada. Insercin. Seleccin.

ORDENACIN POR BURBUJA


Algoritmo Burbuja(A,n) Declarar Aux, i, j Comienzo i=0 Hacer mientras(i<n-1) Comienzo j=i+1 Hacer mientras(j<n) Comienzo Si (A[i]>A[j]) entonces Comienzo Aux=A[i], A[i]=A[j], A[j]=Aux Fin del condicional j=j+1

ORDENACIN POR BURBUJA


8 4 2 2 2 2 4 8 8 6 4 4 6 6 6 8 8 6 2 2 4 4 6 8

ORDENACIN BURBUJA MEJORADA


Inicio Algoritmo Burbuja2(A,n) Declarar i, j, Aux, sw i=0, sw=verdadero Comienzo Hacer mientras ((i<n-1) Y( sw=verdadero)) Comienzo j=0, sw=falso Hacer mientras (j<n-i-1) Comienzo If (A[j]>A[j+1]) entonces Comienzo sw=verdadero Aux=A[j], A[j]=A[j+1], A[j+1]=Aux Fin del condicional

ORDENACIN BURBUJA MEJORADA


8 4 4 4 4 2 4 8 6 6 2 4 6 6 8 2 6 6 2 2 2 8 8 8

ORDENACIN POR INSERCIN


Algoritmo Insercin(A,n) Declarar i, j, Aux Comienzo i=1 Hacer mientras (i<n) Comienzo j=i, Aux=A[i] Hacer mientras((j>0) Y (Aux<A[j-1])) Comienzo A[j]=A[j-1], j=j-1 Fin del ciclo Hacer - mientras A[j]=Aux i=i+1 Fin del ciclo Hacer - mientras

ORDENACIN POR INSERCIN


8 4 4 2 4 8 6 4 6 6 8 6 2 2 2 8

ORDENACIN POR SELECCIN


Algoritmo Seleccin(A,n) Declarar i, j, indimenor,Aux Comienzo i=0 Hacer mientras (i<n-1) Comienzo indimenor=i j=i+1 Hacer mientras(j<n) Comienzo Si (A[j]<A[indimenor]) entonces indimenor=j j=j+1 Fin del ciclo Hacer - mientras

ORDENACIN POR SELECCIN


8 2 4 4 6 6 2 8

ORDENACIN POR SHELL


Algoritmo Shell(A,n) Declarar salto, i, j, k, Aux Comienzo salto=n/2 Hacer mientras (salto>0) Comienzo i=salto Hacer mientras(i<n) Comienzo j=i-salto Hacer mientras(j>=0) Comienzo k=j+salto Si (A[k]>A[j]) entonces

ORDENACIN POR SHELL


8 6 6 2 2 2 4 4 2 6 6 4 6 8 8 8 4 6 2 2 4 4 8 8

ORDENACIN POR MEZCLA


Algoritmo Mezcla(a,b,c,m1,m2,num) Declarar salto, i, j, k Comienzo i=0, j=0, k=0 Hacer mientras ((i<m1) y (j<m2)) Comienzo Si (a[i]>b[j]) entonces Comienzo c[k]=b[j] j=j+1 Fin del Si En caso contrario c[k]=a[i] i=i+1

ORDENACIN POR MEZCLA


a 8 i=0 i=0 i=1 4 4 4 4 4 4 8 8 8 8 8 j=0 j=1 j=1 6 2 2 2 2 2 b 2 6 6 6 6 6 k=0 k=1 k=2 2 2 2 2 4 4 4 6 6 8 c

i=1
i=2

j=2
j=2

k=3
k=4

BSQUEDA
Es la operacin que permite recuperar datos previamente almacenados. El resultado puede ser xito, si se encuentra el elemento solicitado, o fracaso, en otro caso.

BSQUEDA
Internas. Externas.

BSQUEDAS INTERNAS
Secuencial o lineal. Binaria.

BSQUEDA SECUENCIAL
Algoritmo BusSecuencial(A,n) Declarar i, clave, sw, posicion Comienzo Escribir("Introduzca clave a buscar:") Leer (clave) sw=0 i=0 Hacer mientras (i<n) y (sw=0) Comienzo Si (A[i]=clave) entonces Comienzo sw=1 posicion=i Fin del condicional

BSQUEDA BINARIA
Algoritmo BusBinaria(A, bajo,alto, n) Declarar sw, posicion, i, clave, medio Comienzo Escribir("Introduzca clave a buscar:") Leer (clave) sw=0, i=0, bajo=0, alto=n-1 Hacer mientras (i<n) y (sw=0) Comienzo medio=(bajo+alto)/2 Si (A[medio]=clave) entonces Comienzo sw=1 posicion=i En caso contrario Si (A[medio]<clave) entonces

ACTIVIDAD 1
Realizar los ejercicios de la gua nmero dos (2).

RECOMENDACIONES
Utilice como herramientas para determinar la eficiencia de un programa el anlisis de algoritmo. Al trabajar en el diseo de un algoritmo es fundamental tener en cuenta dos factores crticos: Tiempo de procesamiento y Espacio de memoria ocupada.

ERRORES FRECUENTES DE PROGRAMACIN


Utilizar el siguiente segmento de instrucciones para codificar el algoritmo de bsqueda secuencia: for(int i=0; i<n; i++) if (A[i]==clave) return i; else return 1;

ERRORES FRECUENTES DE PROGRAMACIN


Emplear el algoritmo de bsqueda binaria sin que el arreglo este ordenado. Emplear el mtodo de ordenacin por mezcla sin antes ordenar las dos mitades del arreglo. Deficiencias al trabajar con trminos matemticos como sumatoria

INTERROGANTES
Los mtodos de ordenacin analizados hasta ahora pueden ser empleando en otro tipo de estructuras como los arreglos de registro o arreglos de estructuras? Cul de los mtodos de ordenacin visto es el ms eficiente y Cul el ms ineficiente? Cul de los mtodos de bsqueda visto es el ms eficiente y cul el ms ineficiente?

INTERROGANTES
Qu otros mtodos de ordenacin y bsqueda existen?

S-ar putea să vă placă și