Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cátedra:
Prof. Pontelli, Pascual Hector
AUS. Álvarez, Claudia Mabel
Alumno:
García, Alejo Javier
Índice de contenido
2
Introducción
3
Desarrollo
Conceptos previos
1
Cairó, Osvaldo & Guardati, Silvi (2002). Estructuras de datos (3ra Edición). McGraw-Hill
2
Estructura de datos estática cuyo tamaño es fijo y no variable durante tiempo de ejecución.
4
Figura 1.a
Se dice que los árboles presentan una estructura jerárquica pues los
elementos, es decir los nodos, se organizan en distintos niveles3 o segmentos
que se disponen de forma vertical.
3
Se denomina como niveles o segmentos de un árbol al número de arcos que deben ser recorridos para
llegar a un determinado nodo. Por definición la raíz tiene nivel 1.
5
Métodos de ordenamiento
Introducción
4
Cairó, Osvaldo & Guardati, Silvi (2002). Estructuras de datos 3ra ed. (cap.8, pp. 329-330). McGraw-Hill
6
Formalmente definimos a un método de ordenamiento como un algoritmo5
que pone a los elementos de una estructura en una secuencia dada por una
relación de orden, es decir que este proceso entrega como resultado una
permutación –o reordenamiento- que satisface la relación de orden dada. Si
tenemos en cuenta la lista A de N elementos mencionada anteriormente podemos
enunciarlo de forma simbólica:
Ascendente: A1 ≤ A2 ≤ A3 ≤... ≤ AN
Clasificación
Ordenación de arreglos.
Ordenación de archivos.
5
Conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite realizar una
actividad mediante pasos sucesivos.
7
Ordenación interna
Métodos directos ( n2 )
Métodos logarítmicos ( n * log n )
6
Teoría de la computación que estudia el tiempo que le toma a un algoritmo resolver una determinada
cantidad de problemas.
8
Ordenación por método Heapsort
1. Construir un montículo.
2. Eliminar la raíz del montículo de forma repetida.
“Es importante señalar que: Para todo nodo del árbol se debe cumplir que
su valor sea mayor o igual que el valor de cualquiera de sus hijos”.7
A [i].clave ≤ A [2*i].clave
A [i].clave ≤ A [2*i+1].clave
Al considerar los elementos 2i y 2i+1 como hijos del elemento i, el arreglo forma un
árbol binario equilibrado en el cual la clave del padre nunca excede a las claves
de los hijos.
7
Cairó, Osvaldo & Guardati, Silvi (2002). Estructuras de datos 3ra ed. (cap.8, pp. 362-371). McGraw-Hill
9
En la 2.a se puede observar que, para cualquier nodo K del arbol, su valor
es mayor o igual que el de cualquiera de sus hijos.
Figura 2.b
10
Por ejemplo, si quisiéramos obtener el hijo izquierdo del nodo A [5], cuyo
valor es 21, se duplica el valor de la posición del nodo, en este caso 5 y se obtiene
el resultado A [5 * 2]=A [10], cuyo valor es 15. Si deseamos obtener el hijo
derecho del mismo nodo, se duplica el valor de la posición del mismo y se le suma
1, así se obtiene el siguiente resultado A [5*2+1]=A [11], cuyo valor es 08.
Eliminación de un elemento
1. Se reemplaza la raíz con elemento que ocupa la última posición del
montículo.
2. Se verifica si el valor de la raíz es menor que el más grande de sus hijos. Si
se cumple esta condición, entonces se efectúa el intercambio. Si no se
cumple esta condición entonces el algoritmo se detiene y el elemento
queda ubicado en su posición correcta.
11
Algoritmo
A continuación se muestran los códigos en lenguaje PASCAL de los
procedimientos empuja y heapsort, que opera sobre un arreglo A definido de
forma externa. Mediante una secuencia de intercambios empuja lleva los
elementos hasta su lugar adecuado entre sus descendientes en el árbol.
12
Este es el código del procedimiento heapsort completo que utiliza internamente el
procedimiento empuja.
Procedure heapsort;
{ clasifica el arreglo A[1],…,A[n] en forma decreciente }
var
i: integer;
begin
for i:= n div 2 downto 1 do
empuja (i,n);
for :=n downto 2 do begin
intercambia(A [1], a [i]);
{ elimina el mínimo del frente del montículo }
empuja (1, i-1)
{ reestablece la propiedad de árbol parcialmente ordenado }
end
end;
13
Análisis de la clasificación por montículos
14
Conclusión
15
Bibliografía
Cairó, Osvaldo & Guardati, Silvi (2002). Estructuras de datos (3ra Edición).
McGraw-Hill.
Aho, Alfred V., Hopcroft, John E. & Ullman, Jefrey D. (1988). Estructuras de
datos y algoritmos. México, DF: Allison-Wesley
16