SlideShare una empresa de Scribd logo
1 de 13
INTEGRANTES.
SERGIO CORTINA BASSA
NILSON ESPITIA HERNANDEZ
ELIZABETH MORANTE BULA
JOSE SOLORZANO SUAREZ
Árbol Binario
                         
 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 Completo

                           Es aquel que en todos los nodos, solo
                           tienen 2 o cero descendientes.
¿Qué es un Head?
                         
 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 Heap Sort?

 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.
¿Cómo Funciona 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.
Ventajas y Desventajas

                               
             VENTAJAS                         DESVENTAJAS

-   La principal ventaja es que este
    método funciona mas              - No es estable, ya que se
    efectivamente con datos            comporta de manera ineficaz
    desordenados.                      con datos del mismo valor.

-   Su desempeño es en promedio     - Método mas complejo
    tan bueno como el Quicksort y
    se comporta mejor que este
    último en los peores casos.

-   No utiliza memoria adicional.
Características Heap Sort
                          
 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)), siendo N el tamaño de la
Algoritmo Lógico

                                     º1

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.
Ejemplo Algoritmo Heap Sort


3   9   2   15   12   33   20   10   11   8   1   7
Ordenación por montículos – Heap Sort


                
Ordenación por montículos – Heap Sort


                
COMPARACION ALGORITMOS DE ORDENAMIENTO
 ORDENAMIENTO                      VENTAJAS                              DESVENTAJAS                         ESTABILIDAD
ALGORITMO        Fácil de implementar                                   Muy lento                     No intercambia registros con
BURBUJA          No requiere memoria adicional                          Muchas comparaciones          claves iguales
                                                                        Muchos intercambios

ALGORITMO
INSERCIÓN

ALGORITMO DE
                 Fácil implementación
                 Requerimientos mínimos de memoria

                 Fácil de implementar
                                                                       Lento
                                                                        Numerosas comparaciones

                                                                        Lento
                                                                                                      No intercambia registros con
                                                                                                      claves iguales. Por lo tanto es
                                                                                                      estable
                                                                                                      Puede que haya algo de
SELECCIÓN        No requiere memoria adicional                          Realiza numerosas             discrepancia pero esta
                 Realiza pocos intercambios                             comparaciones                 implementación parece ser
                 Rendimiento constante: poca diferencia entre el peor                                 estable, puede verificar esto
                 y el mejor caso                                                                      ordenando un conjunto de
                                                                                                      datos que tenga un par de
                                                                                                      ellos con la misma clave, el
                                                                                                      orden relativo entre ellos es
                                                                                                      conservado, pero algunos
                                                                                                      autores dicen que no es
                                                                                                      estable.
ALGORITMO        Relativamente fácil de implementar.                    Realiza numerosas             Es inestable no mantiene el
SHAKE            No requiere memoria adicional                          comparaciones.                orden relativo de los
                                                                        Realiza numerosos             registros.
                                                                        intercambios.
ALGORITMO        No requiere memoria adicional.                         Es inestable no mantiene el   Es inestable no mantiene el
SHELL             Mejor rendimiento que el método de Inserción          orden relativo de los         orden relativo de los
                 clásico                                                registros.                    registros.

QUICK SORT       Muy rápido                                             Método mas complejo
                 No requiere memoria adicional.                         Implementación un poco
                                                                        más complicada
HEAP SORT        Su desempeño es en promedio tan bueno como el          Método mas complejo
                 Quicksort y se comporta mejor que este último en los
                 peores casos.


Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Listas
ListasListas
Listas
 
Método de Heapsort
Método de HeapsortMétodo de Heapsort
Método de Heapsort
 
Recursividad
RecursividadRecursividad
Recursividad
 
Heap sort
Heap sortHeap sort
Heap sort
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Ordenamiento en C++
Ordenamiento en C++Ordenamiento en C++
Ordenamiento en C++
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Método de ordenación por inserción directa
Método de ordenación por inserción directaMétodo de ordenación por inserción directa
Método de ordenación por inserción directa
 
Búsqueda secuencial en tabla ordenada
Búsqueda secuencial  en tabla ordenadaBúsqueda secuencial  en tabla ordenada
Búsqueda secuencial en tabla ordenada
 
Bucket sort
Bucket sortBucket sort
Bucket sort
 
Ordenamiento shell
Ordenamiento shellOrdenamiento shell
Ordenamiento shell
 
METODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTOMETODOS DE ORDENAMIENTO
METODOS DE ORDENAMIENTO
 
Metodos de-ordenamiento
Metodos de-ordenamientoMetodos de-ordenamiento
Metodos de-ordenamiento
 
Estructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafosEstructura de Datos - árboles y grafos
Estructura de Datos - árboles y grafos
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Heap sort (Monticulos)
Heap sort (Monticulos)Heap sort (Monticulos)
Heap sort (Monticulos)
 
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datosEstructura de datos - Unidad 1: Introducción a las estructuras de datos
Estructura de datos - Unidad 1: Introducción a las estructuras de datos
 
Algebra relacional
Algebra relacionalAlgebra relacional
Algebra relacional
 
Tablas Hash
Tablas HashTablas Hash
Tablas Hash
 

Heap sort

  • 1. INTEGRANTES. SERGIO CORTINA BASSA NILSON ESPITIA HERNANDEZ ELIZABETH MORANTE BULA JOSE SOLORZANO SUAREZ
  • 2. Árbol Binario   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 Completo Es aquel que en todos los nodos, solo tienen 2 o cero descendientes.
  • 3. ¿Qué es un Head?   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).
  • 4. ¿Qué es Heap Sort?  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.
  • 5. ¿Cómo Funciona 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.
  • 6. Ventajas y Desventajas  VENTAJAS DESVENTAJAS - La principal ventaja es que este método funciona mas - No es estable, ya que se efectivamente con datos comporta de manera ineficaz desordenados. con datos del mismo valor. - Su desempeño es en promedio - Método mas complejo tan bueno como el Quicksort y se comporta mejor que este último en los peores casos. - No utiliza memoria adicional.
  • 7. Características Heap Sort   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)), siendo N el tamaño de la
  • 8. Algoritmo Lógico º1 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.
  • 9. Ejemplo Algoritmo Heap Sort 3 9 2 15 12 33 20 10 11 8 1 7
  • 10. Ordenación por montículos – Heap Sort 
  • 11. Ordenación por montículos – Heap Sort 
  • 12. COMPARACION ALGORITMOS DE ORDENAMIENTO ORDENAMIENTO VENTAJAS DESVENTAJAS ESTABILIDAD ALGORITMO Fácil de implementar Muy lento No intercambia registros con BURBUJA No requiere memoria adicional Muchas comparaciones claves iguales Muchos intercambios ALGORITMO INSERCIÓN ALGORITMO DE Fácil implementación Requerimientos mínimos de memoria Fácil de implementar  Lento Numerosas comparaciones Lento No intercambia registros con claves iguales. Por lo tanto es estable Puede que haya algo de SELECCIÓN No requiere memoria adicional Realiza numerosas discrepancia pero esta Realiza pocos intercambios comparaciones implementación parece ser Rendimiento constante: poca diferencia entre el peor estable, puede verificar esto y el mejor caso ordenando un conjunto de datos que tenga un par de ellos con la misma clave, el orden relativo entre ellos es conservado, pero algunos autores dicen que no es estable. ALGORITMO Relativamente fácil de implementar. Realiza numerosas Es inestable no mantiene el SHAKE No requiere memoria adicional comparaciones. orden relativo de los Realiza numerosos registros. intercambios. ALGORITMO No requiere memoria adicional. Es inestable no mantiene el Es inestable no mantiene el SHELL Mejor rendimiento que el método de Inserción orden relativo de los orden relativo de los clásico registros. registros. QUICK SORT Muy rápido Método mas complejo No requiere memoria adicional. Implementación un poco más complicada HEAP SORT Su desempeño es en promedio tan bueno como el Método mas complejo Quicksort y se comporta mejor que este último en los peores casos.
  • 13.