Download - Presentacion Algoritmo heapsort
Heap Sort
Algoritmo de Ordenamiento
INTEGRANTES.• SERGIO ORMEÑO• JONATHAN GARCIA• EDUARDO LEIVA
Conjunto finito de nodos el cual puede ser
vacío o tener un par de árboles llamados
izquierdo y derecho. Cuando un nodo no
tiene hijos se le llama hoja o nodo terminal.
Árbol Binario
Árbol Binario Completo
Es aquel que en todos los nodos, solo tienen 2 ocero descendientes.
Este head o montículo es un árbol binario donde todos los padres son
mayores que sus hijos.
Este árbol binario tiene que ser completo, es decir, que debe tener todos sus
niveles llenos, excepto el ultimo y en este ultimo nivel todos los hijos esta a
un mismo lado ( por ejemplo a la izquierda).
¿Qué es un Head?
Es un algoritmo de ordenación
basado en comparaciones de
elementos que utiliza un Heap para
ordenarlos.
También podemos decir que es un
algoritmo de ordenación no
recursivo, no estable , con
complejidad computacional.
¿Qué es Heap Sort?
Este algoritmo consiste en almacenar todos los elementos del vector a
ordenar en un montículo y luego extraer el nodo que queda como raíz en
sucesivas iteraciones obteniendo el conjunto ordenado. basa su
funcionamiento en una propiedad de los montículos, por la cual, la cima
siempre (depende de como se defina) contendrá el mayor o menor
elemento del montículo.
¿Cómo Funciona Heap Sort?
VENTAJAS
- La principal ventaja es que este
método funciona mas
efectivamente con datos
desordenados.
- Su desempeño es en promedio
tan bueno como el Quicksort y se
comporta mejor que este último
en los peores casos.
- No utiliza memoria adicional.
DESVENTAJAS
- No es estable, ya que se comporta
de manera ineficaz con datos del
mismo valor.
- Método mas complejo
Ventajas y Desventajas
Características Heap Sort
No recursivo:
Porque no usa métodos que se llamen a sí mismos, sino que usa sucesivas iteraciones para obtener el conjunto de nodos ordenados.
No estable
Ya que se comporta de manera poco eficaz con datos del mismo valor.
Con complejidad O(n log n).
Funcionamiento:
El árbol se llena de izquierda a derecha, lo que implica que si algún (os) nodo (s) no está (n) en el mismo nivel que el resto, éste (os) estará (n) entonces lo más a la izquierda posible del árbol.
El orden de ejecución para el peor caso es O (N · log(N)).
1. Se construye el montículo inicial a partir del arreglo original.
2. Se intercambia la raíz con el ultimo elemento del montículo.
3. El ultimo elemento queda ordenado.
4. El ultimo elemento se saca del montículo, no del arreglo.
5. Se restaura el montículo haciendo que el primer elemento baje a la posición que le
corresponde, si sus hijos son menores.
6. La raíz vuelve a ser el mayor del montículo.
7. Se repite el paso 2 hasta que quede un solo elemento en el montículo.
Algoritmo Lógico
º1
20 10 11 8 19 2 15 12 33 73
Ejemplo Algoritmo Heap Sort
Ordenación por montículos – Heap Sort
Ordenación por montículos – Heap Sort