Sesión 12 - Fund - Prog

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 21

FUNDAMENTOS DE PROGRAMACIÓN

UNIDAD II
Temas:
Métodos de Ordenación: Burbuja,
12
Inserción, Selección, Shell y Quicksort

Semana 12
2019 - I

Docente: Eduardo Reyes Rodriguez


LOGRO DE LA SESIÓN

Al término de la sesión de aprendizaje, el estudiante


diseña algoritmos utilizando métodos de ordenación
Burbuja, Inserción, Selección, Shell y Quicksort con el fin
de resolver problemas de ordenar elementos ya sea de
forma ascendente o descendente de forma clara y
ordenada.
RESPONDA LA SIGUIENTE PREGUNTA:

¿Qué entendemos por ordenar elementos?


¿Conocen algunos métodos de ordenamiento?
MÉTODO BURBUJA

• Haciendo analogía con las burbujas, las burbujas más livianas


tienden a subir hacia la superficie, mientras que las burbujas más
grandes se van al fondo.

• Imaginamos que los números menores ‘pesan menos’ y ‘suben a la


superficie’ como una burbuja.
¿QUÉ ES EL MÉTODO DE ORDENACIÓN BURBUJA?

Es un algoritmo que se aplica para poder


ordenar una cantidad de datos ya sea de
forma ascendente o descendente.

3 4
5 2 1

1 2 3 4 5
PROCEDIMIENTO:

• Ir comparando desde la posición 0 número tras número hasta


encontrar uno mayor, si éste es realmente el mayor de todo el
arreglo se llevará hasta la última posición, si no es así, será
reemplazado por uno mayor que él.

• Este procedimiento seguirá así hasta ordenar todas las


posiciones del arreglo.
EJEMPLO: MÉTODO BURBUJA

ALGORITMO
Posición
0 desde i ← 1 hasta n-1 hacer
desde j ← 0 hasta n-1-i hacer
1 si (num[j] > num[j+1]) entonces
aux ← num[j+1]
2 num[j+1] ← num[j]
num[j] ← aux
3 fin_si
fin_desde
4
fin_desde
CÓDIGO BURBUJA
¿DÓNDE SE APLICA?

• Ordenar sueldos de los empleados de menor a mayor


o viceversa.

• Ordenar números de menor a mayor o viceversa.


MÉTODO SELECCIÓN

Consiste en encontrar el menor de todos los elementos del


arreglo e intercambiarlo con el que se encuentra en la
primera posición, luego el segundo más pequeño y así
sucesivamente hasta ordenar el arreglo.
CÓDIGO SELECCIÓN
MÉTODO INSERCIÓN

Inicialmente se tiene un solo elemento, que obviamente es un conjunto


ordenado. Después, cuando hay k elementos ordenados de menor a
mayor, se toma el elemento k+1 y se compara con todos los elementos
ya ordenados, deteniéndose cuando se encuentra un elemento mayor.
En este punto se inserta el elemento k+1 debiendo desplazarse los
demás elementos.
CÓDIGO INSERCIÓN
MÉTODO SHELL
Es un ordenamiento de disminución incremental, nombrado así debido a
su inventor Donald Shell. Ordena subgrupos de elementos separados K
unidades (respecto de su posición en el arreglo) del arreglo original. El
valor K es llamado incremento. Después de que los primeros K
subgrupos han sido ordenados (generalmente utilizando inserción
directa), se escoge un nuevo valor de K más pequeño, y el arreglo es de
nuevo partido entre el nuevo conjunto de subgrupos. Cada uno de los
subgrupos mayores es ordenado y el proceso se repite de nuevo con un
valor más pequeño de K. En algún momento el valor de K llega a ser 1,
de tal manera que el subgrupo consiste de todo el arreglo ya casi
ordenado. Al principio del proceso se escoge la secuencia de
decrecimiento de incrementos; el último valor debe ser 1. "Es como
hacer un ordenamiento de burbuja pero comparando e intercambiando
elementos“. Cuando el incremento toma un valor de 1, todos los
elementos pasan a formar parte del subgrupo y se aplica inserción
directa. El método se basa en tomar como salto N/2 (siendo N el número
de elementos) y luego se va reduciendo a la mitad en cada repetición
hasta que el salto o distancia vale 1.
CÓDIGO SHELL
MÉTODO QUICKSORT
Es un algoritmo que permite, en promedio, ordenar n elementos en un tiempo
proporcional a n log n. Esta es probablemente la técnica de ordenamiento más
rápida conocida. Fue desarrollada por C. Antony R. Hoare en 1960. El algoritmo
original es recursivo, pero se utilizan versiones iterativas para mejorar su
rendimiento (los algoritmos recursivos son en general más lentos que los
iterativos, y consumen más recursos).
El algoritmo fundamental es el siguiente:
• Elegir un elemento de la lista de elementos a ordenar, al que llamaremos
pivote.
• Resituar los demás elementos de la lista a cada lado del pivote, de manera
que a un lado queden todos los menores que él, y al otro los mayores. En este
momento, el pivote ocupa exactamente el lugar que le corresponderá en la
lista ordenada.
• La lista queda separada en dos sublistas, una formada por los elementos a la
izquierda del pivote, y otra por los elementos a su derecha.
• Repetir este proceso de forma recursiva para cada sublista mientras éstas
contengan más de un elemento. Una vez terminado este proceso todos los
elementos estarán ordenados.
CÓDIGO QUICKSORT
VENTAJAS VS. DESVENTAJAS

ORDENAMIENTO VENTAJAS DESVENTAJAS

Muy lento
BURBUJA Algoritmo de fácil implementación
Realiza muchas comparaciones

Algoritmo de fácil implementación Muy lento


INSERCIÓN En listas semi-ordenadas realiza Realiza muchas comparaciones
menos comparaciones

Implementación complicada.
QUICKSORT Muy rápido
Usa muchos recursos

Realiza muchas comparaciones.


SELECCIÓN Algoritmo de fácil implementación.
Lento

Su división de datos hace posible el Relativamente lento en cantidades


SHELL
ordenamiento. mayores de datos.
REFERENCIAS BIBLIOGRÁFICAS

• LIZA ÁVILA.CÉSAR Algoritmos y su Codificación en C++.


(Volumen 2). Editorial CREASOFT, Trujillo-Perú. 1ra Edición Agosto
2002.
• JOYANES, Luis. Problemas de Metodología de la programación.
McGraw Hill, España, 1990 *
• DEITEL Y DEITEL Cómo Programar en C++. Pearson
Educación, México, 2004
• LANGSAM, AUGSTEIN, TENENBAUM. Estructuras de Datos con
C/C++, Prentice Hall, México, 1997.
Preguntas
FIN DE LA SESIÓN
Gracias....

También podría gustarte