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 o
cero 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
Presentacion Algoritmo heapsort

Presentacion Algoritmo heapsort

  • 1.
    Heap Sort Algoritmo deOrdenamiento INTEGRANTES. • SERGIO ORMEÑO • JONATHAN GARCIA • EDUARDO LEIVA
  • 2.
    Conjunto finito denodos 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 o cero descendientes.
  • 3.
    Este head omontí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?
  • 4.
    Es un algoritmode 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?
  • 5.
    Este algoritmo consisteen 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?
  • 6.
    VENTAJAS - La principalventaja 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
  • 7.
    Características Heap Sort Norecursivo: 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)).
  • 8.
    1. Se construyeel 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
  • 9.
    20 10 118 19 2 15 12 33 73 Ejemplo Algoritmo Heap Sort
  • 10.
  • 11.