heapsort

13
Análisis de Algoritmos “HeapSort” Pablo Rojas, Jonathan Higuera, Néstor Díaz, Danilo Henríquez Profesora Pilar Pardo 05/06/2014

Upload: jonathan-higuera

Post on 05-Jul-2015

153 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Heapsort

Análisis de Algoritmos“HeapSort”

Pablo Rojas, Jonathan Higuera, Néstor Díaz, Danilo HenríquezProfesora Pilar Pardo

05/06/2014

Page 2: Heapsort

• ¿Qué es un HeapSort?

• El termino “Heap” o montículo es un árbol Binariodonde todos los padres son mayores que su hijos.

• Un HeapSort es un algoritmo de ordenamiento queutiliza un “Heap” para ordenarlos.

Page 3: Heapsort

• Un árbol es una estructura de datos o conjuntofinito el cual puede ser vacío o tener un par dearboles llamados izquierdo y derecho.

• Cuando un nodo no tiene hijos se le denomina“hojas” o “nodo terminal”.

Arboles Binarios

Page 4: Heapsort
Page 5: Heapsort

Podemos decir que es un algoritmo de ordenamiento norecursivo, no estable y con complejidad computacional.

Para representar los enlaces con los hijos se utilizan punteros.

El árbol vacío se representará con un puntero nulo.

Un árbol es una estructura no secuencial.

Page 6: Heapsort

• Este algoritmo consiste en almacenar todos los elementos delvector a ordenar en un montículo y luego extraer el nodo quequeda como raíz en sucesivas iteraciones obteniendo elconjunto ordenado. Su funcionamiento se basa en unapropiedad de los montículos, por la cual la cima siempre(depende de como se defina) contendrá el mayor o menorelemento del montículo.

Funcionamiento

Page 7: Heapsort

• Mejor Caso: 0(n)

• Caso Promedio: 0(n^2)

• Peor Caso: 0(N log (N))

Page 8: Heapsort

La principal ventaja es que funciona mas efectivamente con datos desordenados.

Su desempeño es en promedio tan bueno como el quicksort y se comporta mejor que este ultimo en los peores casos.

No utiliza memoria adicional

Page 9: Heapsort

No es estable, ya que se comporta de manera muy ineficaz con datos del mismo valor.

Es un método muy complejo.

Page 10: Heapsort

• En base a la figura anterior el recorrido Pre-orden actuaria de la siguiente forma:2, 7, 2, 6, 5, 11, 5, 9 y 4.

En este tipo de recorrido se realiza cierta acciónsobre el nodo actual y posteriormente se trata elsubárbol izquierdo y cuando se haya concluido, elsubárbol derecho. Otra forma para entender elrecorrido con este método seria seguir el orden:nodo raíz, nodo izquierda, nodo derecha.

Page 11: Heapsort

• En base a la figura anterior el recorrido Post-orden actuaria de la siguiente forma:2, 5, 11, 6, 7, 4, 9, 5 y 2.

El recorrido “post-orden” lo recorre de la siguientemanera, viaje a través del árbol binario desplegando elcontenido en el nodo izquierdo después la raíz yfinalmente viaja a través del nodo derecho.otra forma para entender el recorrido con este métodoseria seguir el orden: nodo izquierda, nodo derecha,nodo raíz.

Page 12: Heapsort

En base a la figura anterior el recorrido In-orden actuaria de la siguiente forma:2, 7, 5, 6, 11, 2, 5, 4, 9.

El Recorrido “In-Orden” lo recorre de la siguientemanera, viaje a través del Árbol Binariodesplegando el Contenido en el Nodo Izquierdodespués el Nodo Derecho y finalmente viaja através de la Raíz. Otra forma para entender elrecorrido con este método seria seguir el orden:nodo izquierda, nodo raíz, nodo derecha.

Page 13: Heapsort

Gracias Por Su Atención