heap sort

Upload: eber-eli-burga-campos

Post on 06-Mar-2016

212 views

Category:

Documents


0 download

DESCRIPTION

una pequeña descripción del método de ordenamiento mas un ejemplo

TRANSCRIPT

ContenidoHeapsort ------------------------------------------------------------------------------------------- 21. Que es heap -------------------------------------------------------------------------------- 22. Que es un heapsort----------------------------------------------------------------------- 23. Como funciona un Heapsort-------------------------------------------------------- 24. Ventajas y desventajas del Heapsort------------------------------------------- 35. Como llenar y construir un Heapsort------------------------------------------ 36. Interpretacin con Mtodo grafico--------------------------------------------- 47. Ejercicio de Aplicacin---------------------------------------------------------------- 7Conclusiones-------------------------------------------------------------------------------------- 8Bibliografa----------------------------------------------------------------------------------------- 9 Web Grafa----------------------------------------------------------------------------------------- 9

Heapsort1. Que es heapSe dice que un heap (montculo) es un rbol binario quasi-completo, donde los padres son mayores que los hijos. Tiene una propiedad que se denomina. Orden de montculo, y se habla de maximo-heaps o Minimo-heaps.Este rbol tiene que ser completo, es decir que todos sus niveles tienen que estar llenos acepto el ultimo, y en este ltimo nivel todos los hijos deben estar en un mismo lado. (Por ejemplo todos al lado izquierdo.)

El elemento mximo de un Max-heap se encuentra en la raz. Un heap de n elementos tiene altura

h = log2(n + 1).

O(n log)n).La complejidad del algoritmo de ordenacin por montculos es :

Su complejidad en todos los casos es la misma2. Que es un heapsortEl Heapsort es un mtodo de ordenamiento por seleccin tipo rbol que organiza los datos y la compara de tal forma que los nodos del nivel ms bajo estn ms a la izquierda posible y eso permite que al recorrer el camino desde la raz hacia las hojas los datos se encuentren en orden descendente y la informacin sea almacenada. Heapsort es un mtodo de ordenamiento no recursivo. Heapsort es un mtodo de ordenamiento no estable.

3. Como funciona un Heapsort

Este algoritmo consiste en almacenar todos los elementos del vector a ordenar en un heap (montculo) y luego extraer el nodo que queda como raz en sucesivas iteraciones, obteniendo el conjunto ordenado. Basa su funcionamiento en una propiedad de los montculos, por la cual, la cima siempre depende de cmo se defina el vector puede contener el mximo valor o el mnimo valor del montculo.

El vector debe tener estructura de montculo, es decir un rbol en el que los hijos de cada nodo son siempre menores que el padre .De esta forma no se tiene que recorrer toda la zona desordenada para encontrar el elemento mximo, ya que en este caso la ordenacin se realiza en sentido inverso.

4. Ventajas y desventajas del Heapsort

ventajas desventajas

Este mtodo funciona ms efectivamente don datos desordenados. No utiliza memoria adicional. No es estable, ya que se comporta de manera ineficaz con datos del mismo valor. Es un mtodo ms complejo.

5. Como llenar y construir un HeapsortEl vector debe tener estructura de montculo, es decir un rbol en el que los hijos de cada nodo son siempre menores que el padre. El rbol se llena de izquierda a derecha, lo que implica que si algn nodo no est al mismo nivel que los dems, este estar entonces lo mas a la izquierda posible del rbol.1. Se construye el montculo inicial a partir del arreglo original.2. Se intercambia la raz con el ltimo elemento del montculo.3. El ltimo elemento queda ordenado.4. El ltimo elemento se saca del montculo, pero no del arreglo.5. Se restaura el montculo haciendo que el primer elemento baje a la posicin que le corresponde, si sus hijos son menores.6. La raz vuelve a ser el mayor del montculo.7. Se repite el paso 2 hasta que quede un solo elemento en el montculo.

6. Interpretacin con Mtodo grafico Vamos a crear nmeros aleatorios para k=6(donde k=nde nodos)valornodo3110215324175126

intercambiamos el nodo 2 con el nodo 5 intercambiamos el nodo 1con el nodo 2. intercambiamos el nodo 1con el nodo 6.

el nodo 6 queda estable.valornodo121315324105176

intercambiamos el nodo 1con el nodo 3.

intercambiamos el nodo 1con el nodo 5. valornodo3110212324155176

intercambiamos el nodo 1con el nodo 2. intercambiamos el nodo 1con el nodo 3. intercambiamos el nodo 1con el nodo 3. valornodo2132103124155176

intercambiamos el nodo 1con el nodo 2. valornodo3122103124155176

intercambiamos el nodo 1con el nodo 2. El arreglo final queda de esta manera

valornodo2132103124155176

7. Ejercicio de AplicacinDado un arreglo de 11 elementos generados aleatoriamente. Ordenarlos mediante el mtodo de Heapsort.public class HeapsortTes {public static final int Max=11;public static void main(String[] args) {int numero[]=new int[Max];numero[0]=0;for (int i = 1; i < Max; i++) {numero[i]=(int)(Math.random()*100+0);numero[0]++;int Indice=i;while (numero[Indice/2]0) {int temp=numero[1];numero[1]=numero[numero[0]];numero[numero[0]]=temp;for (int i = 1; i < numero[0]; i++) {int Indice=i;while (numero[Indice/2]