SlideShare una empresa de Scribd logo
1 
Algoritmos y Estructuras de Datos 
dreams_eater abril 10, 2012 
Sumário 
que de solo de una parte de los temas do tan do EL Documento es mim clase do en do dictaron, de Algoritmos y Estructuras de Datos, lados dos algunos do en (Algoritmos y Estructuras de Datos 2). profesores do mis do filho do autor do verdadero do EL do que do lo de Por, imágenes do descaradamente do copie do donde do de los libros dos autores dos foreros y los. 
Índices 
I Algoritmos y Crecimiento de las Funciones. 3 
1 Algoritmos. 4 
2 Análisis de los Algoritmos. 5 
3 Crecimiento. 6 
3.1 Notación Asintótica ............................................................................................................. .................................................................................................................................. 6 
3.2 Ejemplos de calculo de T (N) ............................................................................................. .................................................................................................................................. 6 
3.3 Notación asintótica (eficiencia asintótica)......................................................................... .................................................................................................................................. 7 
3.4 ejemplo de notación asintótica ........................................................................................... .................................................................................................................................. 8 
II Recursividad 10 
funciona do bucle do un do que do matemáticamente de 4 Probar: 10 
5 Recursividad: 11 
5.1 matemática 11 de Repaso de ............................................................................ inducción 
5.2 la recursión do funciona do ¿ Cómo? ......................................................................... 12 
5.3 4Reglas: ......................................................................................................................... 12 
5.4 Dividir-e-Divide-and-conquer ......................................................................................... 12 
5.4.1 vencerás superiores 13 da partilha y do algoritmo do EL de Cota ............. para 
5.5 Cauda-Tail-Recursion ..................................................................................................... 13 
5.6 Coroutines ........................................................................................................................ 14 
5.6.1 2.5:15 do la versión do desde de Las Coroutinas de pitão .................................. 
5.6.2 en C 15 dos corutinas .................................................................................. de Las
2 
6 
EL Problema de la Solución Óptima de Recursividad y 
16 
6.1 
atrás o Algoritmos de Retrocesso de Algoritmo de vuelta ................................................................. 
16 
6.2 
codiciosos ávidos de Algoritmos o Algoritmos Devoradores o .......................................................... 
16 
7 
dinámica de Recursividad y Programación. 
18 
7.1 
dinámica invertido de de la programación do enfoque de Memoización .......................................... 
18 
7.2 
ejemplo de De baixo para cima do Un ................................................................................................ 
20 
7.3 
Sumário ................................................................................................................................................. 
21 
III Algoritmos de Ordenación 22 
8 Ordenación mediante comparación 22 
8.1 Introduzir-Insert-Sort ...................................................................................................... 22 
8.2 Escudo-Shell-Sort........................................................................................................... 24 
8.3 MergeSort ....................................................................................................................... 26 
8.3.1 Fusão 26 .............................................................................................................. de Operación 
8.4 Rápido-Quick-Sort .......................................................................................................... 29 
8.4.1 Selección Del Pivote ........................................................................................... 29 
8.4.2 Estrategia de la Partición .................................................................................... 30 
8.5 comparaciones inferiores 33 do en dos basados de Cota para los ............................................................................................................................................... Algoritmos 
8.6 Contar-Counting-Sort ..................................................................................................... 33 
8.7 RadixSort ........................................................................................................................ 34 
IV avanzado de Repazo (Pila, cola y Lista) 35 
9 Pilas (pilhas) 35 
10 Colas (filas) 36 
11 Lista Enlazada 37 
11.1 Lista Enlazada (lista lig) 37 ............................................................................................................................................... simples 
11.2 Lista Enlazada Doble (lista lig dobro) ......................................................................... 37 
11.3 Circular 38 de Lista ............................................................................................................................................... Enlazada 
11.4 Manequim 38 ................................................................................................................ de Nodos 
11.5 Implementación de las listas ....................................................................................... 39 
V Grafos 40 
12 Definiciones 40 
13 grafo 42 de Idéia de Implementaciones de 
14 máximo 43 do camino do mínimo y de Calculo del camino 
14.1 Pesos 43 do pecado..................................................................................................... de Grafo 
14.2 negativo 45 de aristas de peso do pecado ................................................................. de Grafo 
14.3 negativos 46 dos ciclos do pecado ............................................................................. de Grafo 
14.4 O engodo de Grafo orden topológico .......................................................................... 46
3 
VI raíz 48 do engodo de Árboles 
15 Definiciones 48
4 
binario de 16 Árbol 
16.1 binario do EL Árbol do sobre dos iteraciones de Recorido e 
16.1.1 Preorden 
16.1.2 Postorden 
16.1.3 simétrico de Orden 
16.1.4 Porniveles 
17 Árbol Binario de búsqueda 
17.1 Búsqueda 
17.2 Inserción 
17.3 Eliminación 
17.4 Ordenes 
18 Árboles AVL 
19 Árboles Vermelho-Red-Black 
20 Árboles B 
20.1 Reglas 
20.2 Ejemplo: 
20.3 Algoritmo de inserción: 
20.4 Algoritmo de eliminación: 
VII mistura y Diccionarios 66 de Tablas 
21 Diccionario 66 
Mistura 66 de 22 Tabla 
22.1 la función 66 do vetor y do EL ...................................................................................... de Sobre 
22.2 abierto 66 do direccionamiento do por dos colisiones de Mecanismo de resolución ................................................................................................................................................ de 
22.2.1 Exploración 66 ........................................................................................................................................ Lineal 
22.2.2 Exploración Cuadrática ...................................................................................... 67 
22.3 separado 67 do encadenamiento do por dos colisiones de Mecanismo de resolución ................................................................................................................................................ de 
VIII Montículos Binarios, Colas de Prioridad y Ordenación Interna 68 
23 Cola de Prioridad 68 
24 binarios 68 de Montículos 
24.1 Propiedad estructural: .................................................................................................. 68 
24.2 Propiedad de ordenación: ............................................................................................ 68 
24.3 Inserción: ...................................................................................................................... 69 
24.4 Eliminación: .................................................................................................................. 69 24.5 engodos de Construcción del montículo um puesta do ya do engodo información do vetor de de un do partir: elemento y cambio de clave de 69 24.6 Búsqueda de un (conocido como reducción de clave, 
envejecimiento): ............................................................................................................ 70 
25 Ordenación Interna 71 
26 Ordenación Heapsort 71 
26.1 Análisis de Heapsort: ................................................................................................... 71 
50 50 
50 
51 
52 
53 
54 
54 
55 
56 
59 
62 
63 
61 63 
64
5 
26.2 Análisis de los ordenes de Heapsort: ......................................................................... 72
6 
Parte I 
las de Algoritmos y Crecimiento de 
Funciones. 
1 Algoritmos. 
una gran cantidad de datos do sobre do programa do un dos ejecutamos de Cuando, plazo estar do en do termina do programa do EL do que dos seguros dos debemos razonable. utilizado de Esto es independiente del lenguaje de programación, utilizada do metodología do la do utilizada y de compilador/interprete/maquina_virtual (orientada procedimental do si es u objetos). 
¿ Que es un Algoritmo? Um que es do por intuición dos sabemos de altura do esta, decirlo do que do feno do pero. 
Algoritmo: O computacional do procedimiento do aquel do es do algoritmo do Un bien o definido, salida do como da valentia do un do produto do entrada y do como dos valores do setea do toma o do que. salida transforman do una do en do entrada do una do que dos computacionales do es una secuencia de pasos do modo de De este. O computacional do problema do un do resolver de para do herramienta do una do como do ver do puede do SE de También bien o definido. especifíca de declaración del problema do La, general do en, la desean relación Entrada/salida do SE para do que dos términos do los. Os algoritmos do Los describen o específico para que do computacional do procedimiento do EL o SE lograr do que relacionen o la Salida do engodo de Entrada do la. 
O lo do que dos propiedades do tiene do algoritmo do EL hacen o circunstancia do problema y do EL do según do ver mejor/peor. 
¿ Que es un Problema? circunstancia llevar do una do de do objetivo do Es la definición de un real um otra. ejemplo de Por: entrada llevar do la do de do objetivo do EL do formalmente do definir do puede do SE do si do problema do La ordenación es un um deseada do salida do una. 
Definición del formal problema de ordenación: 
Entrada: números de Una secuencia de n (a1 a2an). 
Salida: entrada de Una permutación (reordenación) (a1 a2) de la secuencia de. que de Tal: a1 a2 . 
Entrada es do EL do Si (31; 41; 59; 26; 41; 58), retorna do algoritmo do EL (26; 31; 41; 41; 58; 59). 
en especial, problema do entrada do Esa do EL de para, SE lama instancia del problema de ordenación. 
problema do perito em software lama instancia de un do satisface particular obligación do que de del problema do entrada do una um en mais cualquier la declaración del problema do impuesta. 
correcto do es do algoritmo do Un, si para toda instancia del problema, salida do como do correcta do respuesta do la do engodo do termina. computacional do problema do EL do resuelve do correcto do algoritmo do EL. 
incorrecto do es do algoritmo do Un, si nenhum nunca para algunas instancias de entrada do termina, respuesta terminar para algunas instancias de entrada do como do incorrecto da valentia do un do engodo deo si. 
Contrario um lo espera usted que, ser util do puede do incorrecto do algoritmo do un, controlamos SU taza de erro do si. 
infinita do memoria do la do infinita y do velocidad do engodo do computadora do la do tiene do que de Suponga. esto do leyendo do tiempo do EL do perder do que de Para do ¿? 
correcto demostrar do es do resultado do EL dos además do que do termina y da SU método de solución do que de Esto le sirve para. basta mais cualquier do correcto do método do infinita do rapidez do engodo do computadora do la do posee do Si. margenes estar de dos "software do en los do quiera de Probablemente do del de buenas practicas de la ingeniería las" (diseñado, documentado do implementado y, realizado do trabajo do EL do por do cobrado de y), siempre do casi do sencillo dos más do método do EL do implementando do pero. Os computadoras de Las pueden rápidas do ser, pero nenhuns rápidas do infinitamente. mucha do ser do puede do memoria do La, pero nenhum infinita. tanto una limitación de la fuente do lo do por do EL tiempo de computo es, memoria do en do espacio do ocupa de y. espacio de en términos de tiempo y dos eficientes de sean dos algoritmos do los do que de para do
7 
sabiamente de Programe.
8 
2 Análisis de los Algoritmos. 
Sabemos que nuestro algoritmo funciona. O que determinar dos recursos de EL Análisis de los Algoritmos es los consome. 
O que dos recursos do Los consome o filho dos algoritmos do los: 
 problema do EL do resolver de para do usado de Tiempo = de Tiempo. 
 problema do EL do resolver de para do utilizada de Espacio = de Cantidad de memoria. 
problema do del de en función del tamaño do están do espacio do EL do tiempo y do EL, llamado también tamaño de entrada. tiempo do EL do en do concentra do SE de EL Análisis de los Algoritmos. 
EL tamaño de entrada (. .es..) estudie do SE do que do problema de depende del tipo de: 
 entrada do Es EL numero de elementos de (la ordenación do en do ejemplo do por). 
 Es la tupla de variável, donde la cantidad de cálculos uma variável realizar do cada de en función del valentia de do esta. 
¿ Cómo es EL análisis del tiempo? 
usada de ser independiente de la tecnología do que do tiene de Análisis de los Algoritmos. Um que do lo mim que do es do refiero nenhuns vamos um decir: Pentium M de Sobre un, en C do engodo X código, archivo clasificar de do en un dos minutos dos tardamos 15 1 entradas de de 65mil da mistura de Tabla do una do sobre da megabyte. 
porque do usada de Ser independiente de la tecnología: 
 diferentes do filho de por segundo de los microprocesadores dos instrucciones de Las. eso de Por nenhum tarda do que do tiempo do EL do engodo do en función do medir do puede do SE. Tempo da parede do La medición, emplea pared de para de solo teste de requisitos do SE do reloj y do EL do en do transcurrido do tiempo do EL da marca nenhuns funcionales, etc.. 
 Os microprocesadores do Los tienen diferentes de de instrucciones dos jogos, diferentes dos arquitecturas, diferentes dos compiladores. asembler do en dos realizadas de la cantidad de instrucciones dos descartamos do esto do engodo. 
sobre EL crecimiento del algoritmo do matemático asintótico do análisis do SE EUA un. 
Camionete do SE do que dos pasos dos primitivas o do es EL numero de operaciones do algoritmo de de un do tempo running do EL um ejecutar. del tamaño de la entrada de depende de la magnitud do tempo running do EL. mayor de para un tamaño de entrada do algoritmo do nuestro do tardara do cuanto do predecir do permite do análisis no. de Este, tempo running do del de EL fator de crecimiento do conocer do al. 
alternativos comparar de relativa desempenho de algoritmos do la dos podemos do forma de De esta, base do en do elegir do poder de en caso de tenerlos y um fundamento do poderoso do un, algoritmo do del de depende de la eficiencia do tempo running do EL do porque. 
Nenhum en mejorar la fase de implementación do algoritmo de de un do tempo running do EL do puede do SE, sin algoritmo cambiar do al. Dados de filosofía de la materia do La: algoritmo do EL de Mejore, nenhum EL código.
9 
3 Crecimiento. 
partes de Consta de dos: del tiempo del algoritmo de predicción fator de crecimiento do la de para do usarlo do poder de para do limite do un do establecer de del algoritmo y do tempo running do del de Calculo. 
elementales do es EL conteo de pasos do tempo running do del do calculo do EL, paso do cada do tiempo do mismo do EL do vale do que do constante y de paso como de tiempo do cada do tomando. palabras dos tras do En, entrada representar do la de en función del tamaño de do algoritmo do un do realiza do que de la cantidad de pasos dos podemos. la función T do es do literatura do la do En (N). 
3.1 Notación Asintótica 
Tempo running do del do calculo do EL nenhum que no. do matemática do una expreción da Dinamarca interese. Filho dos causas de Las: 
 Los coeficientes de los términos nenhum ejecutora cambiar do maquina do la do al conservan do SE. 
 Generalmente nenhuns pequeños de para tamaños de problema do trabaja do SE, que los coeficientes de los términos do lo do por nenhuns importantes do filho, términos do los do tampoco nenhuns dominantes. 
 suficientemente grandioso, final de Para un tamaño de entrada da valentia do EL do en do repercute dos más do que do EL do es 
Os funciones que dos las do EL índice de crecimiento deos no. indica quien convirgem rápida dos más de al infinito de forma, palabras o establece un orden funciones dos las do entre do relativo, dominantes dos otras do en de la comparación de terminos do mediante. 
EL término dominante de la función, es EL índice de crecimiento, ignoran do SE do dominante do al dos inferiores dos términos do los, ignora do SE do también do dominante de constante multiplicativa del termino do la. Os inferiores dos términos do los do que de Hacemos de cuenta valen a ONU do vale do dominante de constante multiplicativa del término do la do cero y. 
Filho de Algunos ordenes de crecimiento: 
Termino Dominnte Crecimiento 
1 
Constante 
registro N 
Logaritmica 
log2 N 
cuadrado do al de Logaritmica 
N 
Lineal 
Registro N de N 
N2 
Cuadratica 
N3 
Cubica 
2N 
Exponencial 
3.2 Ejemplos de calculo de T (N) 
tenemos do lenguaje x do en un do que de Supongamos: 
para j=1 a n: ... a=a+1; 
la función T de Cual es do ¿ (N) algoritmo do corto de de nuestro? 
tarda do que do lo do Si c1 es para j=1 a n: (incremento do incremento e de comprobación e de solo) 
tarda a=a+1 do que do lo de y c2 es; 
Como para j=1 a n: veces do ejecutara n+1 do SE, y 
a=a+1; veces do ejecutara n do SE, Tenemos: 
T (N) = c1 (N + 1) + c2N = (c1 + c2) N + c1 
O EL de Cual es do ¿ orden o algoritmo do corto do nuestro de de crecimiento de? 
Os términos do Los nenhuns dominantes valen las que de 0 y os constantes valen 1.. 
Reformulando T (n), queda: 
T (N) = N: o EL orden de crecimiento es Lineal. 
tenemos do lenguaje x do en un do que de Supongamos: 
para i=1 a n:
1 
0 
... tonelada forj=1: ...... a=a+1;
1 
1 
la función T de Cual es do ¿ (algoritmo do corto de n) de nuestro? 
tarda do que do lo do Si c1 es para i=1 a n: (incremento do incremento e de comprobación e de solo) 
, tarda do que do lo do c2 es para j=1 a n: (incremento do incremento e de comprobación e de solo) 
tarda a=a+1 do que do lo de y c3 es; 
para i=1 a n: veces do ejecutara n+1 do SE, 
para j=1 a n: veces do *n do ejecutara do SE (n+1), 
a=a+1; porloqueT dos veces do n*n do ejecutara do SE (N)=c1 (N+1) +c2 (N+1) N+c3NN= (c3+c2) N2+ (c1 +c2) N+c1 
O EL de Cual es do ¿ orden o algoritmo do corto do nuestro de de crecimiento de? Os términos do Los nenhuns dominantes valen las que de 0 y os constantes valen 1.. 
Reformulando T (n), queda T (N) = N2, o EL orden o cuadrático de de crecimiento es. tenemos do lenguaje x do en un do que de Supongamos: para i=1 a n: 
... forj=iton: 
..... a=a+1; 
la función T de Cual es do ¿ (algoritmo do corto de n) de nuestro? 
tarda do que do lo do Si c1 es para i=1 a n: (incremento do incremento e de comprobación e de solo), 
tarda do que do lo de c2es para o j=i a n: (incremento do incremento e de comprobación e de solo) y 
c3es lo que tarda a=a+1; 
para i=1 a n: veces do ejecutara n+1 do SE, 
para o j=i a n: ejecutara do SE (n+1) n 
2 __________ veces, a=a+1; ejecutara 1 do SE + n + (n+1) n 
2_________ veces 
que T do lo do por (N) = (c1 + c2) + (c1 + 3 2c2 + 1 2c3) N + 1 (c2 + c3) N2 2 
O EL de Cual es do ¿ orden o algoritmo do corto do nuestro de de crecimiento de? 
Os términos do Los nenhuns dominantes valen las que de 0 y os constantes valen 1.. 
Reformulando T (n), queda T (N) = N2, o EL orden o cuadrático de de crecimiento es! - aleta de ejemplos-:-) 
3.3 Notación asintótica (eficiencia asintótica) 
matemática do la de Recapitulando, asíntotas do llamado do algo dos teníamos, cartesiano vertical horizontal do plano do EL do en un dos las do limite imponían o dos cuales no.. tocábamos cual do lo do nunca do pero do mucho dos acercábamos de Del no.. una función do es do asíntota do la de Aquí, asíntotas do mediante de un estudio de la eficiencia dos logramos do manera de de esta. asíntota de Mejor, certeza do mejor. 
libro de Cormen do EL do desde do copiado do fue do gráfico do siguiente do EL, una función g do como do ilustra do porque (n) trabaja como asíntota de la función f (n). 
La notación-O (o) grande, do cota dar do una de para do sirve algoritmo superior de para EL crecimiento de nuestro, punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, EL valentia múltiplo de la función g (n)
1 
2 
mismo do EL do en do esta do supera o orden o algoritmo f do nuestro do que (n), que do decir do es: 
que tal 0 f de Existe un c y un n (n) cg (n) todo n0 N. de para.
1 
3 
como dos representamos de Ylo: f (n) = O (g (n)). 
podemos f acotar de Matemáticamente (n) o engodo un orden o superior muy, pero nenhum eso dos hacemos, podamos do que do justo dos más do calculo do EL do engodo do algoritmo do nuestro do tardará do cuanto do saber dos queremos do porque. 
La notación- (notación omega), do cota dar do una de para do sirve algoritmo inferior de para EL crecimiento de nuestro, punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, EL valentia múltiplo de la función g (n) o en un do esta orden o mismo inferior do EL do en do esta deo orden o algoritmo f do nuestro do que (n), que do decir do es: 
que tal 0 cg de Existe un c y un n (n) f (n) todo n0 N. de para. 
como dos representamos de Ylo: f (n) = (g (n)). 
La notación- (theta), do cota dar e para EL crecimiento de nuestro do una de para do sirve algoritmo inferior superior de notación, punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, un valentia múltiplo de la función g (n) o mismo do EL do en do esta orden o algoritmo f do nuestro do que (n), que do decir do es: 
Existe un c1, que tal 0 c1g do c2 y un n (n) f (n) c2g (n) como dos representamos do todo n0 N. Ylo de para: f (n) = (g (n)). 
O-chica do La notación, do estrictamente dar do cota do una de para do sirve algoritmo superior de para EL crecimiento de nuestro. 
punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, un valentia múltiplo de la función g (n) o en un do esta orden o superior um algoritmo f do nuestro (n), que do decir do es: 
que tal 0 f de Existe un c y un n (n) <cg (n) 
limnf (n) 
g (n) = 0 
como dos representamos de Ylo: f (n) = o (g (n)). La notación, algoritmo dar do nuestro do cota do una de para do sirve. 
punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, un valentia múltiplo de la función g (n) o en un do esta orden o inferior um algoritmo f do nuestro (n), que do decir do es: 
que tal 0 cg de Existe un c y un n (n) <f (n) todo n0 N. de para. 
limn f (n) g (n) = 
como dos representamos de Ylo: f (n) = (g (n)). 
Aclaración de notación: En notación O, EL igual' =' como' ES' do leer do debe do SE. T (n) = O (esO do como T do leer do debe do SE de F (n)) (n) (F (n)). 
3.4 ejemplo de notación asintótica 
crece T da inserção-insertion-sort do algoritmo do EL (n) = n2, operaciones ordenar do n2 da lebre dos elementos de para n. crece T da fundir-merge-sort do algoritmo do EL (n) = nlog (n), nlog ordenar da lebre dos elementos de para n (n) operaciones. 
Fundir-merge-sort do mejor do es dos grandes dos casos de para do pero da inserção-insertion-sort da liga dos pequeños de para n do que do significa de Esto. 
Si n=1000, lebre 1 millon de pasos da inserção-insertion-sort, mero-mere-sort 3 mil. de y. 
Tenemos 2 computadoras: 
 A (rápida do la) 10 instrucciones dos billones 
segundo _____ . 
 instrucciones dos millones de B (lenta) do la mil. 
segundo . 
A, inserção-insertion-sort do mediante do de 10 millones de números do arreglo do un do ordenando do esta. EL mejor programador del mundo do engodo, tempo running T do un do engodo da inserção-insertion-sort do algoritmo do al do implementa do que do lo do por (n) = 2n2. B, fundir-merge-sort do mediante do de 10 millones de números do arreglo do un do ordenando do esta. pepe do engodo, ayer do que aprendió um seteado programar para do esta do que do compilador do un do engodo nenhum optimizar, tempo running T do un do engodo do dificultad do engodo da mero-mere-sort do implementa do lo do que do lo do por (n) = 50nlog (n). 
para todo n0 n. 
estrictamente inferior para el crecimiento de
1 
4 
ganara de Quien do ¿? Um que 1000 do rapida dos más dos veces do es B, en poder de computo. Um que B. do programador do mejor do tiene. 
ganador es B do EL de Pero:
1 
5 
Um tarda: 2 (107) 2 
10billones = 20segundos. 
tarda de B: 50 (107) log10 7 
milmillones = 1162674 segundos.
16 
Parte II 
Recursividad 
funciona do bucle do un do que do matemáticamente de 4 Probar: 
invariant de laço: O SE do que dos necesarias do es una declaración de las condiciones do bucle de invariante de un do La deben o cumplir um bucle de entrada de un do la, cumplirá para cada iteración del bucle do SE do esa condición. 
(en comienzan 1 dos vectores dos arreglos y do los do aqui, nenhum en 0) 
INSERTION-SORT (disposição) 
1 forj=2 a A.length 
... key=A 2 [j] 
3.. ordenada insertar A do secuencia do la do en do que A do feno de .// [j] [1.2,..., j-1]. 
4... i=j-1 
andA>key 5... whilei>0 
=A .... de 6 A [i+1] 
7 ...... i=i-1 
8... A [i+1] = chave 
secuencia A do la do que de Aquí la invariante del bucle es [1,.. ,] o ordenada estar do debe j-1 antes en entrar 5. do bucle do EL do en do de. 
funciona probar do bucle do EL do que de Debemos, parecido do es do esto um matemática probar do mediante inducción do mantiene do SE do funciona y do matemática do propiedad do una. 
invariante do EL do sobre do correcto do es do algoritmo do EL do si do saber de para dos reglas de Tiene 3 (invariant de laço): 
 R1-Inicialización: O verdadero do es do invariante do EL antes o bucle do del de de la primera iteración. 
 R2-Mantenimiento: O verdadera de de una iteración y das apostas do verdadero do es do invariante do EL antes de la próxima iteración. durante cada iteración del bucle do funciona do inicio y do EL de para do funciona do propiedad do La. 
 R3-Terminación: bucle do EL do termina de Cuando, correcto do es do algoritmo do EL do si do muestra do verdadero no. do invariante do EL. 
Ejemplo: 
 R1-para INSERTION-SORT: ordenado cual do esta do EL si o si do elemento de solo do un do feno do porque do vale. 
 la INSERTION-SORT de R2-para: ordenando de do SE va do porque do vale um al sub-arreglos-arreglos dos gracias para o invariante principal do EL do preserva do que. 
 la INSERTION-SORT de R3-para: bucle do EL do cuando para o termina, mayor al largo del arreglo de j es. EL A sub-arreglo-arreglo [1.2... , ordenado do pero dos originales dos elementos do sus do en do consiste de n].
17 
5 Recursividad: 
mismo de en términos de si do definido do esta do que do aquel do es do recursivo do método do Un. método de Este, llamada do una da lebre do indirectamente do directa o um mismo do si, diferente de instancia del problema do engodo do pero. 
recursivos do La recursión es EL USO de métodos. 
matemática do en los principios de la inducción do basa do SE de Esta. 
llamándose posible do problema de una instancia de un do resolver do ¿ Cómo es um mismo do si? 
Director do clave do La, lama do SE do que do es um mismo do si, engodo diferentes instancias del problema do pero. imagen do siguiente do la de Veamos: 
método A do EL, método llamar B do EL do método B. do al do puede, método llamar C do EL do método C. do al do puede, método llamar A. Independientemente do al do puede um problema cual do un do resolver de para do primero do lama do SE, recursivos dos métodos do los do filho de Cuáles do ¿? recursivos dos métodos do filho do TODOS. 
Ventajas de la recursividad: 
 Idéias expresar do al de Claridad. 
 O recursiva do la do iterativa y do La implementación poseen o mismo do EL orden de complejidad. 
 Fácilde implementar. 
5.1 matemática de Repaso de inducción 
pasos do en 2 do trabaja do que do hecho de técnicaica de demostración de do La: 
 Primero: sencillo dos casos de para do cierto do EL es do que do demuestra do SE, directa de demostrándolos de forma, base do caso do lama do SE los dos estos. caso indica do siguiente do EL do prolongamento do puede do SE dos casos dos ciertos de para do cierto do perito em software que de ser (inductiva de hipótesis). 
 Segundo: indefinidamente demostrar do caso do EL do prolongamento dos podemos do caso do EL do prolongamento do como do Al (inductivo do paso). 
números demostrar es n dos primeros de la suma de los n do que dos queremos do ejemplo de Por (n+1) 
2, engodo inducción: 
 mostramos de Primero um vale para 1 do que do mano, 2 y 3 
 Vale para k do que de Suponemos, (si o si), 1 + 2 + 3 + + k = k (k+1) 
2 
 Vale para k+1 do que dos suponemos de Entonces, comprueba do SE do pero. verdad do Si es, verdadera do la hipótesis es, sino falsa do es. 1 + 2 + + k + (k + 1) = (k + 1) + k (k+1) 
2 ________ = (k+1) (k+2) 
verdadera de 2 ==>es. 
Para las comprobaciones de los algoritmos: 
 comprobaciones de Las, "hechas um mano", base denominan do caso do SE, fácilmente comprueban do SE dos sencillas y do filho. 
 arbitrario de para un k do cierto dos suponemos do Si, suposición llamada hipótesis de inducción, cierto para un k+1. do es do también do tanto do lo do por. 
 Base do caso do al do convergencia do una do ver dos debemos de Ahora, suficiente do
18 
es dos sencillos dos casos de para. sencillo do caso do EL de para do cierto do Si es, llamador do EL de para do cierto do es.
19 
instancia baixo do una de Caso es, la emplear recursión do pecado do resolver do puede do SE do que. Base progresar do caso do al do debe do llamada de Toda. 
Podemos ver algunas características: 
 activa de solo do esta de instancia llamada del problema do ultima do la, resto do EL nenhum retorne do que do hasta do trabajo do hacer do puede. 
 Nenhum nivel manejan do perito em software tareas de bajo. 
 Base do caso dos varios de Tenemos un o, progresivas dos llamadas de y uma base do caso do un. 
 O EL buen USO de la recursión nenhum agota la memoria de la computadora. 
Ponta: recursiva simplificar do la función de condiciones necesarias de la entrada para dos las do evalué do que do guía do rutina do una do tener do puede do SE. (que 0 dos mayores de sean dos números do los do que do ejemplo do por, llamo dos entonces um guía y do rutina do la nenhum um recursiva do la. mayores estar de sean dos números do los do que do evaluando do constantemente do va do sino recursiva do la función um 0.) 
5.2 la recursión do funciona do ¿ Cómo? 
forma de las llamadas de una do implementa do lenguaje de Cada, esto do pero nenhuns demás de para los do así do mar do que do significa. nivel de requiere tareas de bajo do método de implementación de un do La. Do engodo implementar do una función do tranquilamente do podría do SE método lugar do cada de para do fijo do memoria do en do un, lugares das variáveis dos las do un para, llamador do al do retorna do que do otro, otro para lugar EL valentia de retorno, problemas lugar dos serios dos trae do esto etc. Pero, la recursión do impide do que do ya, sobreescritos serian dos datos do los do que do ya. necesaria la estructura de la pila do Es. llamada pila de registros de activación de una estructura de dato do mediante da lebre do SE dos recursivos de implementación de métodos do La, donde un elemento del registro de activación, método do EL do sobre do contiene información: valores de parámetros, lugares das variáveis, pila do la dos usamos de Porque do ¿ etc.? inverso do sentido do en do realiza de la terminación de la función perito em software do porque dos usamos do la um la invocación. secuencia do la do invertir de naturaleza de la pila es do La. pila do la do en do pone do SE do lama do SE do Si, desapila do SE do retorna do SE do si. 
Lugares están dentro del registro de activación das variáveis de Las (apiladas), forma de camionete en de porque de otra, las instancias de la función perito em software y compartirían nenhum recursividad usar do la do podría do SE. como Java o C/C++ dos lenguajes do En, marca da ONU do cuando uma estática variável do como do una, pidiendo do esta, instancias variáveis dos las dos todas do entre do compartida do mar do esa do que dos palabras dos otras do en, tanto do lo do por nenhum en la pila de registros de activación do almacenada do es, decir do es, nenhum local variável do una do como do tratada do es. 
5.3 4 Reglas: 
 R1) Base de Regla del caso:Base do caso do un dos menos do al do tener do debe do SE. 
 R2) Regla del progreso:Os recursivas dos llamadas de Las deben a base progresar do caso do al. 
 R3) Regla del Puede creerlo:recursivo do algoritmo do un da lebre do SE de Cuando, correcta do respuesta do una do retornara do llamada do la do que do asuma. inductiva do la hipótesis do por do correctamente do funciona do internamente do recursiva do llamada do La. tanto do lo de Por, ya nenhuma base do caso do EL do hasta do camino do tortuoso largo y do seguirá do un, diseño do EL do facilita do que do matemática do herramienta do una do engodo do cuenta do SE do ya do ahora. 
 R4) compuesto de Regla del interés (mala do es do recursividad do demasiada):resolviendo do trabajo do EL do duplique de Nunca, problema de misma instancia de un do la, problema de misma instancia de un do una dos separadas dos recursivas dos llamadas do en. converger do puede do SE um la solución, en implicar otras instancias de la función dos resueltas do ya de la repetición de instancias do puede
20 
do esto do pero. Esto producirá mucho trabajo redundante. Os casos dos algunos do en do recursividad do La, consomem o memoria do mucha. 
5.4 Dividir-e-Divide-and-conquer 
O engodo dividir-e-divide-and-conquer, o recursivamente do problema do un do resolver dos podemos, en cada nivel de la recursión dos pasos do aplicando 3:
21 
 Partilha: disjuntos dos subproblemas do en do problema do EL de Dividir, problema do al dos menores dos instancias de sean do que. 
 Conquistar: recursiva do forma do en de Resuelvo. 
 Liga: obtenidas dos soluciones dos las de Combino subproblemas de de las soluciones de um los do partir. 
como sub-problemas-problemas para dos pequeños do suficientemente do lo do volvieron do SE do los do que do vez de Una nenhum recursividad usar, tendido do habrá do fondo do toco do la recursión do que dos diremos ("partes inferiores para fora ") y uma base do caso do un. Aveces, original sub-problemas-problemas do problema do EL do que dos pequeñas dos más dos instancias do filho do que do la adición de do por, que sub-problemas-problemas do resolver de Debemos nenhum original do problema do EL do en do completamente do están. 
O entre do diferencia do La dividir-e-divide-and-conquer o la recursión simples, que de y do es divide-andconquer-andconquer o totalmente diferente una de otra de sean dos problemas do EL do dividir do al dos generadas dos instancias dos las do que do requiere. la recursión do cambio do En simples nenhum requiere do lo. 
5.4.1 vencerás superiores da partilha y do algoritmo do EL de Cota para 
que do especifíca do matemático do análisis de Mediante un, forma do la do engodo do una ecuación do posee do que do algoritmo de de un do tempo running do EL: 
T (N)=AT (N.B.) +O (Nk) 
Donde: 
 nivel del Algoritmo do cada do En, subproblemas do generan A do SE. 
 O nivel del Algoritmo do cada do En, perito em software reduz o original do fator B EL tamaño de problema do un, nivel pasar do siguiente do al do al. 
 nivel del Algoritmo do cada do En, resolver do dividir y do conste O do un do tiene do SE (Nk) para. 
siA > Bk de O (NlogBA) 
T (N) = siA = Bk de O (logN de Nk) 
<Bk do siA de O ( Nk) 
Mestre do teorema do EL do es do parecido do teorema do Un, recursivo cual do caso do todo de para do theta do limite do un do plantea do EL 
5.5 Cauda-Tail-Recursion 
Os recursivos dos algoritmos dos algunos do En, SE pueden o Recursion especial da cauda do llamado de de recursividad do caso implementar do en un (cola), do técnica cual do una do es do la recursividad optimizar do por do recursividad do la de para, recursivas dos llamadas dos constantes dos las do eliminando. 
recursion da cauda do una función es de Cuándo do ¿? la última instrucción de la función do es do recursiva do llamada do la do cuando do Es; con o recursiva do llamada do la do realiza do que do parte do la do en do que do la restricción, nenhum alguna do otra expresión do exista. 
cálculos lógicos do los do hago de Cuándo do ¿? primero realizan dos cálculos do SE los, la recursión do realiza do SE do luego de y. 
Propiedad: Base de la instancia del caso do retorna do que da valentia do EL, la función do retorna do que do EL do es. recursivas realizar dos llamadas de Esto no. a Dinamarca la ventaja de poder, más do frame de pilha de la necesidad de tener un do pecado. decir do Es, llamada evitar de la sobrecarga de cada dos podemos um pila de EL gasto de memoria de dos evitamos do la función y no.. O adecuado do compilador do EL do engodo, do puede recursive do SE da cauda do una función excesso de pilha evitar do como do conoce do SE do que do lo, cuando la pila de llamadas do ocurre do que (pilha de atendimento) consome o memoria do mucha, la próxima instancia de la función do en do frame de pilha do mismo do EL do reutilizando dos estaremos do simplemente do porque. recursivas dos llamadas de es independiente del número de do cálculo do EL do durante do almacenada do ser do debe do que de cantidad de información do La. la lograr responsável optimización
22 
do EL de do es do compilador do EL. iterativa recursive do una función do fuera do si do como da cauda do una función do trata do compilador do EL. 
O ejemplo de Por, tenemos EL enfoque del lenguaje cicia. la recursión do Si nenhum retorno de única parte de la expresión do la do es, la evaluación do en do retornara do maquina do la, tanto do lo do por nenhuma aleta do EL do en dos estamos (cauda) de la función do EL do en, en EL medio de la expresión do si do pero. Nenhum esto do obstante nenhum SE
23 
aplica um recursiva de los parámetros de la llamada, aquí do permitido do esta do todo. lenguaje do Si un nenhum la iteración do implementara, como usar Haskell da cauda recursión do podría, una iteración do como do comporta do SE do esta recursión do porque. O La optimización de chama o únicamente do es dos saltos do por exterior posible do llamada de para esa. 
Por Ejemplo, del do calculo do EL factorial nenhum cauda-tail-recursive: 
factorial_recursivo do int (int n) { 
se (== 1 de n) 
n do retorno; 
mais 
n do retorno * fact_recursivo (n-1); } 
Por Ejemplo, engodo factorial do del do calculo do EL cauda-tail-recursive: fact_tail_sum do int (soma do int n, do int) { 
se (== 1 de n) { 
soma do retorno; 
} mais { 
fact_tail_sum do retorno (n - 1, sum*n); } 
} 
factorial_recursivo do int (int n) { 
fact_tail_sum do retorno (n, 1); } 
5.6 Coroutines 
Donald Knuth, tareas tratar de cooperación de de generación de do problema de de resolver un do al, elegante de para resolverlo de forma do nivel de herramientas de alto do pecado do SE encontró. 
diferente do totalmente do esquema de Él abrió un, funciones dos las do sobre, llamadas pensar dos funciones dos llamadoras y do como dos funciones do en do de do dejo. por do cooperan dos funciones dos ambas do que do EL parte de la idéia igual. 
O que dos informáticos de Las Corrutinas filho componentes de programas permiten subrutinas generalizar dos las, um engodo múltiples puntos de entrada do una función, lugares dos ciertos do la suspensión y la reanudación de la ejecución en do permitiendo. O que dos iterables de para la generación de los componentes dos adecuadas do filho de Corrutinas requieren o estado do EL do almacenado do tener anterior. términos dos otros do En: parecida do una do engodo do retorno de tradicional primitiva de llamada y do la do remplaza. 
La nueva primitiva de llamada, llamado do fue do EL valentia retornado de donde do guardará, diferente lugar do en un um pila do la, saltará do luego de y um llamada do una ubicación específica dentro de la función, guardado do en un valentia de retorno. 
buena muy do teoría do una de Esta es, época de Knuth do la do en do pero nenhum primitiva compatível do corrutina do llamada do la do engodo do nivel de había lenguaje de alto. problemas do tendrá TODOS los do destinatario dos funciones do La. retornamos de justo después de que do controle do EL dos retomemos dos llamemos do la do que do vez do cada do que de Para. 
Filho casos especiales de las corrutinas dos subrutinas de Las. SE invocan, vez que venda de subrutina dos subrutinas de Cuando do una do principio y do EL do desde do comienza do la ejecución, terminada do esta. 
similares do filho dos corrutinas de Las, rindiéndose o do salir do puede do también do que do excepto "que rende", al "retorno" do equivalente do EL do es do que, llamado retomar do mar do que do vez do la próxima do punto do este do desde do luego de para, llamando do
24 
salir deo otros, volver do permite dos les do que do lo más entrar de um vez do una do punto do ese do en, corrutina do la de EL punto de vista de do desde, nenhum salir do es, sino simplemente llamar um corrutina do otra. O la creación de do requeriría dos corutinas do engodo do lenguaje de implementación de un do La empilha corutinas dos EUA do cuando dos adicionales.
25 
5.6.1 la versión 2.5 do desde de Las Coroutinas de pitão: 
Dados de documentación de pitão do La: 
ejecutada do es do rendimento do sentencia do la de Caundo, retornado do es da valentia do EL do congela y do SE do estado do EL um llamadora do la función. Por congelar, entendemos, retenidos do están dos lugares dos estados do que TODOS los, vuelva do la función do que do vez do la próxima do hasta um invocada do ser. llamada hubiese do una do efectuado do si do como do procederá do La función um externa do una función. 
Rendimento es EL punto de retorno y de do EL re-ingreso-ingreso um corutina do la. fácil de e crear do es do corutina do La implementar. 
retorna un Objeto iterable, retornados do corutina do una do pitão do En dos valores do los do realmente do otorga do que do EL do este do es do que. 
rota do def (pessoa): 
_people = lista (pessoa) 
corrente = 0 
quando len (_people): 
render o _people [atual] 
a corrente = (corrente + 1) % len (o _people) 
se == "__main" do __name: 
povos = ["formiga", "Bernard", "Carly", "Deb", "Englebert"] r = rota (povos) 
para i na escala (10): 
cópia "é volta de %s." % de r.next () 
clave retomar abandonar combinar do punto do en un do recursiva do rutina do la do recursividad y y do la do engodo do puede de corutina de pitão perito em software do La, llamada do fue do la función do donde do nivel do cada do por de necesidad de volver do pecado, llamador llegar do al do hasta. ejecuta de solo "rendimento", listo de y. 
5.6.2 en C dos corutinas de Las 
lenguaje de Este nenhum engodo este tipo de componente do cuenta, corutina simples simulan do la do elegante de de forma y do que dos implementadas dos macro do feno do aunque, recursividad do la do engodo do la combinación do impide, que do puesto nenhum forma do en do usada do corutina do una do es natural.
26 
EL Problema de la Solución Óptima de 6 Recursividad y 
De um en dos problemas de Podríamos clases clasificar dos tres los (clases tratan de solo dos primeras do dos dos las do SE): 
 O que de Problemas poseen o única de solución, tanto do lo do por, mejor solución do la do es. 
 O que de Problemas poseen correctas dos soluciones dos varias, pero un de solo subconjunto de las soluciones, una solución óptima do es. 
 O que de Problemas tienen forma de maximización o minimización de una que o objetivo variável y poseen a variável do cada de restricciones de valores para, variáveis dos estas do engodo dos lineales de de ecuaciones do serie de tomando forma de una. Perito em software denomina problema de programación do clase de Esta lineal. 
Definición: Problema de optimización: O cuando do Es existen correctas dos soluciones dos diferentes. una de solo solución óptima de Pero algunas de ellas es, vida do la do la solución óptima para do requiere do SE de Y real. 
Ejemplo: monedas do EL problema de cambio de: unidades de de C1C2Cn dos monedas do engodo do divisa do una de Para, SE necesitan, devolver K unidades de cambio do que do EL mínimo numero de monedas de Cual es do ¿ de para? dinero dar do EL dos maneras de de varias dos podemos do porque do Es un problema de optimización uma personalidade do la, la de solo óptima do una solución es do pero. 
ejemplo de Por: Cajero-automático de emisión de billetes de un do La um del banco, asumimos do cliente do un, la dar mínima cantidad de billetes do la emisión óptima es do cambio y do feno do siempre do que posible. 
Una solución es: monto do EL de Mientras um mar entregar diferente de cero, unidad do menor do la do hasta do unidad do mayor do la do desde de Iterar, monto do al de Restar um iterada entregar de un múltiplo de la unidad, entregarlas contabilizar de que perito em software le restaron y dos monedas dos dichas. Pero nenhum una solución óptima do sería: monedas dos las de sean: $50, $25, $21, $10, $5 que $42 dar do feno de y $1 y: la solución óptima es 2 de $21. algoritmo es $25 do EL do por do otorgada do la de Pero, $10, $5 y $1, pero do correcto do es do cambio do EL nenhum óptimo. 
Definición: una Subestructura do posee do que do problema do Un óptimo: Original do problema do al dos soluciones óptimas do filho do subproblema do al dos soluciones óptimas dos las do que dos subproblemas y do en do dividirse do puede do problema do EL do que de Implica. 
ejemplo Si para ir de Córdoba de Por um Carlos Paz. EL pasar Puente 15 do por de de Córdoba do partir do implica do corto dos más do camino do EL de Y, finalmente pasar ir do EL Tropezón y do por do luego um Carlos Paz. quiero óptimo ir de Córdoba do si do que do implica do subestructura do La um EL Tropezón, EL pasar Puente 15 do por do deberé. 
6.1 atrás o Algoritmos de Retrocesso de Algoritmo de vuelta 
soluciones probar do en dos posibilidades dos las dos todas do sistemáticamente do la recursión para dos EUA do que do algoritmo do EL do Es, momento do EL do hasta do mejor solución do la do almacenando. lista de candidatos do en EL procesamiento de una do basa do SE um mejor solución do la, que candidatos generar dos nuevos de um puede do vez do la. anchura do en do profundidad o do en do ser do puede do en EL espacio de soluciones do búsqueda do la do en do recorrido do EL. Minimax do ejemplo de Por. 
6.2 codiciosos ávidos de Algoritmos o Algoritmos Devoradores o. 
Os algoritmos ávidos, instancia toman do Los do cada do en dos decisiones óptimas do que dos algoritmos do filho, sin futuro pensar do EL do en, mayor do problema de de un do parte do si la instancia del problema es do ejemplo do por, subestructura óptimo, pero do tiene do problema do EL do cuando dos soluciones óptimas de dan dos algoritmos dos estos do eso de Por nenhuns revés do al do necesariamente. Cuando nenhum tiene, puede o nenhum solución dar óptima. 
¿Problemas que pueden pasar? O SE recalcular dos estos do porque dos subproblemas dos problemas y do los do puedo do momento do algún do En superponen. pasa do esto de Cuando, algoritmo do EL nenhum eficiente do es. Soluciones:
27 
 camino global do EL de para do profundidad do una de Establecer: algoritmo do al do decirle do Es, que nenhuns entonces do porque do profundidad de perito em software pase de x nenhum otorgada do la solución do buena dos soros.
28 
• hechos do ya dos cálculos do los dos tablas do en do almacenando do dinámica de Emplear Programación.
29 
7 dinámica de Recursividad y Programación. 
por un planteamiento recursivo de forma dos generados dos subproblemas do resuelve do que do es un tipo de recursividad do dinámica do La programación nenhum recursiva. tabla de resueltas dentro de una do ya de EL almacenamiento de las instancias do mediante do logra do lo de Esto. 
tabulada do una solución do ofrece do dinámica do La programación, subproblemas cual de una tabla de resultados óptimos de los do arma do la do en. contiene de tabla de resultados do La, la instancia del problema, correspondiente solución óptima de información al respecto del problema y SU. O una fuese ocasión anterior, SE do en do resuelta do que provável do es do instancia do la do porque do tabla do la do emplea do SE do filho óptimos y dos alamacenados dos resultados do los dos además pueden o superior reutilizar do problema do EL resultado optimo de un do tener de para. 
Fazer feno os formas de EL realizar llenado de la tabla do dos, enfoques do dos do filho: 
 Invertido: dividir do al dos repetidas dos instancias de EL problema de la generación de do resuelve do que do enfoque do EL do Es. llega do SE do cuando do tabla do la do llena do SE um instancia do una do resolver. 
 De baixo para cima: problema incrementar do al do converger do problema y do EL do luego de para da base do caso do EL do llenando do siempre de Empieza inicial. tabla do la do En, nenhum la solución do almaceno, sino la solución de una forma de construir. filosofía de do La "de baixo para cima" (delante do hacia do principio do EL do desde): o EL do en dos valores do los do calculando dos vamos do si orden o correcto, necesitamos do que dos valores do momento TODOS los do cada do en dos tendremos. 
Buttom-up atacar do engodo do moneda de EL problema del cambio de do podría de Por Ejemplo, cambio para $1 do EL do almacenando, luego para $2, monto llegar do al do hasta do así de y inicial. la retornar solución óptima de y. 
pasos dos siguientes do los do engodo do realiza do SE do dinámica de Programación: 
1. problema usar óptimo do al do una solución óptima do construir de para do esta do subestructura y do la de Encontrar um partir de los subproblemas. 
2. costo en términos de la solución óptima do EL do definir dos debemos do recursividad de Mediante. 
3. Situações óptimas reais, tomo calcular de Computar EL costo de una solución de EL costo le le do añadiendo de EL costo de MI solución do decir do es uma liga anterior do que do subproblema do EL do que resolvió do instancia do una. 
4. Base do en do la solución óptima de Construir um computada do fue do que do la información. optimales dos subestructuras do descubrir de para dos comunes de Patrones: 
1. una crear elección y la creación de esta elección do la solución es do que do muestra do problema do EL do Si, géneros subproblemas dos más da ONU o um resolver. 
2. Os dado do problema do EL de para do que de Supongamos, que do la solución do toma conduzem um la solución óptimo. Nenhuns determinamos esa elección do como do importara dos no.. obtuvimos de solo do la do que dos asumimos. 
3. realizada do la elección do engodo, EL resultante espacio de subproblemas do caracterizara do seguirán y cómo dos subproblemas dos cuales dos determinamos. 
4. O la solución do en dos usados de las soluciones de los subproblemas do que do muestra do SE óptimo deben optimales do ser dos solos do si do por. O subproblema de cada solución de un do que do supone do Si nenhum una contradicción do en do deriva do luego do es óptima y, original demostrar do problema do EL do mejor solución para do una do obtener do puede do que do deberá dos entonces, por contradicción do que do ya usted o una óptima solución do tener do supone. subproblemas óptimos de de um varios do partir do una solución do tiene do SE do Si, esfuerzo do bajo do engodo do unir do podrán do SE dos estos.
30 
7.1 dinámica invertido de de la programación do enfoque de Memoización. 
del i-esimo numero de la secuencia de fibonacci de Problema de la Obtención: problema de Definicióndel: fibonicci do EL iesimo numero de la secuencia de do requiere do SE, donde: f (i) = f (i-1) +f (i-2), donde f (0) =0 y f (1) =1 
Pitão do en de Solución:
31 
def fibonacci (n): 
se n < 2: 
n do retorno 
fibonacci do retorno (n-1) + fibonacci (n-2) 
la peor implementación de fibonacci de Esta es, crecimiento de exponencial problemas do un do forma do en do realiza do SE do que do ya. 
yf do af do llamara de f (5) (3) (4) 
yf do af do llamara de f (4) (3) (2) 
llamara de f (3) um f (1) y f (2) 
llamara de f (2) um f (0) y f (1) 
llamara do SE 3 veces um f (0) 
llamara do SE 5 veces um f (1) 
llamara do SE 3 veces um f (2) 
llamara do SE 2 veces um f (3) 
veces do llamara 1 do SE um f (4) 
Las llamadas de fibonacci crecen o secuencia da SU do como:) 
O SE do que do claramente do perito em software VE vuelven resueltas de um fueron do ya do que de instancias del problema do resolver. 
O SE dar podrían do algoritmo do único do perito em software circunstancias de que EL nenhum valido do ejemplo do es un, implementado do mal do esta do porque) (fibonacci presenten resueltas do ya de viejas instancias del problema. estrategia do una de Existe, circunstancia atacar dos estas de para: 
La memoización: resueltas do ya do problema do del de una esconderijo de instancias do engodo do cuenta do SE do donde de Que es un tipo de recursividad en (realizadas de una esconderijo de funciones). O primero buscar do esconderijo do la do en do engodo do basta do donde do En antes o resolverlo intentar do de (nenhum recursiva invocar do forma do en realizadas de um ya dos las). Nenhum bueno do es, globais variável do una do mar do esconderijo do la do que, globales das variáveis do pecado do recursividad do en do esconderijo do una do tener do puede do SE. tiempo dos ganamos do engodo memoización um memoria do en do espacio de de perder da costela. 
Ahora supongamos que hacemos: 
def fibonacci (n): 
se n < 2: 
n do retorno 
fibonacci do retorno (n-1) + def de fibonacci (n-2) memoize (divertimento): 
esconderijo = {} def f (*args): 
se args não no esconderijo: 
esconderijo [args] = esconderijo do retorno do divertimento (*args) [args] 
f do retorno 
una versão memoizada de f do #retorna! fibonacci = memoize (fibonacci) 
llamada do La um fibonacci (50), parece ilimitado, rápidamente do memizacion do pecado do memoizacion do engodo do pero re-tornara-tornara. 
Paso um EL explicar código, 
 común de una función de fibonacci do creo de Primero. (linea 1.2.3.4 do la do en). 
 Luego, esconderijo do llamada do vacía do lista do una do contiene do que do una función do creo. (linea 6 y 7). 
 O esconderijo do llamada do tabla do La, nenhum la función do cuando do desaparece memoize o termina (linea 12).
32 
 O La función memoize o escrita en términos del argumento do fue do que do una función do retorna. Não pôr em esconderijo nenhum global variável do una do es, local do tampoco, sino fechamento do llamado do algo do es, escrita do ser do al do esconderijo de estaba dentro del espaço de do que do accederla función do puede do que.
33 
 O linea 14 do la do En, memoize o reescribir da lebre (de fibonacci) um la función f, en términos de fibonacci, linea 10 do la do en, dentro do allí do cambiando um por la de fibonacci de dirección de divertimento do la (la dirección de la linea 1). 
O asterisco do EL deff do de do caso do EL do En do "(*args)" consome o única do tupla do una do en do une dos posteriores y los dos argumentos do TODOS los. caso de "esconderijo do EL do En [args] = divertimento (*args)", tupla do la do desempaqueta do asterisco do EL. 
 linea finalizar 14 do La de Para. Setea um fibonacci, sobrescribe do que do lo do por um que dos llamadas dos futuras dos las llamen um fibonacci, llamando do estarán do realidad do en um incluido do la función f um llamara do que do mismo de fibonacci um linea 4. do la do en de f. 
lío de Mucho do ¿? 
ze do @memo i 
def fibonacci (n): 
se n < 2: 
n do retorno 
fibonacci do retorno (n-1) + fibonacci (n-2) 
O decorador do EL memoize, o dicha memoizar función dos queremos indica do que. 
7.2 ejemplo de De baixo para cima do Un 
claro do quede do que de Para, del cambio de moneda de la tabla del problema do lleno. monedad $1 dos las do tiene do divisa do MI, $2, $5 y $10 
complicado que EL de fibonacci dos más do es do problema do EL do que de Puesto, entradas dos las do en dos elementos dos más do tiene do tabla do la. 
CambioaEntregar ($) 
0 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
entrego do que de Lo (resta) 
0 
1 
2 
2 
2 
5 
1 
2 
2 
5 
5 
5 
realizado de Trabajo (costo) 
0 
1 
1 
2 
2 
1 
2 
2 
3 
3 
2 
3 
Paso um llene explicar MI tabla de lo do como simples um complejo do lo: 
 quiere $0 sacar do hombre do un do que do asume do algoritmo do EL, entonces mim entrada 0 do la do en do sitúo (rojo), nenhum trabajo restar es 0 do EL do que do así da Nada do que do tengo. 
 quiere $1 sacar do que do asume de Ahora, entonces mim entrada 1 do la do en do sitúo (rojo). unidad do una de Resto, cero do en do monto do EL do quedando, nenhum falta continuar, fue 1. da lebre do trabajo do EL. 
 quiere $2 sacar do que do asume de Ahora, entonces mim entrada 2 do la do en do sitúo (rojo). Resto 2 unidades, cero do en do monto do EL do quedando, nenhum falta continuar, fue 1. da lebre do trabajo do EL. 
 quiere $3 sacar do que do asume de Ahora, entonces mim entrada 3 do la do en do sitúo (rojo). O que do directa do moneda do engodo do entrada da primeira demão do La do escojo dos anteriores y dos entradas dos las de Leo minimiza o final do al do realizado de EL conto del trabajo. (mismo do lo da Dinamarca do caso do este do En, EL 2 do escojo) Resto 2 unidades, ONU do en do monto do EL do quedando, falta continuar, entonces da lebre mim entrada 1 do la do en do sitúo (rojo), trabajo do EL do calculo do unidad y do la do resto, fue 2. do que. 
 quiere $4 sacar do que do asume de Ahora, entonces mim entrada 4 do la do en do sitúo (rojo). Final do al do realizado de EL costo del trabajo do minimice do que do directa do moneda do engodo do entrada da primeira demão do la do escojo dos anteriores y dos entradas dos las de Leo. EL 2 de Escojo, EL 1 do escojer do que do puesto, trabajo do EL do aumentaria. Resto 2 unidades, dos do en do monto do EL do quedando, falta continuar, entonces da lebre mim entrada 2 do la do en do sitúo (rojo), resto 2, queda 0 trabajo do EL do calculo de y, fue 2. do que. 
 quiere $5 sacar do que do asume de Ahora, entonces mim entrada 5 do la do en do sitúo (rojo). Resto 5 unidades, cero do en do monto do EL do quedando, nenhum falta continuar, fue 1. da lebre do trabajo do EL.
34 
 quiere $6 sacar do que do asume de Ahora, entonces mim entrada 6 do la do en do sitúo (rojo). Final do al do realizado de EL costo del trabajo do minimice do que do directa do moneda do engodo do entrada da primeira demão do la do escojo dos anteriores y dos entradas dos las de Leo. EL 1 do EL 5 o de Escojo, mismo do lo da Dinamarca, diferenciarme de do EL 1 para do pongo do pero ávido. Resto 1 unidad, en 5 do monto do EL do quedando, falta continuar, entonces da lebre mim entrada 5 do la do en do sitúo (rojo), resto 5, queda 0 trabajo do EL do calculo de y, fue 2. do que.
35 
 Asume$8=1+2+5 
 síntesis do En, EL índice del próximo de EL resultado de la resta es lugar um visitado do ser. podría una dejar indicación del próximo do En la parte del trabajo perito em software lugar um visitado do ser, en caso de ambigüedad. 
7.3 Sumário 
¿ Posee Subestructura óptimo?diferentes dos instancias do generan do SE do ¿? Enfoque 
NÃO 
NÃO 
Backtraking 
-- 
SI 
Dividir y reinar 
SI 
NÃO 
dinamica de Programación 
SI 
SI 
Algoritmos ávido
36 
Parte III 
Algoritmos de Ordenación 
mediante comparación de 8 Ordenación 
mediante comparación de de Ordenación dos algoritmos do Los, comparaciones de solo do usando ordenan do que dos aquellos do filho. ejemplo de Por: comparaciones do en do basado do es da Introduzir-Insert-sort, Raiz-Radix-sort do pero nenhuns comparaciones do en do basado do es. 
algoritmos de Ordenación in-place, adicionales usar do Los de espacios de memoria do pecado ordenan do que dos aquellos do filho. ejemplo de Por: Rápido-Quick-Sort es in-place, Fundir-Merge-sort do pero nenhum es in-place. 
estables de de Ordenación dos algoritmos do Los, repetidos cambiar dos elementos de EL ou-antro de aparición de do pecado ordenan do que dos aquellos do filho. ejemplo de Por: Fundir-Merge-sort es estable, Escudo-Shell-sort do pero nenhum es estable. cascada ordenar de una lista de nodos en do conseguir de solo do puede do SE dos estables de algoritmos de ordenación do engodo (ejemplo do por do aplellido do nombre y do por de Ordenar). 
atrevemos do derecho no. do que do engodo do ¿ um verlo do al do arreglo do un do esta do ordenado do tan do que do decir? O EL grado de desorden o arreglo do un do posee do que da Dinamarca EL número de inversiones do lo do arreglo no. de de un. 
Vetor A do en un de Una inversión, <j y do cumple i do que da paridade do todo do es (ij) Ai > Aj. 
que de permutación de la entrada do la de de ordenación es do algoritmo de la salida de un do que do decir dos podemos de Entonces nenhuns inversiones do contiene. 
al azar, EL numero medio de inversiones de un vetor de tamaño N es n dos llenados dos arreglos do constante do forma do en dos recibimos do que de Suponiendo (n+1) 
4. O perito em software do numero de Este deduz Pensando vetor es n de de un dos posibles de la cantidad de permutaciones do que (n+1) 
2, donde n (n+1) 
máximo ___ do EL de 2 es promedio do en do es do como do mínimo do EL do numero YO es, mitad do la do es do resultado do EL. 
eficiente do EL algoritmo de ordenación, resuelve por intercambio de posiciones dos inversiones dos más do que do EL do es. adyacente solucionan do una inversión do que dos algoritmos do Los, una eliminan inversión do exactamente, tendrán n do promedio do en do que do lo do por (n+1) 
4 ____ inversiones um realizar. que dez do lo de Por promedio T do tempo running do un do drán (N) = (N2). 
8.1 Introduzir-Insert-Sort 
comparaciones do en do basado de Esta, es y in-place es estable. añadiendo estan dos vamos dos las dos cartas y do entregando do que no. do imaginarse do facil dos más do Es um mano do nuestra do en do esta do que do ordenado do mazo do nuestro. 
otorgada do carta do ultima do la do es do negra do la dos manos y dos las do en dos tenemos do que dos cartas dos las do filho dos gris do parte do La. en EL sentido de máximo dos vamos de Como um recorrido do EL do en do mínimo, algoritmo do EL dos mantenemos estable.
37 
/* 
* arreglo A do EL do en' dea' r' do de' p dos elemntos de Ordena los * [..., p,.. , r,...] * 
InsetSort vago (int p, int r) { 
chave do int; 
int i; 
para (int j = p+1; <= r de j; j++) { 
chave = A [j]; 
i = j-1; 
quando (>key do && A do >= p de i [i]) { 
A [i+1] = A [i]; 
--i; 
} =key de A [i+1]; 
} retorno; 
}
38 
adyacentes dos inversiones do promedio do en do soluciona da introduzir-insert-sort do EL, promedio de T do tempo running do un do tiene de y (N) = (N2). 
nodo auxiliar do es EL tamaño de un do usada do memoria do La MEM = O (1), considera do lo do SE do eso do por in-place. 
8.2 Escudo-Shell-Sort 
Escudo de Donal do por de Creado, por Gonnet do profundidad do en do estudiado do pero. comparaciones do en do basado de Esta, es y in-place nenhum es estable. Do al eliminar do mayor cantidad de inversiones do la de Trata de distanciados comparar do encuentran do SE do que dos elementos do dos, principio do EL do en, cercanos dos más dos elementos do entre do compara do luego, adyacentes comparar dos elementos do finalmente do hasta. 
serie estan llamada secuencia de incrementos do una do en dos puestas dos distancias de Las: final inicial do incremento do al do incremento do EL do desde do va do donde hth2h1. Vale final 1 do siempre do incremento do EL h1 = 1.. 
Vale ordenar do todo i do en la fase de incremento HK para de Después de: a [i] a [i + HK], elementos do los ordenados de um están do distancia do esa. 
Mar de la secuencia de incrementos do que do escudo sugirió GH = N 2 y hk1 = HK 2.. 
mejor do seria de la secuencia de incrementos do que do practica do la do en de Gonnet demostró: GH = N 2 y 
HK 1 = HK 
22. 
elementos do los do entre do por inserción do realiza ordenación do SE um distancia HK.
Algoritmos e estructura de dados
40 
/* 
* al n-1 do del 0 dos elementos de Ordena los 
* arreglo int A do EL do en [..] 
* 
shellsort vago (int n) { 
int i, auxiliar; 
incrementos de //itrero los 
para (int h = n/2; h>0; h = (h==2? 1: adaptado de h/2.2 //insertsort 
para (int j = h; j < n; j++) { 
chave = A [j]; 
i = j; 
quando (key<A do && do i>=h [i-h]) { 
A [i] = A [i-h]; i-=h; 
} =key de A [i]; 
} 
} 
} 
25 
)) {
sabe do lo do nadie do aun do Los casos medio del algoritmo. EL peor caso del algoritmo es T (N) = (N2). subcuadratico do considera do SE. 
nodo auxiliar do es EL tamaño de un do usada do memoria do La MEM = O (1), considera do lo do SE do eso do por in-place. 
8.3 MergeSort 
comparaciones do en do basado do algoritmo do Es un, es estable, pero nenhum es in-place. vencerás da partilha y do filosofía do la do bajo do escrito de Esta. Lebre de Conceptualmente: 
 Partilha: Engodo la mitad de tamaño dos desordenados dos arreglos do en 2 do desordenado do arreglo do Un. 
 Reinar: sublistas dos las de Ordenar. 
 Combinar: ordenadas mezclar dos listas do dos de Unir o (fusão do palabra do la de de la traducción de), ordenada do lista do una do en. 
ONU mezclar do en dos arreglos do dos do de do costo do EL de Cuál es do ¿? O Es de orden lineal, una do cada do constante do en N operaciones de costo do creado do ser do puede do arreglo do nuevo do EL de Porque. Tempo running de T do que no. a Dinamarca un de Lo (N) = 2T (N 2) + O (N) tempo running es T do EL do que dos sabemos dos vencerás da partilha y de la cota de los algoritmos do por do que (mestre do teorema do EL do empleando deo) (registro N. de N) = de N. 
al cambiar, una ordenación do cuidado de Teniendo do mar do que dos logramos estable. memoria EUA extra de Cuanta do ¿? nodos auxiliares do es EL tamaño de TODOS los do usada do memoria do La MEM = O (N), NENHUM ES in-place. 
8.3.1 Fusão de Operación 
vectores de entrada L y R de mezcla parte de de dos do La, vetor i do en EL principio de cada dos índices do tiene 3 do algoritmo do EL do vetor A. do al de Produciendo,
42 
respectivamente de j y k. Comparamos Li contra Rj, en Ak do menor do EL dos almacenamos dos después, incrementamos k dos después, menor do EL da era dos incrementamos i si Li dos después, menor do EL da era dos incrementamos j si Rj deo. (ignoren esos infinitos de la imagen)
27
44 
/* 
 elemntos de' p' a de Ordena los 
 arreglo A do EL do en [..., p,.. , r,. * 
MergeSort vago (int p, int r) {int q; 
se (p < r) { 
q = (p + r)/2; 
MergeSort (p, q); 
MergeSort (q + 1, r); 
Fusão (p, q, r); 
} 
} 
/* 
 elementos Desde A de Mezcla los 
 hasta Desde A [q] y A [r] * 
fusão vaga (int p, int q, int r) int i = p; 
int j = q+1; 
int k = 0; 
mem do int* = malloc (do int*) ((p+r+1 quando (j<=r) do && do i<=q { 
se (A [i] 
<= A [j]) 
mem [k++] 
=A [i++]; 
mais 
mem [k++] 
=A [j++]; 
} 
quando (i<=q) 
=A do mem [k++] [i++]; 
quando (j<=r) 
=A do mem [k++] [j++]; 
para (i=0; i<=r-p; i++) {=mem de A [p+i] [i]; //Lleno A 
}} 
’r’ ..] 
[p] y A[q+1] 
{ 
)*sizeof(int));
45 
Pitão para la ordenación de listas dos EUA do que do algoritmo do EL de Este es, en C++ do implementado do esta do pero. qué de Por do ¿ nenhuma Rápido-Quick-Sort dos EUA? Rápido-Quick-Sort do que de Por NENHUM ES ESTABLE, estables dos algoritmos do engodo do razono do usuario do EL do que do piensa de y!!! 
8.4 Rápido-Quick-Sort 
comparaciones do en do basado do algoritmo do Es un, NENHUM ES estable, pero ES in-place. practica do la do en do que do considera do SE, comparaciones do EL más rápido de los de do es do promedio do en, por do discriminado do es do pero nenhum ser estable. vencerás da partilha y do filosofía do la do bajo do escrito de Esta. Lebre de Conceptualmente: 
 Partilha: Engodo la mitad de tamaño dos desordenados dos arreglos do en 2 do desordenado do arreglo do un da partilha, final do la posición do en do encuentra do SE do que do elemento do un da salva, subarreglos do los 2 do entre do situado do esta do que. 
 Reinar: Final do la posición do en do coloca do ylo de Escoge un elemento del arreglo. 
 Combinar: nivel do ese do en do coloco do SE do que do medio do EL do en do elemento do engodo dos subarreglos do de 2 do ordenado do arreglo de Retorna un. 
caso es T do peor do EL do en do tempo running do EL (N) = O (N2). promedio es T de Pero EL rendimiento del caso (N) = O (registro de N N). 
Funcionamiento: 
1. retorna do ordenado y do arreglo do es un dos elementos do tiene 1 o 0 do arreglo do EL do Si. 
2. contrario do caso do En, escoge un elemento v del arreglo S do SE, pivote cual dos llamaremos do al. 
3. Final do la posición do en de Colocar v. disjuntos dos subarreglos do dos de Particionar S ven I y D, menor tal do mar do elemento xi do todo do que um mayor do mar do yD do elemento do todo de v y um V. (iguales de solo de camionete elementos dos arregos do En ONU de esos um v). 
4. ordenado I seguido de v do arreglo do EL de Retornar, seguido de D.. 
O EL corazón del algoritmo de selección del pivote es do La, equivale do mal do hacerlo um algoritmo de do un do tener orden o cuatrático. 
8.4.1 Selección Del Pivote 
la selección del ideal pivote do ¿ Cómo es? tamaño igual do de dos subconjuntos do en 2 do conjunto do al da partilha do pivote do EL do cuando do presenta do SE do caso do mejor do EL. T (N) = O (registro de N N). 
la selección pésima del pivote do ¿ Cómo es? Géneros vacío do pivote do EL do reiteradamente do cuando do presenta do SE do caso do peor do EL do subconjunto do un. T (N) = T (N 1) + O (N) = O (N2). medio es T do caso do EL (N) = O (registro de N N). 
Esto no. corta o filho do algoritmo do al do degeneran do que dos entradas dos las do que do indirecta de de forma, repetidos dos elementos do engodo TODOS los do arreglo do ordenado y un do ya do arreglo do un. 
elegimos do ¿ Cómo, pivote do al de EL elemento del medio do conocer do pecado do rápida y de de forma? 
 elemento da primeira demão do EL de Escoger: más populares, desordenado muy do forma do la do Es do esta do arreglo do EL do que do asume do puesto, realidad do la do en do cuando nenhum así do es. nivel do por do nivel do repetirá do SE do comportamiento do mal do este de Y, usarlo do desaconseja do SE do eso do por. elemento da primeira demão do EL dos más do uso de Nunca. 
 elemento ultimo do EL de Escoger: estadísticas dos razones dos iguales de Por, nenhum elemento ultimo do EL do uso. 
 al do elemento do EL de Escoger azar: buena elección do una do Es, promedio do caso do EL do tendrá do SE de y.
46 
 Escoger EL elemento del medio: una elección razonable, algoritmo do Es do al do degeneran do que dos casos do los do evita, pasiva do una elección do considera do SE do pero, malo evitar do pivote do un do elegir do intenta. 
 Escoger la mediana de tres: mejor que EL del medio do elemento de Escoge un. elemento da primeira demão do EL dos seleccionamos de Primero, EL N 2 - elemento ultimo do EL do esimo y, mediana de los 3 do la dos escogemos do finalmente, pivote do elemento do como. Final colocar ordenar do al do pivote do EL dos valores y dos tres do los do requiere de Implementar la mediana de tres.
47 
8.4.2 Estrategia de la Partición 
la partición de Pasos para: 
1. pivote do al de Intercambiar contra o elemento ultimo do EL. 
2. menores dos elementos de Agrupar los mayores do izquierda y um los do la um derecha do la. 
3. mayores do EL primeira demão elemento del grupo de los de Intercambiar contra o pivote do EL. paso de varias formas de hacer El Segundo do feno: 
 centro y do EL do hasta dos extremos do los do desde dos índices do dos do engodo do recorrer de Una es comparar contra o pivote do EL. O mitad do primera do la do en do pivote do EL do que do mayor do elemento do un do busca do SE, mitad do segunda do la do en do pivote do EL do que do menor do elemento do un do busca do SE, vuelve intercambian do SE dos elementos y dos dichos do SE um hasta buscar llegar um SE do que junten índices do dos do los. Deslocamento predeterminado que viaja de izquierda do EL do pasa do eso de Cuando um pivote do al do mayor do elemento do un do seleccionando do esta do derecha, índice intercambian do ese do SE contra o pivote do EL, vuelva do SE do que de EL índice del pivote para do retorna do SE de y um quicksort do en do dividir. 
 pivote do al do intercambiando de Otra es ir contra o intercambiarlo do luego do mitad y do primera do la do en do encontrado do mayor do elemento do un contra o mitad do segunda do ella do menor da ONU, que do hasta nenhuns más do hacer do pueda do SE. 
 mayores do los do engodo do setor do segundo dos menores y un do los do engodo do setor da primeira demão do un do agrupando do derecha do la do hacia do izquierda do la do desde dos índices do dos do engodo do recorrer de Otra es es. (implementada de versión). grafiquito do EL do en dos vemos de Como, al del final subarreglo do pivote y do al do señala do índice r do EL, principio do al de y p. encontrado ultimo do pivote do al do menor do elemento do EL do señala do índice i do EL, analizando do esta do SE do que do elemento do EL do señala do índice j do EL, que do decir dos podemos do que do lo do por: Os elementos do Los con o desde p dos índices do los um i (vale do que do principio do al da salva (p 1)) menores de la zona de los elementos do filho. Os elementos do Los con um elementos do desde i + 1 dos índices do los de j 1 (principio do al da salva) do filho mayores de la zona de los. intercambia de solo do SE do SE do luego do incrementa i y do incrementa do SE do pivote do al do menor do elemento do un do descubre do SE do la posición j do en do incrementa J. Cuando do SE do simplemente do pivote do al do mayor do elemento do un do descubre do SE do la posición j do en de Cuando contra EL elemento de la posición j, incrementa J. do SE dos después.
48 
/* 
 mediante la mediana de tres de Eleccion del pivote. 
 llamando de Finaliza um particiona do que do funcion do la 
* 
int PrePartition (int p, int r) { 
int auxiliar; 
int m = (r+p)/2; entre p y r do esta do que de //indice 
mayor do EL do es do primero do EL de //si, al do paso do lo ultimo 
se (A [p] > && A de A [m] [p] > A [r]) { 
auxiliar = A [r]; A [r] = A [p]; A [p] = auxiliar; } 
mais { 
final do al do paso do lo do mayor do EL do es do medio do EL de //si 
se (A [m] > && A de A [p] [m] > A [r]) { 
auxiliar = A [r]; A [r] = A [m]; A [m] = auxiliar; } 
} 
principio do al do paso do lo do menor do es do medio de //si 
se (A [m] < A [p]) { 
auxiliar = A [p]; A [p] = A [m]; A [m] = auxiliar; } 
penultimos do hago de //a los del medio los 
auxiliar = A [r-1]; A [r-1] = A [m]; 
A [m] = auxiliar; 
divisória do retorno (p+1, r-1); 
} 
/* 
 pivote ultimo do como do EL de Selecciona 
 particionando lugar da SU do encuentra de y 
 pivote do al dos menores dos mayores y do en 
 pivote ultimo do al do intercambia do por 
 mayor do numero da primeira demão do EL do engodo 
 de 0 um pivote do al dos menores dos elementos do los do filho de i 
 de i+1 um pivote do al dos mayores do los do filho j-1 
* 
divisória do int (int p, int r) { 
int x, auxiliar; int i; 
x = A [r]; /x es pivote do EL 
i = p-1; 
//j de p um r-1 
para (int j = p; <= r-1 de j; j++) { 
se (<= de A [j] x) {menor de //si es 
i++; 
auxiliar = A [i]; A [i] = A [j]; A [j] = auxiliar; }
49 
} 
os lugares do los do intercambaran de //se con o pivote do al do mayor da primeira demão do EL. auxiliar = A [i+1];
50 
A [i+1] = A [r]; 
A [r] = auxiliar; 
i+1 do retorno; 
} 
/* 
* arreglo A do EL do en' dea' r' do de' p dos elemntos de Ordena los * [..., p,.. , r,...] * 
QuickSort vago (int p, int r) { 
int q; 
se (p<r) { 
se (<= 7 do r-p) { 
menor de //si es um 7->InsetSort InsetSort (p, r); 
} mais { 
//q = divisória (p, r); 
q = PrePartition (p, r); 
QuickSort (p, q-1); 
QuickSort (q+1, r); 
}} retornar; 
}
51 
8.5 comparaciones inferiores do en dos basados de Cota para los Algoritmos 
aun dos mejores dos comparaciones do en dos basados dos algoritmos de Suponiendo nenhum filho do mejor de Cuánto do ¿ dos descubiertos? 
Teorema: elementos ordenar de para dos comparaciones do únicamente do emplee do que de Cualquier Algoritmo, registro emplear dos menos do al do requiere (N!) comparaciones, tempo running de T do un do tendría do que do lo do por (N) = (registro de N N). 
Prueba: O arreglo de N do un do entrada do como dos tenemos do Si, elementos, EL do interesa do como no. orden, os posibles es N do EL numero de permutaciones! , inversiones eliminar do al dos posibles de EL numero de permutaciones dos bajamos do logaritmicamente do como (posibles de una mitad de permutaciones, por la eliminación de inversión dos imposibles de segunda mitad de permutaciones do otra de y), registro do es es do claro do queda (N!). 
8.6 Contar-Counting-Sort 
NENHUNS comparaciones do en do basado do algoritmo do ES un, ES estable, pero NENHUM ES in-place. tabla do una do en dos elementos de la cantidad de apariciones de los do contabiliza do SE de Basicamente, elemento cual do mismo do EL do por do indexada do es do la. O en do muestran do SE do que do es do resultado do EL orden apariciones dos las. 
O están dentro del conjunto de la entrada de los elementos do que do asume do SE C = 0 k, reativo determinar do EL de para do arreglo do este do usando orden, en ordenar T dos elementos de de N do entrada do una do puede do SE (N) = O (N + k) = (N). entrada do como do arreglo A do EL do engodo do cuenta de Este, contabilizacion lugar do la do almacenaran do SE do donde do EL do salida y C es do como de B. 
Pasos: 
 lo de Um dos contabilizamos de Primero, arreglo C. do EL do en (imagen a) 
 Segundo Acumulo las contabilizaciones.(imagen b) 
 inverso do modo do En, elemento ultimo de Um do EL do tomo (pila fuese), la posición do una do si do como do obtengo do arreglo C y do EL do en do elemento do ese do engodo do indexo, ONU do en do esa posición do decremento do arreglo B. Luego do EL do en. (imagen c, d y e). 
algoritmo ultimo do al do hacer do podría do en aparición do nodo do EL de Retornando estable. def CountingSort (A, k) 
0] *k do c= [ 
lo de Um do #contabilizo para x em A: 
c [x] +=1 
contabilizaciones dos las do #acumulo para i na escala (1, k): 
c [i] +=c [i-1] 
correcta ultimo do posicion do en SU do elemento do EL
52 
do #pongo para x inreversed (A [:]): 
c [x] - =1 
=x de A [c [x]]
53 
8.7 RadixSort 
NENHUNS comparaciones do en do basado do algoritmo do ES un, ES estable, pero NENHUM ES in-place. Prolongamento EL rango de la entrada do SE EUA para. posibilidades do toma k do digito do cada dos digitos y do tiene d do entrada do la de Donde. O en dos elementos de de N do entrada do la do reordena de RadixSort orden T (N) = O (d (N + k). 
radixSort (A, d) 
para i = 1 a d: 
usar uma sorte estável para classificar a disposição A no dígito i..
54 
Parte IV 
avanzado de Repazo (Pila, cola y Lista) 
Las Estructuras de Datos, abstractos de filho tipos de datos. Tipo de dados abstrato(ADT): conjunto de do EL do Es: 
 Representación de los datos. 
 permitidas de Conjunto de las operaciones. 
9 Pilas (pilhas) 
Pila: 
 otro do sobre de perito em software camionete apilando ONU do que de un conjunto de datos do como dos datos de Representa los. pila de libros do una de Como. lifo do política do la do engodo do lista do una do vetor o do un do engodo do implementada do ser do puede do pila do La. 
 acceso do EL do restringen dos permitidas dos operaciones de Las de solo um la cima de la pila. 
– empurrar en apilar la cima de la pila do elemento do un do inserta deo. 
– estalar o pila desapilar do la de un elemento de la cima de do quita deo. 
– escalar o insertado do recientemente dos más do elemento do EL dos lee do cima deo. 
O filho de dos básicas dos operaciones de Las orden o constante.
55 
10 Colas (filas) 
Cola: 
 en do primero do EL do priori-priori-dad do teniendo da cola de camionete formando do que de un conjunto de datos do como dos datos de Representa los llegar. cajero de supermercado de Como la cola de un. política fifo do la do engodo do lista do una do vetor o do un do engodo do implementada do ser do puede da cola do La. 
 acceso do EL do restringen dos permitidas dos operaciones de Las de solo um la cabeza de la cola. 
– Inserção de Insertar o, al de final la cola do elemento do un do inserta. 
– Quitar o parado, EL primeira demão elemento de la cola do quita. 
– Primero o primeiramente, EL primeira demão elemento de la cola dos lee. 
O filho de dos operaciones de Las orden o constante.
56 
11 Lista Enlazada 
11.1 Lista Enlazada simples (lista lig) 
Lista Enlazada simples: 
 forma almacenan do en do SE dos elementos do Los nenhum contigua, contenedor do nodo do en un do almacena do SE do elemento do cada, al siguiente nodo de la lista do acceso do engodo. elemento representan do siguiente do al do puntero do EL do por dos encadenados de un conjunto de nodos do como do SE dos datos do Los. 
 buscado do nodo do EL do hasta do cabeza do la do desde dos nodos de EL costo del recorrido de TODOS los do tiene do nodo do al do acceso do EL (nodo da primeira demão). O acceso es de do EL do que do lo de Por orden lineal. 
– Inserción, introduzem o lista do la do en do nodo do un, siguiente anterior do añadir dos pensamos de del que do nodo do al do referencia do la do tener do requiere um él, referencias actualizar dos las de para. 
– Búsqueda, buscado de EL contenido del nodo do leer. 
– Eliminación, pensamos anteriores eliminar, referencias actualizar do que de del buscado do nodo do al do referencia do la do tener do requiere dos las de para. 
11.2 Lista Enlazada Doble (lista lig dobro) 
Lista Enlazada Doble: 
 contenedor simples do nodo do cada do donde do enlazada do lista do una do Es, al siguiente nodo de la lista do acceso de además de tener, al nodo anterior de la lista do acceso do otro do tiene. 
 buscado do nodo do EL do hasta do cabeza do la do desde dos nodos de EL costo del recorrido de TODOS los do tiene do nodo do al do acceso do EL (nodo da primeira demão). O acceso es de do EL do que do lo de Por orden lineal. 
– Inserción, introduzem o lista do la do en do nodo do un, siguiente anterior do añadir dos pensamos de del que do nodo do al do referencia do la do tener do requiere um posterior do nodo do EL do él y, referencias actualizar dos las de para. 
– Búsqueda, buscado de EL contenido del nodo do leer. 
– Eliminación, pensamos posterior anteriores eliminar, referencias actualizar do que do nodo y del buscado do al do referencia do la do tener do requiere dos las de para.
57 
11.3 Circular de Lista Enlazada 
Circular simples de Lista Enlazada: contenedor ultimo do nodo do EL do donde simples do enlazada do lista do una do Es, siguiente do nodo do como de primeira demão nodo de la lista do al do acceso do tiene. 
Circular dobro de Lista Enlazada: contenedor ultimo do nodo do EL do donde doble do enlazada do lista do una do Es, siguiente do nodo do como de primeira demão nodo de la lista do al do acceso do tiene; nodo ultimo do como de nodo de la lista do al do acceso do tiene do EL primeira demão nodo de la lista de y anterior. 
11.4 Manequim de Nodos 
Manequim simples de la utilización de nodos do mediante dos enlazadas dos listas dos las de Simplificación de la implementación de (sentinela, centinela deo): 
 enlazadas de implementación de las listas do La, nodo anterior, nodo do al do referencia do la do tener do requiere do un elemento después de un do elimina do inserta o do SE do siempre do que do piensa do SE do que do por. 
 O que de Lo introduz especiales dos casos do dos: 
– la inserción al principio de la lista 
– la eliminación EL principio de la lista. 
 nodo anterior, EL código do un do feno do siempre de EL requisito de que dos satisfacemos do Si dos simplificamos um memoria do en do pequeña penalización de de una do cambio, ficticio do nodo do un do principio do al do siempre do tener, ignoraran cual de las rutinas de exploración do al. 
Manequim doble de la utilización de nodos do mediante dos enlazadas dos listas dos las de Simplificación de la implementación de (sentinela, centinela deo): 
 Os enlazadas doble, siguiente anterior de implementación de las listas do La do nodo y do al do referencia do la do tener do requiere, nodo y do un elemento después de un do elimina do inserta o do SE do siempre do que do piensa do SE do que do por antes de
58 
otro.
59 
 O que de Lo introduz especiales dos casos do cuatro: 
– inserción al principio de la lista 
– al de final la lista de inserción 
– eliminación EL principio de la lista. 
– al de final la lista de eliminación. 
 posterior anterior do nodo y do un do feno do siempre de EL requisito de que dos satisfacemos do Si, EL código dos simplificamos um memoria do en do pequeña penalización de de una do cambio, final do al do ficticio do nodo do otro do ficticio y do nodo do un do principio do al do siempre do tener, ignoraran de las rutinas de exploración dos nodos dos aquellos. 
11.5 las Listas de Implementación de las listas Implementación de: 
 clásica de Visión: representa do que do clase do una de Como principales dos operaciones dos las de um contiene do lista do una (nodo real) y do al do puntero de al principio del nodo y do puntero. 
 Visión recursiva de los nodos: representa do que do clase do una de Como recursivas de um filho do que dos principales dos operaciones dos las do contiene do lista de como contenedor de una do nodo do un (nodo) do siguiente do al do puntero de datos del nodo y y.
60 
Parte V 
Grafos 
12 Definiciones 
por do formada do esta do que do es una estructura de datos do grafo do Un: 
 nodos do EL conjunto de los vértices o. 
 EL conjunto de las aristas o arcos. 
une do que dos vértices do dos do por do definida do esta do arista de Cada. O filho dos aristas de Las pares ordenados. O EL de Sí orden o dirigido do es do grafo do EL do que dos decimos do relevante do es, arista do otra do es do diferente do una permutación dos pues. O EL do Si orden o la do de do diferente do es do arista do la do relevante do es (3.4) (4.3). dirigido o do es do grafo do EL nenhum dirigido, nenhuns híbridos do feno. 
vértice do al do adyacente do es do vértice 2 do EL do que dos dados do SE 1 en EL conjunto de las aristas do esta do si (1.2). Os aristas de Las pueden o peso do único do un do contener. 
O Los peso de las aristas suelen nodos representar do los do entre dos tiempos de medidas de distancias o. 
vértice de Existe un camino de un um medio do EL do en dos adyacentes dos vértices do una sucesión do feno do si do otro. Pesos do pecado de longitud del camino do La, camino do EL do en dos recorridas do es la cantidad de aristas. Pesos do engodo de longitud del camino do La, recorridas dos aristas dos las do es la acumulación de los peso de. O vértice de Existe un camino de un um cero de si mismo de longitud, sin arista pasar do ninguna do por. RASGO do algoritmo do EL do ejemplo de Por (la solucionar función de IGP de para EL problema de ejercer 
routeres do en los): Pesos do pecado de Utiliza la longitud de los caminos. 
dirigido do grafo do en un do ciclo do Un, camino do es un, arista do una do por dos menos do al do pasa do empieza y do que do vértice do mismo do EL do en do termina do empieza y do que. acíclico do grafo do Un, nenhuns ciclos do posee.
61
62 
proporcional de la cantidad de aristas es do que do cumple do denso do grafo do Un um cuadrado do al de cantidad de vértices do la: E= (V2). proporcional avoirdupois de la cantidad de aristas es do que do cumple do disperso do grafo do Un: E= (v). 
entrantes de cantidad de aristas do La, nodo do del do EL grado de entrada do es. 
salientes de cantidad de aristas do La, nodo do del do EL grado de salida do es. 
ejemplo de Por: caso especial, EL Árbol do Un de de grafo es, tiene grado de entrada do nodo do cada do que uma ONU do sumo do lo.
63 
grafo de 13 Idéias de Implementaciones de 
Representación por lista de adyacencia: que de Que es un conjunto de listas (donde un vetor de listas o un diccionario de listas) um vértice do cada, adyacentes de lista de vértices do una de le corresponde um él. O memoria es de do en do empleado do espacio do EL orden de MEM = (e), densos cual dos dispersos o dos grafos de para do justo do es do lo. 
por Matriz de adyacencia de Representación: matriz bidimensional, arista do una de Mediante do cada (v, w) espacio A do EL do en do peso da SU do almacena [v, w], infinito pesan dos inexistentes dos aristas de Las. O memoria un do una de Ocupa orden de MEM = (V2). O La inicialización de la matriz es de orden O (V 2).. almacenado do espacio do EL nenhuns dispersas das matrizes de para do justo do es.
64 
máximo do camino do mínimo y de 14 Calculo del camino 
positivo de Ciclo: ciclo dar y EL acumular peso de las aristas do un do al de Cuando (aristas contabilizar) dos las deo, positivo da valentia do un do tiene do este. 
negativo de Ciclo: ciclo dar y EL acumular peso de las aristas do un do al de Cuando, negativo da valentia do un do tiene do este. 
Marcando um destino dos nodos do como do resto do al de Origen y do nodo do como do nodo do un: 
 pequeña calcular dos más do la do mar do longitud do cuya do camino do EL do es do que do mínimo do camino do EL de Deseo posible. 
 Dos más calcular do la do es do longitud do cuya do camino do EL do es do que do máximo do camino do EL de Deseo posible grandioso. 
 Do puede cual hablar do EL dos nodos do dos do entre do máximo do camino de de un do sentido de Tiene do ¿ positivo pasar do ciclo do un do por? Não, ciclo dar do EL do por do vuelta do otra do al grandioso dos más do camino do un do existir do va ha do siempre dos pues. 
 Do puede cual hablar do EL dos nodos do dos do entre do mínimo do camino de de un do sentido de Tiene do ¿ negativo pasar do ciclo do un do por? Não, ciclo dar do EL do por do vuelta do otra do al de chico dos más do camino do un do existir do va ha do siempre dos pues. 
 Nenhum existen negativos que dos ciclos do engodo dos grafos do en dos mínimos dos caminos y nenhum existen positivos dos ciclos do engodo dos grafos do en dos máximos dos caminos. 
14.1 Pesos do pecado de Grafo 
Pesos do pecado do mínimo de Problema del camino: hacia encontrar EL resto de los vértices do origen do vértice do EL do desde do mínimo do camino do EL de Quiero, pesos do pecado do grafo do en un (recorridas dos aristas dos las do filho do peso do EL).
65 
mínimo de Búsqueda en anchura del camino (BFS): 
 analiza almacenar do SE do que do al dos adyacentes dos nodos de para TODOS los da cola do una do emplea do SE. 
 O Los nodos del grafo poseen a cor: Negro, Gris o Blanco. 
 O Los nodos del grafo poseen o predecesor: do nodo cual do EL do EL cola anterior do la do en do puso do lo do que es. 
 Os pintados de do están do que dos nodos do Los blanco, visitados representan do fueron do nunca do que (cola do la do en do estuvieron do nunca). 
 visitados dos nodos do filho dos grises dos nodos do Los (cola) do la do en do están, minimo do camino do EL do encontrado do perito em software han do nunca do pero. 
 visitados dos nodos do filho dos negros dos nodos do Los, EL camino mínimo de ellos do encontrado do SE ha do pero (salieron de la cola). 
 Os pintados de do están dos nodos do inicio TODOS los do Al blanco o mínimo de y tiene longitud del camino igual um infinito (+). 
 mínimo de tiene longitud del camino do origen do nodo do EL igual um 0, cola do la do en do nodo do unico do EL de esta pintado de gris y es. nadie do es do origen do EL predecesor del nodo. 
toma un elemento de la cola do algoritmo do EL: 
 nadie especial do es do predecesor do cuyo do origen do nodo do EL do mar do tomado do nodo do EL do que do es do caso do EL, y nenhum mínimo de la longitud del camino do relaja do SE. 
 infinito do desde do mínimo de la longitud del camino do relaja do SE do forma de De otra um la longitud del predecesor + 1.. 
 momento do En un, están do que dos nodos do los do filho dos negros dos nodos do los um distancia 12n2n1 n, están dos grises dos nodos do los um nn do distancia + 1, nodos blancos do filho do resto do EL. 
Después, adyacencia del nodo de blancos de la lista de dos nodos do los do tomo, cola do la do en do coloca dos gris y los da cor do en do pinta do los (llamo do los do que do predecesor do EL do marcando). Negro ultimo do como do nodo do al do pinto de Por. 
termino empezar dos negros y de sean dos nodos do que TODOS los do hasta de Vuelvo. 
vez de solo do sola do una da demora do rebaj do es do nodo do cada do que de Observar. anchura es T de de la búsqueda en do tempo running do EL (VE) = O (V+ E). O mínimo estar do camino do EL dos obtenemos de Podemos seguros de que, vez do sola do una do actualizando (relajando) um longitud do la, porque los nodos perito em software camionete procesando en orden de niveles, que do lo do por, coste do otro, mínimo igual superior do camino do al do seria o.
66 
14.2 negativo de aristas de peso do pecado de Grafo 
positivos dos pesos do engodo do mínimo de Problema del camino: hacia encontrar EL resto de los vértices do origen do vértice do EL do desde do mínimo do camino do EL de Quiero, pesos do engodo do grafo do en un nenhuns negativos. 
nodo visitar do al do que de Proponemos um adyacente do es do que de w do nodo do al do relajando do nodo y um como Dw = minuto de v (Dw Dv + cvw). que da lebre de Esto nenhum vez do sola do una dos actualizaremos do que do garantice do SE. 
Teorema: O vértice de la atención de vértice en do posando dos vamos do Si, um vértice do un nenhum visitado, que do los do entre minimicen a valentia de Di do EL, mínimo do camino do EL do correctamente do producirá do algoritmo do EL, que do siempre nenhuns negativas dos aristas do halla. 
Algoritmo de Dijkstra: 
 visitado almacenar do al dos adyacentes dos nodos de Emplea una cola de prioridad para los. 
 mínimo do camino do un do tiene do origen do nodo do EL igual um 0, nadie do es do predecesor do EL, en la cola de prioridad do esta de esta pintado de gris y. 
 Os nodos do principio TODOS los do Al tienen de um están do infinito y do mínimo do camino do un os pintados que igual o de blanco, en la cola de prioridad do estuvieron do nunca do porque. 
 visitados do ser do en la cola de prioridad para do están dos grises dos nodos do TODOS los (necesario de relajados de ser). 
 O ya dos negros dos nodos do TODOS los tienen o mínimo de la longitud del camino. 
 negros do filho dos nodos do cuando TODOS los do termina do algoritmo do EL. 
elemento do un do toma do algoritmo do EL, elemento v, prioridad de de la cola de (cola), engodo Dw = minuto do la do en dos nodos de menor longitud del camino de los do engodo do elemento do EL do es do que de de v do adyacencia de blancos y grises de la lista de dos nodos de Relajo los (Dw Dv + cvw). 
en la cola de prioridad do coloco dos ylos dos gris do en de blancos dos nodos do los do Pinto. 
Negro da cor do en do nodo v do EL do Pinto. 
vuelvo de Y negros comenzar de um sean dos nodos do que TODOS los do hasta. 
O dijkstra es de T de del algoritmo de do tempo running do EL (EV) = O (ElogV), en insertar la cola de prioridad es de do elemento do un do que do puesto orden o nodo es de do un do extraer do constante y orden o respecto do engodo do logarítmico um la cantidad de nodos, binario do montículo do un do como do implementado de la cola de prioridad perito em software ha do cuando.
67 
14.3 negativos dos ciclos do pecado de Grafo 
negativos dos ciclos do pecado do mínimo de Problema del camino: hacia encontrar EL resto de los vértices do origen do vértice do EL do desde do mínimo do camino do EL de Quiero, negativos dos ciclos do pecado do engodo do grafo do en un. 
Algoritmo Pregoeiro-Bellman-Ford: puede do que do vez do cada do rebaja da SU lista de adyacencia y do recorre do vértice do cada dos vértices y para de Recorre TODOS los. tenga do que de cada arista de entrada do por do vez do una do analizado do es do vértice de Cada. 
Tempo running del algoritmo es T do EL (EV) = O (EV) 
Pregoeiro-Bellman-ford () 
en V do cada v de para (origen do EL do desde) 
en LISTA-DE-ADYACENCIA de w do cada de para (w) relaxa (w): Dw=min (Dw, Dv+Cvw) 
14.4 O engodo de Grafo orden topológico
68 
O que dos grafos do filho nenhum contienen os ciclos, do puede cual do SE do EL en ordenar una secuencia de vértices dos nodos do los, vértice de solo do un camino de un do feno do que do verifica do SE dos cuales do los um otro. 
Feno un camino de v do Si um w, ordenaciones de solo topológicas de de las posibles do una de aparecer después de v en do puede de w dos entonces. 
O engodo do Un ejemplo de grafo orden o PERT do los do filho de topológico. 
Propiedades del grafo: 
 O EL recorrido del grafico en orden topológico, mínimo do camino do EL do tendrá do nodo do EL do que do garantiza, adyacentes relajar intentar pasar dos nodos do él e los do por do al um él. 
 O EL do arma do que de Algoritmo orden topológico, cola de ayuda de una do engodo da lebre do lo: Cola do la do en do de grado de entrada 0 dos nodos de Poner los, adyacencia do los enlaces logicamente de la lista de do elimina do luego. O engodo grado de entrada 0 dos nodos do nuevo de Buscar, que do hasta do repite de y esten o engodo de solo grado o superior dos nodos do halla do que da cola o do la do en dos nodos do TODOS los igual um 1.. 
- Os nodos do feno do Si con o mayor o de grado de entrada igual uma ONU, que feno presencia de ciclos do es, perito em software do que do lo do por o EL do rompe que orden o topologico. 
 que dos Dado nenhuns más buscar do camino do EL dos podemos dos positivos dos ciclos do feno largo, critico do camino do llamado. 
 PERT do en un grafo de eventos do esto dos usamos do ejemplo de Por. 
Problema del camino critico: hacia encontrar EL resto de los vértices de los vértice de origen do desde do máximo do camino do EL de Quiero (cero do longitud do engodo), ciclos do pecado do engodo do grafo do en un. 
Algoritmo: vacía do este do que do hasta de Tomo un nodo de la cola, como Dw do máximo de EL tiempo del camino do modifico de y = máximo (Dw Dv + cvw). 
O que dos actividades do filho do que de Suponiendo corren um deseo EL minimizar tiempo del proyecto do contratiempo y. longitud do mayor do engodo do nodo do EL, es EL tiempo del proyecto. 
máximo de la actividad de Problema del retraso: Do pecado demorar calcular do actividad do una do puedo do cuanto do quiero do Si proyecto retrasar do al. Um empiezo de máximo y de ahí do camino do al do igualo do los dos nodos dos últimos do los. 
O en da cola do la de Lleno orden o inverso de topológico, critico do camino do correspondiente da SU do engodo dos nodos do los do engodo. 
Algoritmo: vacía do este do que do hasta de Tomo un nodo de la cola, modifico EL tiempo de demora de y 
como alta tensão = minuto (cvw da alta tensão Hw). 
O que dos aristas de Las cumplen o critico de filho parte del camino do == 0 do cvw da alta tensão Dw.
69 
Parte VI 
raíz do engodo de Árboles 
15 Definiciones 
acíclico do grafo do es un do árbol do Un, tiene de solo cual do EL EL conjunto de nodos do en um raíz do llamado do distinguido do nodo do un do existe do entrante y do arista do una do sumo do lo. 
Um nodo c do cada, excepto um raíz do la, hijos dos más da ONU o do tener do puede do nodo do que p es padre del nodo c. Un do que c es hijo del nodo p y do nodo P. Decimos do EL do desde do arista do una de le llega, hijos do pecado do nodo do un, hoja do nodo do llamado do es. 
Fazer feno o nodo do cada do hasta do raíz do la do desde do camino do único do un. nodos do tiene N do árbol do Si un, aristas do tiene N-1 dos entonces. 
Longitud del camino, recorridas do es EL número de aristas. 
Profundidad (arriba de para): nodo do EL do desde do es EL número de aristas um raíz do la. 
recursiva do engodo visión: profundidad 0 do tiene do raíz do la, tiene la profundidad del padre +1. do nodo de y un. 
Altura (abajo de para): profundo dos más do nodo do al do nodo do EL do desde do es EL número de aristas. cero de altura do tiene do hoja de Toda. 
Altura del árbol, la altura de la raíz do es. 
O que dos nodos do Los tienen irmãos denominan dos hermanos o do SE do padre do mismo do EL. 
Feno un camino de u do Si um v, que v es descendiente de u y u es ascendente de v. dos decimos dos entonces. 
tiene do que do es EL número de descendientes do nodo do EL tamaño de un + 1 (mismo do EL dos más). EL tamaño de la raíz do EL tamaño del árbol es. 
Visión Recursiva de árbol: vacío do esta do árbol do EL do que dos dados do SE dos nodos do feno 0 de Cuando, raíz do denominado do nodo do en un do consiste do árbol do EL do contrario do caso do en, referencias cual dos más do tiene 0 o do EL árboles dos otros, subárboles do como dos conocidos. subárboles dos más do cero o do raíz y do una do vacío o do es do árbol do Un nenhum T1 dos vacíos, T2,,..., Tk.. Las raíces de los subárboles perito em software hijos denominan de la raíz, subárboles do sus do perito em software denomina padre de las raíces de do raíz do la do consecuentemente de y. conectados estan de Cada ONU de los subárboles um arista do una do mediante do raíz do la. O nodo de Cada define o raíz cual do EL es do del do subárbol do un. figura do siguiente do la do en do muestra do SE do recursiva de Una visión gráfica de esta definición: 
Clase NodoArbol: 
Clave 
hijo de Clase NodoArbol 
siguienteHermano de Clase NodoArbol 
una lista enlazada de hermanos do es do nodo de Cada.
70 
en Preorden de Recorrido: lleva do SE um nodo do EL do sobre do procesado do EL do cabo, hijos do sus do sobre de de hacerlo das apostas.
71 
en Postorden de Recorrido: lleva do SE hijos de um sus do sobre do procesado do EL do cabo, nodo do EL do sobre de de hacerlo das apostas.
72 
binario de 16 Árbol 
binario do Un Árbol, tener cual do puede do nodo do cada do EL do árbol do es un um sumo do lo 2 hijos. derecho do nodo do izquierdo y do nodo do como do ahora de Distinguidos. 
nodo es do EL tamaño de un: derecho do EL tamaño del hijo de EL tamaño del hijo izquierdo+ + 1 (mismo do EL dos más). 
EL tamaño de la raíz do EL tamaño del árbol es. 
más igual 1. do mayor um altura do engodo de del hijo do la de Altura del nodo es. 
16.1 binario do EL Árbol do sobre dos iteraciones de Recorrido e 
O determinado de iteración de los nodos en un do La orden arboles de de recorrido de los: diga remplazar remplazar "(nodo)" por procesar "rendimento do donde dos corutinas y do engodo do en las rutinas de recorridos do consiste (nodo)". 
Los recorridos de forma nenhum recursiva, pila implementan do una do engodo do SE, estado do EL do engodo do nodo do EL do es do que do tupla do una do apila do SE do donde. instante do cierto do en do visitando dos estamos do que do nodo do EL do representa de cima de la pila do La. 
16.1.1 Preorden 
en Preorden de Recorrido: lleva do SE um nodo do EL do sobre do procesado do EL do cabo, hijos do sus do sobre de de hacerlo das apostas. 
Preorden (nodo): 
procesar (nodo) 
se nodo.izquierdo: 
Preorden (nodo. izquierdo) se nodo.derecho: 
Preorden (nodo.derecho) 
Algoritmo nenhum recursivo: O visitado do es do nodo de Cada 1 vez do sola, SE do luego do nodo y do EL do procesa do SE do desapilado do es do cuando do apilado y do es do decir do es añaden hijos do sus, izquierdo do EL do luego do derecho y do EL do primero (o EL orden), derecho do invierte do pila do la do que do acordarse do EL do luego do izquierdo y do EL do primero do procesado do mar do que de para. 
tupla do La nenhum estado do requiere. 
Preorden (nodoRaíz): 
Stack.push (nodoRaíz) fazem: 
nodo = Stack.pop () 
procesar (nodo) 
se nodo.derecho nao nulo: 
Stack.push (nodo.derecho) 
se nodo.izquierdo nao nulo: Stack.push (nodo.izquierdo) 
quando (não Stack.isEmpty ()) 
retorno
73 
16.1.2 Postorden 
en Postorden de Recorrido: lleva do SE hijos de um sus do sobre do procesado do EL do cabo, nodo do EL do sobre de de hacerlo das apostas. 
Postorden (nodo): 
se nodo.izquierdo: 
Postorden (nodo. izquierdo) se nodo.derecho: 
Postorden (nodo.derecho) procesar (nodo) 
Algoritmo nenhum recursivo: visitado do es do nodo de Cada 3 veces, desapilado do apilado y do decir do es 3 veces. 
estado do EL do engodo do desapilado do es do nodo do EL do Si: 
 ' primera': Um estado' primera' de izquierdo del nodo en do hijo de de visitar/apilar EL do punto. O aplila do SE do nodo do EL antes o estado' segunda' do en. 
 ' segunda': Um estado' primera' de derecho del nodo en do hijo de de visitar/apilar EL do punto. O aplila do SE do nodo do EL antes o estado' tercera' do en. 
 ' tercera': Um nodo procesar do de do punto. ya do nodo do EL nenhum necesitado dos más do ser do va ha. Postorden (nodoRaíz): 
Stack.push (nodoRaíz,' primera') fazem: 
nodo, estado = interruptor de Stack.pop () (estado): 
caso' primera': 
se nodo.izquierdo nao nulo: 
Stack.push (nodo,' segunda') 
Ruptura de Stack.push (nodo.izquierdo,' primera') 
caso' segunda': 
se nodo.derecho nao nulo: 
Stack.push (nodo,' segunda') 
Ruptura de Stack.push (nodo.derecho,' primera') 
caso' tercera': 
ruptura procesar (do nodo) 
aleta-fin-switch 
quando (não Stack.isEmpty ()) retorno
74 
16.1.3 simétrico de Orden 
O en de Recorrido orden o simétrico: O lleva do SE um hijo Izquierdo da SU do sobre do procesado do EL do cabo, nodo do EL do sobre do procesa do SE do luego, antes o derecho do hijo da SU do sobre de de hacerlo. 
Enorden (nodo): 
se nodo.izquierdo: 
Enorden (nodo. izquierdo) 
procesar (nodo) 
se nodo.derecho: 
Enorden (nodo. derecho) 
Algoritmo nenhum recursivo: visitado do es do nodo de Cada 2 veces, desapilado do apilado y do decir do es 2 veces. 
estado do EL do engodo do desapilado do es do nodo do EL do Si: 
 ' primera': Um estado' primera' de izquierdo del nodo en do hijo de de visitar/apilar EL do punto. O aplila do SE do nodo do EL antes o estado' segunda' do en. 
 ' segunda': Um nodo procesar do EL do de do punto, ya do nodo do EL do luego nenhum estado' primera' do EL hijo derecho del nodo en do SE visita/apila do necesitado y dos más do ser do va ha. 
Postorden (nodoRaíz): 
Stack.push (nodoRaíz,' primera') fazem: 
nodo, estado = interruptor de Stack.pop () (estado): 
caso' primera': 
se nodo.izquierdo nao nulo: 
Stack.push (nodo,' segunda') 
Ruptura de Stack.push (nodo.izquierdo,' primera') 
caso' segunda': 
procesar (nodo) 
se nodo.derecho nao nulo: 
Ruptura de Stack.push (nodo.derecho,' primera') 
aleta-fin-switch 
quando (não Stack.isEmpty ()) retorno
75 
16.1.4 niveles de Por 
forma do en dos niveles do por de Recorrido del Árbol nenhum recursiva: raíz do la do en do comienza do procesado do EL, nietos do los do luego dos hijos y do sus do luego, va por niveles de profundidad. A cola do una do emplea do SE do ello de Para, en do ir do que do que do feno do porque orden. 
PorNivel (nodoRaíz): 
Fila. a inserção (nodoRaíz) faz: 
nodo = Queue.quit () 
procesar (nodo) 
se nodo.izquierdo nao nulo: 
Queue.insert (nodo.izquierdo) 
se nodo.derecho nao nulo: Queue.insert (nodo.derecho) 
quando (não Queue.isEmpty ()) 
retorno
76 
17 Árbol Binario de búsqueda 
EL Árbol Binario de búsqueda, ordenada estructural de de búsqueda do propiedad do la do satisface do que do binario do árbol do es un, la Reza cual: nodo X del árbol do cada de Para, izquierdo de claves del subárbol dos las de los valores de todas, menores do filho um derecho de claves del subárbol dos las de clave del nodo X y los valores de todas do la, mayores do filho um la clave del nodo X.. 
O tanto do lo de Por, en do recorrido do al do consistente do forma do en dos ordenadas do están de las claves del árbol dos todas orden o simétrico. duplicados de la existencia de elementos do impide do propiedad de Dicha. 
17.1 Búsqueda 
Operación: elemento de Búsqueda de un: buscada do en la comparación de la clave do basa do SE contra o raíz do la do desde do comenzando de la clave de turno: 
 idéntica do es do buscada do clave do la do Si um nodo do al do puntero do EL do retorna de clave de turno perito em software do la. 
 menor do es do buscada do clave do la do Si um izquierdo do subárbol do EL do en do buscando do sigue de clave de turno perito em software do la. 
 mayor do es do buscada do clave do la do Si um derecho do subárbol do EL do en do buscando do sigue de clave de turno perito em software do la. 
 vacío do es do subárbol do EL do Si, que retornar nenhum nodo do EL do encontrado do SE ha.
77 
Buscar (nodoDeTurno, claveB): 
se (nodoDeTurno nao nulo): 
se (== nodoDeTurno.clave do claveB): nodoDeTurno do retorno 
se (claveB < nodoDeTurno.clave): 
carro do retorno do barramento (nodoDeTurno. izquierdo, claveB) se (claveB > nodoDeTurno.clave): 
carro do retorno do barramento (nodoDeTurno. derecho, retorno do claveB) nulos 
17.2 Inserción 
Operación: Inserción de elemento: 
 vacío do esta do árbol do EL do Si, nodo do único do un do engodo do árbol do nuevo do un dos creamos. 
 árbol do EL do Si nenhum vacío do esta, clave do en la comparación de la nueva do basa do SE contra o raíz do la do desde do comenzando de la clave de turno: 
 idéntica do es do clave do nueva do la do Si um la clave de turno, nenhuma Nada da lebre do SE.
78 
 menor do es do clave do nueva do la do Si um izquierdo do subárbol do EL do en do la inserción do sigue de clave de turno perito em software do la. 
 mayor do es do clave do nueva do la do Si um derecho do subárbol do EL do en do la inserción do sigue de clave de turno perito em software do la. 
 vacío do es do subárbol do EL do Si, nodo crear y la actualizar referencia del padre do EL. Insertar (nodoDeTurno, claveN): 
se (zero do == do nodoDeTurno): 
nodoDeTurno = retorno novo de NodoÁrbol (claveN) 
se (== nodoDeTurno.clave do claveN): retorno 
se (claveN < nodoDeTurno.clave): 
Insertar (nodoDeTurno. izquierdo, retorno do claveN) 
se (claveN > nodoDeTurno.clave): 
Insertar (nodoDeTurno. derecho, retorno do claveN) 
17.3 Eliminación 
Operación: árbol do EL do en do nodo de Eliminación de un: Os quienes dos nodos do los do filho dos binarios dos árboles do En los mantienen o árbol do al do conectado. 
nodo do EL do encontrado do vez de Una cosas pasar dos tres de um puede eliminar: 
 Primeira demão Caso: 
hoja eliminar do una do ha es do nodo do EL, como nenhum unido do árbol do al do mantiene, derecho do izquierdo o do hijo do hijo do si es dos averiguamos do simplemente, eliminamos do lo do padre y do EL do en do referencia do la dos actualizamos. 
 Segundo Caso: 
hijo de solo do un do tiene eliminar do ha do nodo do EL, derecho do izquierdo o do hijo do hijo do si es dos averiguamos do simplemente, eliminamos do lo do hijo do único do al do apunte do que de para do padre do EL do en do referencia do la dos actualizamos (binario estructural) de del árbol do propiedad do la do restablecería do esto y.
79 
1. Tercer Caso: hijos eliminar do dos do tiene do ha do nodo do EL, binario estructural de del árbol do propiedad do la do restablecer de para, izquierdo de solo do mayor elemento del subárbol do EL do derecho o do EL menor elemento del subárbol dos reemplazantes dos posibles do dos do feno. 
Para simplificar: siempre do aquí dos escogemos, derecho do EL menor elemento del subárbol. Géneros de Esto 3 subcasos, subcaso de solo transforman do en un do SE do practica do la do en do que: 
 Tercer Sub-Caso-Caso: 
derecho do es la raíz del subárbol do reemplazante do nodo do EL (eliminado do ser do va do que de es hijo del nodo). 
– que va de referencia izquierda del nodo do la de Actualizamos um remplazante do nodo do izquierda do referencia do la do en do eliminado do ser. 
– al hijo derecho del reemplazante do apunte do que de para do padre do EL do en do referencia do la de Actualizamos. 
– nodo do EL de Eliminamos. 
 Segundo Sub-Caso-Caso: 
reemplazante do nodo do EL nenhum derecho do hijo do tiene do pero do derecho do es la raíz del subárbol (nenhum eliminado do ser de es hijo del nodo ha): 
– al hijo derecho del remplazante do apunte do que de para do reemplazante do en EL padre del nodo do referencia do la de Actualizamos. 
– apunte do que de para do reemplazante de referencia derecha del nodo do la de Actualizamos um derecho de raiz del subarbol do la. raíz do nueva do la do es do remplazante do nodo do EL do ahora do que do lo de Por. (subcaso do tercer do EL do en de Convirtiéndose). 
 Primeira demão Sub-Caso-Caso:
80 
reemplazante do nodo do EL nenhuns hijos do tiene. 
– apunte do que de para do reemplazante do en EL padre del nodo do referencia do la de Actualizamos um zero.
81 
- apunte do que de para do reemplazante de referencia derecha del nodo do la de Actualizamos um derecho de raíz del subárbol do la. raíz do nueva do la do es do reemplazante do nodo do EL do ahora do que do lo de Por. (subcaso do tercer do EL do en de Convirtiendose). 
sería pseudo do codigo do EL:
82 
getMinimo de la referencia del minimo do #Retorna (nodo): 
se nodo.izquierdo nao nulo: 
getMinimo do retorno (nodo. nodo do retorno do izquierdo) 
getPadre do nodo do del de la referencia del padre do #Retorna (nodoDeTurno, nodoX): 
se == nodoX.clave de nodoDeTurno.izquierdo.clave OU == nodoX.clave de nodoDeTurno.derecho.clave: nodoDeTurno do retorno 
se nodoDeTurno.clave > nodoX.clave: 
getPadre do retorno (nodoDeTurno. izquierdo, nodoX) 
getPadre do retorno (nodoDeTurno. izquierdo, nodoX) 
o que #Trasplantar do #para do nodoA do del de la referencia del padre do actualiza apunten o nodoA de en vez de EL do nodoB do al 
trasplantar (nodoRaíz, nodoA, nodoB): 
se nodoA do == do nodoRaíz: 
retorno do nodoRaíz = do nodoB 
padreDeA=getPadre (nodoRaíz, nodoA) se nodoA do == de padreDeA.izquierdo 
padreDeA.izquierdo = retorno do nodoB 
padreDeA.derecho = retorno do nodoB 
arbol Eliminar de un nodo de un do #Elimina (nodoRaíz, nodoPorEliminar): 
se zero do == de nodoPorEliminar.izquierdo: 
ONU do como do caso do segundo da primeira demão y do #Supongo (zero do ser do podria de nodoPorEliminar.derecho) trasplantar (nodoRaíz, nodoPorEliminar, nodoPorEliminar.derecho) 
retorno 
se zero do == de nodoPorEliminar.derecho: 
caso do segundo do #Supongo: izquierdo do hijo do tiene 
trasplantar (nodoRaíz, nodoPorEliminar, nodoPorEliminar. retorno do izquierdo) 
# nodoMinimo = getMinimo nodoPorEliminar dos hijos do dos do los do tiene de Tercer Caso (nodoPorEliminar. derecho) se nodoPorEliminar.derecho! = nodoMinimo: 
ONU sub-caso-caso do como do segundo da primeira demão y do #Supongo (vacío do subárbol do tener do podria do nodoMinimo) trasplantar (nodoRaíz, nodoMinimo, nodoMinimo.derecho) 
derecho do minimo do nodo do al do apuntara do minimo de #El padre de nodo. 
nodoMinimo. derecho = nodoPorEliminar. derecho 
subcaso sub-caso-caso do tercer do en do segundo da primeira demão y dos #transformamos 
# nodoMinimo do arbol do submarino do del do raíz do es do nodoMinimo do subcaso-Caso do tercer. izquierdo = nodoPorEliminar. o izquierdo trasplantar (nodoRaíz, nodoPorEliminar, o nodonodoMinimo) delete-memoria-memoria (nodoPorEliminar) 
retorno 
17.4 Ordenes 
Los Ordenes de las operaciones: proporcionales do filho do Los ordenes de las operaciones um trabaja do SE do que do engodo de profundidad de los nodos do la. 
O del estructural do propiedad do La não orden nenhum equilibrio do garantiza. 
Filho de de las operaciones do tempo running do Los (undidad do prof.). Os operaciones dos las do equilibrado do árbol de Para un tienen o logaritmico do costo do un, las que os operaciones tienen o costo do un lineal, lazada do degenerado do totalmente do arbol de para un de tiene forma de lista en do árbol do EL do porque. aleatoreo es O dos casos de para
83 
do medio do costo do EL (registro de N N).
84 
18 Árboles AVL 
árbol AVL do Un, más estructural do propiedad do una do engodo do es un árbol binario de búsqueda: 
La propiedad de equilibrio: derecho do izquierdo y de altura de los hijos do La, diferir do puede um unidad do una do en do sumo do lo. 
como -1 do vacío de altura del árbol do la de Tomamos. 
Esto implica tener siempre profundidad logaritmica; La forma del árbol (degenerar intentar do al, crece en forma de fractal). 
la altura do engodo do exponencialmente do mínimo do como do crece do EL número de nodos. 
Teorema: árbol AVL do Un, nodos 1, donde F dos menos F do lo do por do tiene do de altura H (H + 3) (i) EL i-esimo número de fibonacci do es. 
árbol AVL do EL do en do La inserción y eliminación, propiedad de estructural equilibrio da SU do destruir do puede. 
común realizar do la inserción o eliminación de Tras, propiedad de estructural equilibrio do la dos formas do de 4 do violarse do puede: 
1. izquierdo del nodo X do EL subárbol izquierdo del hijo, EL hijo derecho del nodo do que do profundo dos más do es X 
2. izquierdo del nodo X do EL subárbol derecho del hijo, EL hijo derecho del nodo do que do profundo dos más do es X 
3. derecho del nodo X do EL subárbol izquierdo del hijo, EL hijo izquierdo del nodo do que do profundo dos más do es X 
4. derecho del nodo X do EL subárbol derecho del hijo, EL hijo izquierdo del nodo do que do profundo dos más do es X 
Rotación simples: caso de solo de para 1 y 4: O que de Intercambio los papeles del padre de los hijos del extremo producen o conflicto (nodo do EL do mar deo X) contra o conflicto do produto do que da SU hijo del extremo. que a voy do mar de O: 
 conflicto do EL do produjo do que do extremo de de X do hijo do EL do engodo do nodo X do EL de Trasplantar. 
 que do subárbol do EL do engodo do hijo do EL do engodo do une do que do lazo do EL de Remplazar nenhuns problemas do produto 
 que do subárbol do EL do iba do que do extremo de Remplazar EL lazo del hijo nenhum nodo X. do EL do engodo dos problemas do producía.
85 
estaba X do donde do la posición de Resolviendo EL problema de equilibrio para do ¿, vieja altura da SU do recuperando, raíz do la do hasta do problema do EL do resuelvo? Apostas do que de altura do misma do la do exactamente do engodo do lazo do EL do queda de Como, nenhum raíz realizar do la do hasta dos actualizaciones dos otras do necesario do es. 
Rotación doble: caso de solo 2 y 3 de para: equivalente do EL do Es rotaciones de um dos simples: nodo x do EL do engodo dos problemas do causa do que do subárbol do del de Intercambio los papeles de la raíz: que a voy do mar de O: 
 conflicto do EL do produjo do que do interno de la raíz del subárbol do engodo do nodo X do EL de Trasplantar. 
 en X de Remplazar, problemas do produto do que do subárbol do EL do engodo do hijo do EL do engodo do une do que do lazo do EL, problematico do subárbol do del de un subárbol de la raíz do engodo. 
 problemático do subárbol do al do va do que de del nodo X do extremo de Remplazar EL lazo del hijo, problemático do subárbol do del do EL otro subárbol de la raíz do engodo. 
 problematico do subárbol do del do Los hijos de la raíz, pasan um nodo X y EL hijo del nodo x. do EL do ser. 
estaba X do donde do la posición de Resolviendo EL problema de equilibrio para do ¿, vieja altura da SU do recuperando, raíz do la do hasta do problema do EL do resuelvo? Apostas do que de altura do misma do la do exactamente do engodo do lazo do EL do queda de Como, nenhum raíz realizar do la do hasta dos actualizaciones dos otras do necesario do es.
86 
19 Árboles Vermelho-Red-Black 
EL Articulo do leer dos más información de Para: Árboles Rojo-Negros de Guido Urdaneta (14 pags). 
20 Árboles B 
O árbol B do EL, aflui o espacio ocupan do mucho dos árboles ante do los do cuando dos ocasionados de serie de problemas do una de la necesidad de resolver. espacio ocupan do mucho dos árboles de Cuando los, árbol do EL nenhum principal do memoria do en do quepa, secundaria do memoria do la do en do esta do parte do mayor do la. 
acceso do EL um en comparación do lento dos más de un costo de acceso es do tiene do secundaria do memoria um procesador de de instrucciones de dos millones, accesos ahorrar dos debemos do eso do por podamos de um como do tanto do disco. mayor grado de ramificación dos tenemos do Si (hijos), menor altura dos más do tiene do nodo do un dos tenemos, menor altura dos tenemos de y si, accesos dos menos do tanto do lo do por dos nodos y dos menos dos recorremos. 
árbol Mario do lama do SE, tiene de do nodo do EL do que do árbol do aquel hijos de 1 A M.. O propiedad efectuar de do la de ordenada perito em software le añade do búsqueda do una do poder de Para orden. nodo cual do EL próximo do es do decidir de para dos claves do tiene m-1 de del Árbol Mario do nodo de Cada um visitar. la comparación de Efectuar contra o frente do estúpido do algo do es dos claves dos las m-1 um acceso de espera de un do la um disco. puede degenerar, árbol B. do SE de Mario do árbol do EL de Cómo do EL do aparece.
87 
20.1 Reglas 
árbol B do EL, propiedad estructural, reglas do una do engodo de Mario do árbol do es dos las um filho do cumplir: 
1. hojas de solo almacenan dos las do en do SE dos datos do Los. 
2. Os internos dos nodos do Los tienen o búsqueda guiar do la de para dos claves m-1. descendientes de la rama i-1 de las claves de sus do que do mayor do es do i-esima do clave do La. descendientes de la rama i+1. de las claves de sus do que do menor do es do i-esima do clave do La. 
3. hijos do entre 2 y m do tiene do hoja o do una do es do raíz do La. internos especiais de comparación de los um nodos do nodo do Es un. 
4. Os internos dos nodos do Los tienen hijos do ~ y m do ~ M 2 do entre. 
5. profundidad do misma do la do en do encuentran do SE dos hojas dos las de Todas. y tienen o entre~ L 2 ~ y L datos. 
L yM nenhum poseen o arbitrario da valentia do un, accesos do los do minimiza do que do EL do es da valentia do EL. Datos um conocer: 
 Disco de Tamaño de bloque de. 
 rama del árbol de Tamaño de una, nodo proximo do al do puntero de EL tamaño de la referencia o do decir do es. 
 Tamaño de la clave, clave variável do la do contiene do que do la do de do tamaño do EL do decir do es. 
 hoja do nodo do en un do registro do dato o de Tamaño de cada. 
Camionete de Como um L quepar hoja do una do en dos datos: 
L (Tamanoregistro) Tamanodebloquededisco 
claves dos ramas y m-1 do tiene M do interno do nodo de Como un: 
(M 1) (Tamanodelaclave) + M (Tamanorama) Tamanodebloquededisco 
20.2 Ejemplo: 
 Disco de Tamaño de bloque de = 8192 bytes. 
 rama de Tamaño de una = 4 bytes (puntero do un). 
 Tamaño de la clave = 32 bytes (corda do un). 
 registro de Tamaño de cada = 256 bytes. 
 M=228; L=32. 
20.3 Algoritmo de inserción: 
Algoritmo de inserción: 
 la dar inserción do correspondería do donde do hoja do la do engodo do hasta do búsqueda do la de Efectuamos. 
 espacio do un do engodo do cuenta do hoja do la do Si, finaliza do algoritmo do EL. 
 llena do esta do hoja do la do Si, elementos do posee L+1 do ahora. en 2 hojas de ~ L 2
88 
una do hoja do la dos dividimos do caso do ese do En do cada dos ~elementos.
89 
 padre actualizar do al da ONU para do escritura y de para do disco do al dos accesos do generará 2 de Esto (2 ramas dos claves y 2). 
 finaliza lugar do algoritmo do EL do libre do un do posee do padre do EL do Si. 
 claves do posee M do ahora do completo do esta do padre do EL do Si (hijos m+1). en 2 nodos de ~ M 1 do nodo do EL dos dividimos do caso do ese do En 
ONU ____ do cada de 2 elementos do ~. raíz do la da era do Si, engodo do raíz do nueva do una dos creamos 2 hijos. actualizamos al padre del padre do contrario do caso do En, hasta do así finalizar. 
20.4 Algoritmo de eliminación: 
Algoritmo de eliminación: 
 más de L 2 registros do tiene do hoja do la do Si, finaliza do algoritmo do EL. contrario do caso do En, menos de L 2 hijos do tiene do hoja do la do ahora, registro do pedirle 1 do debe hijos de um deL 2 dos más do tenga do que do hermano do un. O Si nenhum pueden o eso do hacer dos hermanos do sus, en fusionar dos hojas do dos dos las do puedo dos entonces
90 
sola do una. clave do la de y perito em software le actualiza dos menos do hijo do un do tiene do que do padre do al de Después perito em software le informa. 
• padres do los do engodo do historia do misma do la do repite do SE de Ahora: más de M1 do tiene do padre do EL do Si 
2 _______ claves, 
o contrario do caso do finaliza, SE le piden claves um hermano do un. Nenhum las do Si pueden o cedro, SE fusionan. hijo de solo do un do engodo do queda do raíz do la do Si, pasa do hijo do elimina y SU do SE um raíz do nueva do la do ser.
91 
Mistura y Diccionarios de Tablas 
21 Diccionario 
Es una estructura de datos, accedo dos objetos y do almaceno do donde do en objetos, nombre da SU do conociendo, preferentemente en forma de corda. diccionario do EL, mistura do tabla do una do mediante do implementado do es. 
Mistura de 22 Tabla 
Mistura do tabla do La, mediante una función de localización do indexado do es do que do vetor do es un, mistura do llamada función. 
Mistura do La función, elemento do un do convierte do que do regla do una do es (objeto do un) um vetor indexar do al de para do adecuado do entero do un, elemento do EL do almacenará do SE do finalmente do allí do donde. Vetor do del de grado de ocupación do del do depende do eficiencia do La. 
22.1 la función do vetor y do EL de Sobre 
Las entradas del vetor nenhuns infinitas do filho, tanto do lo do por nenhuns posibles de las combinaciones de entrada dos todas do tener dos podemos. 
ejemplo de Por: tiene do objeto do si MI 4 bytes, tenemos 4 billones de combinaciones, y4 billones de entradas es imposible. más que grandioso EL de llegada de un conjunto de partida do asocia da mistura do La función. del do principio do EL de Por palomar, (o porque existen posiciones do que dos potenciales dos elementos dos más,) dos elementos posible do dos do que do es do que do decir dos podemos misma correspondan posición do la do en do SE, denomina colisión do SE do eso. Debido colisiones dos las, inyectiva do es da mistura do la función. uniforme computar do forma do en dos claves dos las do distribuir do de y do sencilla do ser do debe da mistura do La función, esto es para la minimizar cantidad de colisiones. Porque si existen colisiones, baja efectuar do eficiencia do la dos colisiones y de un mecanismo de resolución de do debe do SE. 
Mistura do tabla do una do EL fator de carga de, la fracción ocupada de la tabla do es. Engodo de Denotamos al fator de carga. Un = 0 llena da mistura do tabla do la de para do y= 1 do vacía da mistura do tabla do la de para. 
= ______ CantidadDeEntradasTotal CantidadDeEntradasUsados. 
independientes grandioso do filho do es y los intentos de inserción do tabla do la do Si, ocupada es do la fracción. Do probabilidad examinar do la do celda do una do Al ocupada estar es do de. EL numero medio de celdas do que do porlo um examinar es = 1 
22.2 abierto do direccionamiento do por dos colisiones de Mecanismo de resolución de 
22.2.1 Exploración Lineal 
O rutina insertar, SE do la do En dos colisiones dos las resuelven o vetor do EL do secuencialmente do examinando, circularidad do engodo, necesario de en caso de ser, vacía encontrar do una posición do hasta. 
1.
Part VI I I 
92 
rutina buscar, caso de do La do en nenhum celda do correspondiente do la do en do buscado do elemento do EL do conseguir, rutina insertar, compara do la do que do camino do mismo do EL do exactamente do sigue dos pues contra o caso de do en do sigue do hallado y do elemento do EL nenhum coincidir, llega do si um búsqueda do la do finaliza do SE do vacía do celda do una. 
La eliminación estándar nenhum usarse do puede, borrado do activo o do esta do elemento do cada, perezosa de esto perito em software le denomina eliminación. 
EL numero medio de accesos: 
1+ 1 
(1) 2 
 éxito es do pecado do búsqueda de Para inserción y igual uns 2 
1+ 1 
1 
 éxito es do engodo do búsqueda do la de Para igual uns 2 
Problema de la Exploración lineal: primaria de Agrupación: la inserción do en dos elementos do los do entre do independencia do la do porque do ocurre de Esto nenhum cumple do SE. ocupadas dos celdas de Tenemos formaciones de grupos de. costoso dos más do mar dos celdas de inserciones dentro del grupo de dos las do que de Haciendo. grupo do EL do crezca de y, agrega do SE do que do elemento do cada do engodo. 
22.2.2 Exploración Cuadrática 
primaria de Elimina EL problema de la agrupación. O SE dos colisiones de Las resuelven o circularidad do engodo do examinando, posiciones do la 
HH+1H+4H+i2 
Garantía: primo y EL fator de carga do Si EL tamaño de la tabla es nenhuma valentia de 0.5 do EL do nunca do excede. distintas realizan dos celdas do sobre do SE dos intentos de Entonces TODOS los. - mayor do Si EL fator de carga es 0.5 um primo do número do al próximo de EL tamaño de la tabla dos expandimos dos entonces. EL proceso de expansión, re-hashing do como do conoce do SE. Mistura do nueva función do una do mediante dos elementos do los do reinsertando do tabla y do la de Incrementando. Do primo encontrar do número do EL próximo do fácil do Es o que de solo un examinar do feno orden de O (números do registro N), engodo un teste de primalidad de un orden o encontrarlo un do cuesta do que do lo do por de de O (N 1 2) orden de O (registro 2 N) de N 1. 
Problema de la Exploración Cuadrática: secundaria de Agrupación. 
indexados dos elementos do los do porque do ocurre de Esto alternativas prueban dos celdas dos mismas dos las de um celda do misma do la. exploradas de EL numero de celdas do incremente do SE do que da lebre de Esto, grandes de en factores de carga. 
Hashing doble do EL do SE EUA do conflicto do este do resolver de Para (secundaria de Agrupación), que es 
una usar segunda función de hashing, celdas examinar dos las dos todas dos podemos cual do la do en. hash1 () hash2 () 2 hash2 (). 
22.3 separado do encadenamiento do por dos colisiones de Mecanismo de resolución de 
enlazadas L0 L1Lm1 do es un vetor de listas da mistura do EL vetor de la tabla. Dos debemos indica do lista do que do en de función de hashing do La elemento insertar do ese. caso EL fator de carga es do este do En igual a = N M, media es do longitud do la, usadas es do EL numero medio de entradas. eficiencia do La +2. do recorre 1 do exitosa do búsqueda do La nenhum carga de EL incremento del fator de do por do afectada do perito em software VE, EL evitar do así do pudiendo que re-hashing.
93 
Montículos Binarios, Colas de 
Prioridad y Ordenación Interna 
23 Cola de Prioridad 
Cola de Prioridad, permite la inserción de elementos do que do estructura do una do es, máxima de solo do es do prioridad do cuya do elemento do al do otorga do SE do acceso do EL do pero. implementado do Es um binario do montículo de de un dos través. prioridad es raíz del montículo do mayor do engodo do elemento do EL. 
24 binarios de Montículos 
O binario do montículo do Un, propiedad de do una do engodo do binario do árbol do es un orden o diferente estructural de y um anteriormente dos vistos dos árboles do los. 
24.1 Propiedad estructural: 
completo do binario do es un Árbol do binario do montículo do EL: 
 lleno do completamente do árbol do Es un, que inferior debe llenarse de izquierda de excepción del nivel do engodo um derecha. 
 logN~ do ~ do sumo da SU altura es alo 
 nodos do tiene 2H o 2H+1 1 de altura H do engodo. 
 implícita estándar do la representación do La implementación es, decir do es, vetor do un do mediante. 
– nodo de Cada nenhum referencia do tiene um derecho do al do ni do izquierdo do hijo da SU. 
– Vetor do EL do en dos niveles do por dos elementos do los dos almacenamos do forma de De esta, vetor do EL do contiene dos nodos dos cuantos do indique do que no. do entero de pero requerimos de un. desde 1. de Contando. 
– elemento do esimo do supermercado fino do izquierdo do hijo do EL, la posición 2i do en do esta. 
– elemento do esimo do supermercado fino do derecho do hijo do EL, la posición 2i +1. do en do esta. 
– ~ 2 do ~ i do en do esta do elemento do esimo do supermercado fino do padre do EL. 
– O raíz do la da salva dos nodos do TODOS los tienen o padre. 
– La posición i=0, manequim do considera do SE. 
– en empezar 0 do de do obligado do caso do En 
 elemento do esimo do supermercado fino do izquierdo do hijo do EL, la posición 2i+1. do en do esta. 
 elemento do esimo do del i do derecho do hijo do EL, la posición 2i +2. do en do esta. 
 ~ i 1 do en do esta do elemento do esimo do supermercado fino do padre do EL 
~ 2. 
24.2 Propiedad de ordenación: 
casos de solo de ONU de los dos do ser do puede do montículo do EL: 
Do posee mínimo do la do clave do mínima do La de Montículo raiz de solo do la. elemento de solo do mínimo do al do acceso do perito em software a Dinamarca, mar deo de solo um raíz do la. O padre p do engodo do nodo x do cada de Para, la paire p,
Part VI I I 
94 
menor do es um X.. 
Do posee máximo do la do clave do máxima do La de Montículo raiz de solo do la. elemento de solo do máximo do al do acceso do perito em software a Dinamarca, mar deo de solo um raíz do la. O padre p do engodo do nodo x do cada de Para, la paire p, mayor do es um X..
95 
La introducción de elementos nenhum mantenga la propiedad de ordenación do SE do que do garantiza. 
24.3 Inserción: 
disponible lugar do siguiente do EL do en do hueco do un do creando do implementa do SE. nuevo do elemento do EL do allí dos colocamos de Donde, violamos la propiedad de ordenación do si, padre do EL do engodo do elemento do EL dos intercambiamos, propiedad do la do engodo do cumplir do hasta do así. denomina do SE do Esa operación reflotar (shifup). 
24.4 Eliminación: 
raíz do la do en do hueco do un do creando do implementa do SE, engodo la propiedad de ordenación do cumplir de para, mayor si es máximo, menor si es do EL do por do hueco do EL do EL deo mínimo. candidatos do Los um EL llenar elemento ultimo del vetor dos hijos y do dos do sus do filho do hueco do EL. forma de De esta nenhum propiedad ni estructural la de ordenación do la do pierde. hundir do llamada do es do elemento do un do engodo do vacía do EL intercambio de la posición (shifdown deo). 
24.5 Engodo de Construcción del montículo um puesta do ya do engodo información do vetor de de un do partir: 
O elemento i=1 da primeira demão do al do elemento n/2 do EL do desde dos elementos de Para n, o propiedad verificar de do la orden hijos do sus do engodo.
96 
24.6 elemento y cambio de clave de Búsqueda de un (conocido como reducción de clave, envejecimiento): 
Os algunas que de Aveces os aplicaciones deben o dinamica do forma do en dos prioridades dos las do establecer, que do lo do por deben o necesario reflotar de de ser do hacerlo buscar do elemento y do EL.
97 
25 Ordenación Interna 
montículo tomar de la utilización de un do mediante do ordenarlo do desordenado y dos elementos do en un vetor de n de Consiste: 
 montículo de Haciendo del vetor un 
 prioridad de EL elemento de máxima dos n-veces do montículo do al do eliminando de y. 
 Do que auxiliar dos elementos do los do vetor do en un de Cargando retirando voy. 
26 Ordenación Heapsort 
montículo tomar de la utilización de un do mediante do ordenarlo do desordenado y dos elementos do en un vetor de n de Consiste: 
 montículo de Haciendo del vetor un máximo 
 máximo do elemento do EL dos n-veces do montículo do al do eliminando de y. 
 Nenhum vetor auxiliar, al crean del final vetor de perito em software requiere de un do muerto do espacio do un do retirando voy do que dos elementos do los do que do puesto, do que utilizar dos elementos do los do allí do colocando do puedo do que retirando voy. 
26.1 Análisis de Heapsort: 
 Es in-place. 
 comparaciones do en do basado do Es 
 y nenhum es estable.
98 
26.2 Análisis de los ordenes de Heapsort: Filho realizan do SE do que dos operaciones de Las: 
 1 heapify (o que es de do montículo do una Heapificación es la construcción de un) orden T (N) = O (N) 
 Os eliminaciones de N, que es de orden T (N) = O (logN). 
 O tanto Heapsort es de do lo de Por orden T (N) = O (NlogN).
99 
Referências 
[1] clases del Ing do en dos tomados de Apuntes. Miguel Montes. 
[2] copia de "introdução de Apuntes tomados de una aos algoritmos" 3°ED de Cormen, Rivest, Stein y Leiserson. 
[3] en Java y Algoritmos" de Alan Waiss do de "Estructuras de Datos do copia de Apuntes tomados de una. 
[4] Reconocimiento foros: rohitab, stackoverflow de code-makers.net y. 
[5] paginas de Internet de Muchas.

Más contenido relacionado

PDF
Guía para el diseño hidráulico de redes de alcantarillado
PDF
Refuerzo 6
PDF
Pdf 70 puentes de madera
PDF
Guia para privados final
PDF
PDF
PDF
Esquila vf copia
PDF
Trabajo Zinc y Plomo
Guía para el diseño hidráulico de redes de alcantarillado
Refuerzo 6
Pdf 70 puentes de madera
Guia para privados final
Esquila vf copia
Trabajo Zinc y Plomo

La actualidad más candente (16)

PDF
Engineering manual bge
PDF
Cuaderno de ejercicios de cálculo diferencial
PDF
Intro vibespanol
PDF
Aplicación del metodo montessori a las matematicas en una escuela tradicional.
PDF
Diseño canónico control automatico
PDF
Memorias de calculo
PDF
Calculo diferencial
PDF
Electricidad sistemas puesta_a_tierra
PDF
Manual Scilab
PDF
Avanzado excel
DOC
Manual Java
PDF
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
PDF
Guia de matematicas
PDF
Manual de improvisación. Sabatella M.
PDF
Modulo de Optativa 8 año
Engineering manual bge
Cuaderno de ejercicios de cálculo diferencial
Intro vibespanol
Aplicación del metodo montessori a las matematicas en una escuela tradicional.
Diseño canónico control automatico
Memorias de calculo
Calculo diferencial
Electricidad sistemas puesta_a_tierra
Manual Scilab
Avanzado excel
Manual Java
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
Guia de matematicas
Manual de improvisación. Sabatella M.
Modulo de Optativa 8 año
Publicidad

Similar a Algoritmos e estructura de dados (20)

PDF
Algoritmos y estructura_de_datos
PDF
Algoritmos y estructura_de_datos
PDF
Algoritmos y estructura_de_datos
PDF
y estructura_de_datos
PDF
ALGORITMOSAlgoritmo yy estructura de datos
PDF
Algoritmos en C++.pdf
PDF
Algoritmos y estructura_de_datos
PDF
Algoritmos y estructura_de_datos
PDF
Estructuras de datos - Cairo y Guardati, 3ra edicion.pdf
PDF
Fundamentos de Programacion.pdf
PDF
Estructuras de datos osvaldo cairo
PDF
Manual de análisis y diseño de algoritmos
PDF
Algoritmos y estructuras de datos en Python - digital.pdf
PDF
Manual estructura de_datos_2010___h._caselli_g
PDF
Manual ad av1
PDF
Algoritmosy estructurasdedatos2015 1
PDF
Manual analisis de algoritmo pre
PDF
Algoritmos+y+flujogramas
PDF
Manual de análisis y diseño de algoritmos
PDF
Manual analisis-de-algoritmos
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
y estructura_de_datos
ALGORITMOSAlgoritmo yy estructura de datos
Algoritmos en C++.pdf
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
Estructuras de datos - Cairo y Guardati, 3ra edicion.pdf
Fundamentos de Programacion.pdf
Estructuras de datos osvaldo cairo
Manual de análisis y diseño de algoritmos
Algoritmos y estructuras de datos en Python - digital.pdf
Manual estructura de_datos_2010___h._caselli_g
Manual ad av1
Algoritmosy estructurasdedatos2015 1
Manual analisis de algoritmo pre
Algoritmos+y+flujogramas
Manual de análisis y diseño de algoritmos
Manual analisis-de-algoritmos
Publicidad

Más de Alvaro Gomes (20)

PPTX
Museu nacional de história natural e da ciência
PPTX
Luís Vaz de Camões Vida e Obras
PPTX
Ética Deontológica Técnico Administrativo
PPTX
Revolução Industrial - O Ponto de Viragem
PDF
Linux Commandos Cheat
PDF
Flash android using livesuit
PDF
Websearch
PDF
13 Things the Government doesn´t want you to know
PDF
Hackeando facebook com wireshark e cookie injector
PDF
Como transformar o router thomson num print server
PDF
Drivers ADB Android
PDF
ROM china original (Shenzhen)
PDF
Reinstalar actualizar el sistema operativo android
PDF
Hackeando facebook com wireshark e cookie injector
PDF
H4dummies (translated to portuguese)
PDF
HTML - Guia5
PDF
HTML - Guia4
PDF
HTML - Guia 3
PDF
HTML - Guia 1 e 2
PDF
Html - capitulo 12
Museu nacional de história natural e da ciência
Luís Vaz de Camões Vida e Obras
Ética Deontológica Técnico Administrativo
Revolução Industrial - O Ponto de Viragem
Linux Commandos Cheat
Flash android using livesuit
Websearch
13 Things the Government doesn´t want you to know
Hackeando facebook com wireshark e cookie injector
Como transformar o router thomson num print server
Drivers ADB Android
ROM china original (Shenzhen)
Reinstalar actualizar el sistema operativo android
Hackeando facebook com wireshark e cookie injector
H4dummies (translated to portuguese)
HTML - Guia5
HTML - Guia4
HTML - Guia 3
HTML - Guia 1 e 2
Html - capitulo 12

Último (11)

PPTX
Presentación de un estudio de empresa pp
PPT
laser seguridad a la salud humana de piel y vision en laser clase 4
PDF
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
PPTX
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
PPTX
presentacion_energias_renovables_renovable_.pptx
PDF
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
PDF
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
PPTX
tema-2-interes-.pptx44444444444444444444
PDF
Herramientaa de google google keep, maps.pdf
PPTX
Guia de power bi de cero a avanzado detallado
PDF
Mesopotamia y Egipto.pptx.pdf historia universal
Presentación de un estudio de empresa pp
laser seguridad a la salud humana de piel y vision en laser clase 4
Frases de Fidel Castro. Compilación Norelys Morales Aguilera
FUNCIONES DE CLASSROOM EN EL FUNCIONAMIENTO ESCOLAR
presentacion_energias_renovables_renovable_.pptx
CAPACITACIÓN MIPIG - MODELO INTEGRADO DE PLANEACIÓN Y GESTIÓN
[Ebook gratuito] Introducción a la IA Generativa, Instalación y Configuración...
tema-2-interes-.pptx44444444444444444444
Herramientaa de google google keep, maps.pdf
Guia de power bi de cero a avanzado detallado
Mesopotamia y Egipto.pptx.pdf historia universal

Algoritmos e estructura de dados

  • 1. 1 Algoritmos y Estructuras de Datos dreams_eater abril 10, 2012 Sumário que de solo de una parte de los temas do tan do EL Documento es mim clase do en do dictaron, de Algoritmos y Estructuras de Datos, lados dos algunos do en (Algoritmos y Estructuras de Datos 2). profesores do mis do filho do autor do verdadero do EL do que do lo de Por, imágenes do descaradamente do copie do donde do de los libros dos autores dos foreros y los. Índices I Algoritmos y Crecimiento de las Funciones. 3 1 Algoritmos. 4 2 Análisis de los Algoritmos. 5 3 Crecimiento. 6 3.1 Notación Asintótica ............................................................................................................. .................................................................................................................................. 6 3.2 Ejemplos de calculo de T (N) ............................................................................................. .................................................................................................................................. 6 3.3 Notación asintótica (eficiencia asintótica)......................................................................... .................................................................................................................................. 7 3.4 ejemplo de notación asintótica ........................................................................................... .................................................................................................................................. 8 II Recursividad 10 funciona do bucle do un do que do matemáticamente de 4 Probar: 10 5 Recursividad: 11 5.1 matemática 11 de Repaso de ............................................................................ inducción 5.2 la recursión do funciona do ¿ Cómo? ......................................................................... 12 5.3 4Reglas: ......................................................................................................................... 12 5.4 Dividir-e-Divide-and-conquer ......................................................................................... 12 5.4.1 vencerás superiores 13 da partilha y do algoritmo do EL de Cota ............. para 5.5 Cauda-Tail-Recursion ..................................................................................................... 13 5.6 Coroutines ........................................................................................................................ 14 5.6.1 2.5:15 do la versión do desde de Las Coroutinas de pitão .................................. 5.6.2 en C 15 dos corutinas .................................................................................. de Las
  • 2. 2 6 EL Problema de la Solución Óptima de Recursividad y 16 6.1 atrás o Algoritmos de Retrocesso de Algoritmo de vuelta ................................................................. 16 6.2 codiciosos ávidos de Algoritmos o Algoritmos Devoradores o .......................................................... 16 7 dinámica de Recursividad y Programación. 18 7.1 dinámica invertido de de la programación do enfoque de Memoización .......................................... 18 7.2 ejemplo de De baixo para cima do Un ................................................................................................ 20 7.3 Sumário ................................................................................................................................................. 21 III Algoritmos de Ordenación 22 8 Ordenación mediante comparación 22 8.1 Introduzir-Insert-Sort ...................................................................................................... 22 8.2 Escudo-Shell-Sort........................................................................................................... 24 8.3 MergeSort ....................................................................................................................... 26 8.3.1 Fusão 26 .............................................................................................................. de Operación 8.4 Rápido-Quick-Sort .......................................................................................................... 29 8.4.1 Selección Del Pivote ........................................................................................... 29 8.4.2 Estrategia de la Partición .................................................................................... 30 8.5 comparaciones inferiores 33 do en dos basados de Cota para los ............................................................................................................................................... Algoritmos 8.6 Contar-Counting-Sort ..................................................................................................... 33 8.7 RadixSort ........................................................................................................................ 34 IV avanzado de Repazo (Pila, cola y Lista) 35 9 Pilas (pilhas) 35 10 Colas (filas) 36 11 Lista Enlazada 37 11.1 Lista Enlazada (lista lig) 37 ............................................................................................................................................... simples 11.2 Lista Enlazada Doble (lista lig dobro) ......................................................................... 37 11.3 Circular 38 de Lista ............................................................................................................................................... Enlazada 11.4 Manequim 38 ................................................................................................................ de Nodos 11.5 Implementación de las listas ....................................................................................... 39 V Grafos 40 12 Definiciones 40 13 grafo 42 de Idéia de Implementaciones de 14 máximo 43 do camino do mínimo y de Calculo del camino 14.1 Pesos 43 do pecado..................................................................................................... de Grafo 14.2 negativo 45 de aristas de peso do pecado ................................................................. de Grafo 14.3 negativos 46 dos ciclos do pecado ............................................................................. de Grafo 14.4 O engodo de Grafo orden topológico .......................................................................... 46
  • 3. 3 VI raíz 48 do engodo de Árboles 15 Definiciones 48
  • 4. 4 binario de 16 Árbol 16.1 binario do EL Árbol do sobre dos iteraciones de Recorido e 16.1.1 Preorden 16.1.2 Postorden 16.1.3 simétrico de Orden 16.1.4 Porniveles 17 Árbol Binario de búsqueda 17.1 Búsqueda 17.2 Inserción 17.3 Eliminación 17.4 Ordenes 18 Árboles AVL 19 Árboles Vermelho-Red-Black 20 Árboles B 20.1 Reglas 20.2 Ejemplo: 20.3 Algoritmo de inserción: 20.4 Algoritmo de eliminación: VII mistura y Diccionarios 66 de Tablas 21 Diccionario 66 Mistura 66 de 22 Tabla 22.1 la función 66 do vetor y do EL ...................................................................................... de Sobre 22.2 abierto 66 do direccionamiento do por dos colisiones de Mecanismo de resolución ................................................................................................................................................ de 22.2.1 Exploración 66 ........................................................................................................................................ Lineal 22.2.2 Exploración Cuadrática ...................................................................................... 67 22.3 separado 67 do encadenamiento do por dos colisiones de Mecanismo de resolución ................................................................................................................................................ de VIII Montículos Binarios, Colas de Prioridad y Ordenación Interna 68 23 Cola de Prioridad 68 24 binarios 68 de Montículos 24.1 Propiedad estructural: .................................................................................................. 68 24.2 Propiedad de ordenación: ............................................................................................ 68 24.3 Inserción: ...................................................................................................................... 69 24.4 Eliminación: .................................................................................................................. 69 24.5 engodos de Construcción del montículo um puesta do ya do engodo información do vetor de de un do partir: elemento y cambio de clave de 69 24.6 Búsqueda de un (conocido como reducción de clave, envejecimiento): ............................................................................................................ 70 25 Ordenación Interna 71 26 Ordenación Heapsort 71 26.1 Análisis de Heapsort: ................................................................................................... 71 50 50 50 51 52 53 54 54 55 56 59 62 63 61 63 64
  • 5. 5 26.2 Análisis de los ordenes de Heapsort: ......................................................................... 72
  • 6. 6 Parte I las de Algoritmos y Crecimiento de Funciones. 1 Algoritmos. una gran cantidad de datos do sobre do programa do un dos ejecutamos de Cuando, plazo estar do en do termina do programa do EL do que dos seguros dos debemos razonable. utilizado de Esto es independiente del lenguaje de programación, utilizada do metodología do la do utilizada y de compilador/interprete/maquina_virtual (orientada procedimental do si es u objetos). ¿ Que es un Algoritmo? Um que es do por intuición dos sabemos de altura do esta, decirlo do que do feno do pero. Algoritmo: O computacional do procedimiento do aquel do es do algoritmo do Un bien o definido, salida do como da valentia do un do produto do entrada y do como dos valores do setea do toma o do que. salida transforman do una do en do entrada do una do que dos computacionales do es una secuencia de pasos do modo de De este. O computacional do problema do un do resolver de para do herramienta do una do como do ver do puede do SE de También bien o definido. especifíca de declaración del problema do La, general do en, la desean relación Entrada/salida do SE para do que dos términos do los. Os algoritmos do Los describen o específico para que do computacional do procedimiento do EL o SE lograr do que relacionen o la Salida do engodo de Entrada do la. O lo do que dos propiedades do tiene do algoritmo do EL hacen o circunstancia do problema y do EL do según do ver mejor/peor. ¿ Que es un Problema? circunstancia llevar do una do de do objetivo do Es la definición de un real um otra. ejemplo de Por: entrada llevar do la do de do objetivo do EL do formalmente do definir do puede do SE do si do problema do La ordenación es un um deseada do salida do una. Definición del formal problema de ordenación: Entrada: números de Una secuencia de n (a1 a2an). Salida: entrada de Una permutación (reordenación) (a1 a2) de la secuencia de. que de Tal: a1 a2 . Entrada es do EL do Si (31; 41; 59; 26; 41; 58), retorna do algoritmo do EL (26; 31; 41; 41; 58; 59). en especial, problema do entrada do Esa do EL de para, SE lama instancia del problema de ordenación. problema do perito em software lama instancia de un do satisface particular obligación do que de del problema do entrada do una um en mais cualquier la declaración del problema do impuesta. correcto do es do algoritmo do Un, si para toda instancia del problema, salida do como do correcta do respuesta do la do engodo do termina. computacional do problema do EL do resuelve do correcto do algoritmo do EL. incorrecto do es do algoritmo do Un, si nenhum nunca para algunas instancias de entrada do termina, respuesta terminar para algunas instancias de entrada do como do incorrecto da valentia do un do engodo deo si. Contrario um lo espera usted que, ser util do puede do incorrecto do algoritmo do un, controlamos SU taza de erro do si. infinita do memoria do la do infinita y do velocidad do engodo do computadora do la do tiene do que de Suponga. esto do leyendo do tiempo do EL do perder do que de Para do ¿? correcto demostrar do es do resultado do EL dos además do que do termina y da SU método de solución do que de Esto le sirve para. basta mais cualquier do correcto do método do infinita do rapidez do engodo do computadora do la do posee do Si. margenes estar de dos "software do en los do quiera de Probablemente do del de buenas practicas de la ingeniería las" (diseñado, documentado do implementado y, realizado do trabajo do EL do por do cobrado de y), siempre do casi do sencillo dos más do método do EL do implementando do pero. Os computadoras de Las pueden rápidas do ser, pero nenhuns rápidas do infinitamente. mucha do ser do puede do memoria do La, pero nenhum infinita. tanto una limitación de la fuente do lo do por do EL tiempo de computo es, memoria do en do espacio do ocupa de y. espacio de en términos de tiempo y dos eficientes de sean dos algoritmos do los do que de para do
  • 7. 7 sabiamente de Programe.
  • 8. 8 2 Análisis de los Algoritmos. Sabemos que nuestro algoritmo funciona. O que determinar dos recursos de EL Análisis de los Algoritmos es los consome. O que dos recursos do Los consome o filho dos algoritmos do los:  problema do EL do resolver de para do usado de Tiempo = de Tiempo.  problema do EL do resolver de para do utilizada de Espacio = de Cantidad de memoria. problema do del de en función del tamaño do están do espacio do EL do tiempo y do EL, llamado también tamaño de entrada. tiempo do EL do en do concentra do SE de EL Análisis de los Algoritmos. EL tamaño de entrada (. .es..) estudie do SE do que do problema de depende del tipo de:  entrada do Es EL numero de elementos de (la ordenación do en do ejemplo do por).  Es la tupla de variável, donde la cantidad de cálculos uma variável realizar do cada de en función del valentia de do esta. ¿ Cómo es EL análisis del tiempo? usada de ser independiente de la tecnología do que do tiene de Análisis de los Algoritmos. Um que do lo mim que do es do refiero nenhuns vamos um decir: Pentium M de Sobre un, en C do engodo X código, archivo clasificar de do en un dos minutos dos tardamos 15 1 entradas de de 65mil da mistura de Tabla do una do sobre da megabyte. porque do usada de Ser independiente de la tecnología:  diferentes do filho de por segundo de los microprocesadores dos instrucciones de Las. eso de Por nenhum tarda do que do tiempo do EL do engodo do en función do medir do puede do SE. Tempo da parede do La medición, emplea pared de para de solo teste de requisitos do SE do reloj y do EL do en do transcurrido do tiempo do EL da marca nenhuns funcionales, etc..  Os microprocesadores do Los tienen diferentes de de instrucciones dos jogos, diferentes dos arquitecturas, diferentes dos compiladores. asembler do en dos realizadas de la cantidad de instrucciones dos descartamos do esto do engodo. sobre EL crecimiento del algoritmo do matemático asintótico do análisis do SE EUA un. Camionete do SE do que dos pasos dos primitivas o do es EL numero de operaciones do algoritmo de de un do tempo running do EL um ejecutar. del tamaño de la entrada de depende de la magnitud do tempo running do EL. mayor de para un tamaño de entrada do algoritmo do nuestro do tardara do cuanto do predecir do permite do análisis no. de Este, tempo running do del de EL fator de crecimiento do conocer do al. alternativos comparar de relativa desempenho de algoritmos do la dos podemos do forma de De esta, base do en do elegir do poder de en caso de tenerlos y um fundamento do poderoso do un, algoritmo do del de depende de la eficiencia do tempo running do EL do porque. Nenhum en mejorar la fase de implementación do algoritmo de de un do tempo running do EL do puede do SE, sin algoritmo cambiar do al. Dados de filosofía de la materia do La: algoritmo do EL de Mejore, nenhum EL código.
  • 9. 9 3 Crecimiento. partes de Consta de dos: del tiempo del algoritmo de predicción fator de crecimiento do la de para do usarlo do poder de para do limite do un do establecer de del algoritmo y do tempo running do del de Calculo. elementales do es EL conteo de pasos do tempo running do del do calculo do EL, paso do cada do tiempo do mismo do EL do vale do que do constante y de paso como de tiempo do cada do tomando. palabras dos tras do En, entrada representar do la de en función del tamaño de do algoritmo do un do realiza do que de la cantidad de pasos dos podemos. la función T do es do literatura do la do En (N). 3.1 Notación Asintótica Tempo running do del do calculo do EL nenhum que no. do matemática do una expreción da Dinamarca interese. Filho dos causas de Las:  Los coeficientes de los términos nenhum ejecutora cambiar do maquina do la do al conservan do SE.  Generalmente nenhuns pequeños de para tamaños de problema do trabaja do SE, que los coeficientes de los términos do lo do por nenhuns importantes do filho, términos do los do tampoco nenhuns dominantes.  suficientemente grandioso, final de Para un tamaño de entrada da valentia do EL do en do repercute dos más do que do EL do es Os funciones que dos las do EL índice de crecimiento deos no. indica quien convirgem rápida dos más de al infinito de forma, palabras o establece un orden funciones dos las do entre do relativo, dominantes dos otras do en de la comparación de terminos do mediante. EL término dominante de la función, es EL índice de crecimiento, ignoran do SE do dominante do al dos inferiores dos términos do los, ignora do SE do también do dominante de constante multiplicativa del termino do la. Os inferiores dos términos do los do que de Hacemos de cuenta valen a ONU do vale do dominante de constante multiplicativa del término do la do cero y. Filho de Algunos ordenes de crecimiento: Termino Dominnte Crecimiento 1 Constante registro N Logaritmica log2 N cuadrado do al de Logaritmica N Lineal Registro N de N N2 Cuadratica N3 Cubica 2N Exponencial 3.2 Ejemplos de calculo de T (N) tenemos do lenguaje x do en un do que de Supongamos: para j=1 a n: ... a=a+1; la función T de Cual es do ¿ (N) algoritmo do corto de de nuestro? tarda do que do lo do Si c1 es para j=1 a n: (incremento do incremento e de comprobación e de solo) tarda a=a+1 do que do lo de y c2 es; Como para j=1 a n: veces do ejecutara n+1 do SE, y a=a+1; veces do ejecutara n do SE, Tenemos: T (N) = c1 (N + 1) + c2N = (c1 + c2) N + c1 O EL de Cual es do ¿ orden o algoritmo do corto do nuestro de de crecimiento de? Os términos do Los nenhuns dominantes valen las que de 0 y os constantes valen 1.. Reformulando T (n), queda: T (N) = N: o EL orden de crecimiento es Lineal. tenemos do lenguaje x do en un do que de Supongamos: para i=1 a n:
  • 10. 1 0 ... tonelada forj=1: ...... a=a+1;
  • 11. 1 1 la función T de Cual es do ¿ (algoritmo do corto de n) de nuestro? tarda do que do lo do Si c1 es para i=1 a n: (incremento do incremento e de comprobación e de solo) , tarda do que do lo do c2 es para j=1 a n: (incremento do incremento e de comprobación e de solo) tarda a=a+1 do que do lo de y c3 es; para i=1 a n: veces do ejecutara n+1 do SE, para j=1 a n: veces do *n do ejecutara do SE (n+1), a=a+1; porloqueT dos veces do n*n do ejecutara do SE (N)=c1 (N+1) +c2 (N+1) N+c3NN= (c3+c2) N2+ (c1 +c2) N+c1 O EL de Cual es do ¿ orden o algoritmo do corto do nuestro de de crecimiento de? Os términos do Los nenhuns dominantes valen las que de 0 y os constantes valen 1.. Reformulando T (n), queda T (N) = N2, o EL orden o cuadrático de de crecimiento es. tenemos do lenguaje x do en un do que de Supongamos: para i=1 a n: ... forj=iton: ..... a=a+1; la función T de Cual es do ¿ (algoritmo do corto de n) de nuestro? tarda do que do lo do Si c1 es para i=1 a n: (incremento do incremento e de comprobación e de solo), tarda do que do lo de c2es para o j=i a n: (incremento do incremento e de comprobación e de solo) y c3es lo que tarda a=a+1; para i=1 a n: veces do ejecutara n+1 do SE, para o j=i a n: ejecutara do SE (n+1) n 2 __________ veces, a=a+1; ejecutara 1 do SE + n + (n+1) n 2_________ veces que T do lo do por (N) = (c1 + c2) + (c1 + 3 2c2 + 1 2c3) N + 1 (c2 + c3) N2 2 O EL de Cual es do ¿ orden o algoritmo do corto do nuestro de de crecimiento de? Os términos do Los nenhuns dominantes valen las que de 0 y os constantes valen 1.. Reformulando T (n), queda T (N) = N2, o EL orden o cuadrático de de crecimiento es! - aleta de ejemplos-:-) 3.3 Notación asintótica (eficiencia asintótica) matemática do la de Recapitulando, asíntotas do llamado do algo dos teníamos, cartesiano vertical horizontal do plano do EL do en un dos las do limite imponían o dos cuales no.. tocábamos cual do lo do nunca do pero do mucho dos acercábamos de Del no.. una función do es do asíntota do la de Aquí, asíntotas do mediante de un estudio de la eficiencia dos logramos do manera de de esta. asíntota de Mejor, certeza do mejor. libro de Cormen do EL do desde do copiado do fue do gráfico do siguiente do EL, una función g do como do ilustra do porque (n) trabaja como asíntota de la función f (n). La notación-O (o) grande, do cota dar do una de para do sirve algoritmo superior de para EL crecimiento de nuestro, punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, EL valentia múltiplo de la función g (n)
  • 12. 1 2 mismo do EL do en do esta do supera o orden o algoritmo f do nuestro do que (n), que do decir do es: que tal 0 f de Existe un c y un n (n) cg (n) todo n0 N. de para.
  • 13. 1 3 como dos representamos de Ylo: f (n) = O (g (n)). podemos f acotar de Matemáticamente (n) o engodo un orden o superior muy, pero nenhum eso dos hacemos, podamos do que do justo dos más do calculo do EL do engodo do algoritmo do nuestro do tardará do cuanto do saber dos queremos do porque. La notación- (notación omega), do cota dar do una de para do sirve algoritmo inferior de para EL crecimiento de nuestro, punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, EL valentia múltiplo de la función g (n) o en un do esta orden o mismo inferior do EL do en do esta deo orden o algoritmo f do nuestro do que (n), que do decir do es: que tal 0 cg de Existe un c y un n (n) f (n) todo n0 N. de para. como dos representamos de Ylo: f (n) = (g (n)). La notación- (theta), do cota dar e para EL crecimiento de nuestro do una de para do sirve algoritmo inferior superior de notación, punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, un valentia múltiplo de la función g (n) o mismo do EL do en do esta orden o algoritmo f do nuestro do que (n), que do decir do es: Existe un c1, que tal 0 c1g do c2 y un n (n) f (n) c2g (n) como dos representamos do todo n0 N. Ylo de para: f (n) = (g (n)). O-chica do La notación, do estrictamente dar do cota do una de para do sirve algoritmo superior de para EL crecimiento de nuestro. punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, un valentia múltiplo de la función g (n) o en un do esta orden o superior um algoritmo f do nuestro (n), que do decir do es: que tal 0 f de Existe un c y un n (n) <cg (n) limnf (n) g (n) = 0 como dos representamos de Ylo: f (n) = o (g (n)). La notación, algoritmo dar do nuestro do cota do una de para do sirve. punto n0 do un do feno do que do afirma do esta, punto tal de n después de este dos valores de para los do que, un valentia múltiplo de la función g (n) o en un do esta orden o inferior um algoritmo f do nuestro (n), que do decir do es: que tal 0 cg de Existe un c y un n (n) <f (n) todo n0 N. de para. limn f (n) g (n) = como dos representamos de Ylo: f (n) = (g (n)). Aclaración de notación: En notación O, EL igual' =' como' ES' do leer do debe do SE. T (n) = O (esO do como T do leer do debe do SE de F (n)) (n) (F (n)). 3.4 ejemplo de notación asintótica crece T da inserção-insertion-sort do algoritmo do EL (n) = n2, operaciones ordenar do n2 da lebre dos elementos de para n. crece T da fundir-merge-sort do algoritmo do EL (n) = nlog (n), nlog ordenar da lebre dos elementos de para n (n) operaciones. Fundir-merge-sort do mejor do es dos grandes dos casos de para do pero da inserção-insertion-sort da liga dos pequeños de para n do que do significa de Esto. Si n=1000, lebre 1 millon de pasos da inserção-insertion-sort, mero-mere-sort 3 mil. de y. Tenemos 2 computadoras:  A (rápida do la) 10 instrucciones dos billones segundo _____ .  instrucciones dos millones de B (lenta) do la mil. segundo . A, inserção-insertion-sort do mediante do de 10 millones de números do arreglo do un do ordenando do esta. EL mejor programador del mundo do engodo, tempo running T do un do engodo da inserção-insertion-sort do algoritmo do al do implementa do que do lo do por (n) = 2n2. B, fundir-merge-sort do mediante do de 10 millones de números do arreglo do un do ordenando do esta. pepe do engodo, ayer do que aprendió um seteado programar para do esta do que do compilador do un do engodo nenhum optimizar, tempo running T do un do engodo do dificultad do engodo da mero-mere-sort do implementa do lo do que do lo do por (n) = 50nlog (n). para todo n0 n. estrictamente inferior para el crecimiento de
  • 14. 1 4 ganara de Quien do ¿? Um que 1000 do rapida dos más dos veces do es B, en poder de computo. Um que B. do programador do mejor do tiene. ganador es B do EL de Pero:
  • 15. 1 5 Um tarda: 2 (107) 2 10billones = 20segundos. tarda de B: 50 (107) log10 7 milmillones = 1162674 segundos.
  • 16. 16 Parte II Recursividad funciona do bucle do un do que do matemáticamente de 4 Probar: invariant de laço: O SE do que dos necesarias do es una declaración de las condiciones do bucle de invariante de un do La deben o cumplir um bucle de entrada de un do la, cumplirá para cada iteración del bucle do SE do esa condición. (en comienzan 1 dos vectores dos arreglos y do los do aqui, nenhum en 0) INSERTION-SORT (disposição) 1 forj=2 a A.length ... key=A 2 [j] 3.. ordenada insertar A do secuencia do la do en do que A do feno de .// [j] [1.2,..., j-1]. 4... i=j-1 andA>key 5... whilei>0 =A .... de 6 A [i+1] 7 ...... i=i-1 8... A [i+1] = chave secuencia A do la do que de Aquí la invariante del bucle es [1,.. ,] o ordenada estar do debe j-1 antes en entrar 5. do bucle do EL do en do de. funciona probar do bucle do EL do que de Debemos, parecido do es do esto um matemática probar do mediante inducción do mantiene do SE do funciona y do matemática do propiedad do una. invariante do EL do sobre do correcto do es do algoritmo do EL do si do saber de para dos reglas de Tiene 3 (invariant de laço):  R1-Inicialización: O verdadero do es do invariante do EL antes o bucle do del de de la primera iteración.  R2-Mantenimiento: O verdadera de de una iteración y das apostas do verdadero do es do invariante do EL antes de la próxima iteración. durante cada iteración del bucle do funciona do inicio y do EL de para do funciona do propiedad do La.  R3-Terminación: bucle do EL do termina de Cuando, correcto do es do algoritmo do EL do si do muestra do verdadero no. do invariante do EL. Ejemplo:  R1-para INSERTION-SORT: ordenado cual do esta do EL si o si do elemento de solo do un do feno do porque do vale.  la INSERTION-SORT de R2-para: ordenando de do SE va do porque do vale um al sub-arreglos-arreglos dos gracias para o invariante principal do EL do preserva do que.  la INSERTION-SORT de R3-para: bucle do EL do cuando para o termina, mayor al largo del arreglo de j es. EL A sub-arreglo-arreglo [1.2... , ordenado do pero dos originales dos elementos do sus do en do consiste de n].
  • 17. 17 5 Recursividad: mismo de en términos de si do definido do esta do que do aquel do es do recursivo do método do Un. método de Este, llamada do una da lebre do indirectamente do directa o um mismo do si, diferente de instancia del problema do engodo do pero. recursivos do La recursión es EL USO de métodos. matemática do en los principios de la inducción do basa do SE de Esta. llamándose posible do problema de una instancia de un do resolver do ¿ Cómo es um mismo do si? Director do clave do La, lama do SE do que do es um mismo do si, engodo diferentes instancias del problema do pero. imagen do siguiente do la de Veamos: método A do EL, método llamar B do EL do método B. do al do puede, método llamar C do EL do método C. do al do puede, método llamar A. Independientemente do al do puede um problema cual do un do resolver de para do primero do lama do SE, recursivos dos métodos do los do filho de Cuáles do ¿? recursivos dos métodos do filho do TODOS. Ventajas de la recursividad:  Idéias expresar do al de Claridad.  O recursiva do la do iterativa y do La implementación poseen o mismo do EL orden de complejidad.  Fácilde implementar. 5.1 matemática de Repaso de inducción pasos do en 2 do trabaja do que do hecho de técnicaica de demostración de do La:  Primero: sencillo dos casos de para do cierto do EL es do que do demuestra do SE, directa de demostrándolos de forma, base do caso do lama do SE los dos estos. caso indica do siguiente do EL do prolongamento do puede do SE dos casos dos ciertos de para do cierto do perito em software que de ser (inductiva de hipótesis).  Segundo: indefinidamente demostrar do caso do EL do prolongamento dos podemos do caso do EL do prolongamento do como do Al (inductivo do paso). números demostrar es n dos primeros de la suma de los n do que dos queremos do ejemplo de Por (n+1) 2, engodo inducción:  mostramos de Primero um vale para 1 do que do mano, 2 y 3  Vale para k do que de Suponemos, (si o si), 1 + 2 + 3 + + k = k (k+1) 2  Vale para k+1 do que dos suponemos de Entonces, comprueba do SE do pero. verdad do Si es, verdadera do la hipótesis es, sino falsa do es. 1 + 2 + + k + (k + 1) = (k + 1) + k (k+1) 2 ________ = (k+1) (k+2) verdadera de 2 ==>es. Para las comprobaciones de los algoritmos:  comprobaciones de Las, "hechas um mano", base denominan do caso do SE, fácilmente comprueban do SE dos sencillas y do filho.  arbitrario de para un k do cierto dos suponemos do Si, suposición llamada hipótesis de inducción, cierto para un k+1. do es do también do tanto do lo do por.  Base do caso do al do convergencia do una do ver dos debemos de Ahora, suficiente do
  • 18. 18 es dos sencillos dos casos de para. sencillo do caso do EL de para do cierto do Si es, llamador do EL de para do cierto do es.
  • 19. 19 instancia baixo do una de Caso es, la emplear recursión do pecado do resolver do puede do SE do que. Base progresar do caso do al do debe do llamada de Toda. Podemos ver algunas características:  activa de solo do esta de instancia llamada del problema do ultima do la, resto do EL nenhum retorne do que do hasta do trabajo do hacer do puede.  Nenhum nivel manejan do perito em software tareas de bajo.  Base do caso dos varios de Tenemos un o, progresivas dos llamadas de y uma base do caso do un.  O EL buen USO de la recursión nenhum agota la memoria de la computadora. Ponta: recursiva simplificar do la función de condiciones necesarias de la entrada para dos las do evalué do que do guía do rutina do una do tener do puede do SE. (que 0 dos mayores de sean dos números do los do que do ejemplo do por, llamo dos entonces um guía y do rutina do la nenhum um recursiva do la. mayores estar de sean dos números do los do que do evaluando do constantemente do va do sino recursiva do la función um 0.) 5.2 la recursión do funciona do ¿ Cómo? forma de las llamadas de una do implementa do lenguaje de Cada, esto do pero nenhuns demás de para los do así do mar do que do significa. nivel de requiere tareas de bajo do método de implementación de un do La. Do engodo implementar do una función do tranquilamente do podría do SE método lugar do cada de para do fijo do memoria do en do un, lugares das variáveis dos las do un para, llamador do al do retorna do que do otro, otro para lugar EL valentia de retorno, problemas lugar dos serios dos trae do esto etc. Pero, la recursión do impide do que do ya, sobreescritos serian dos datos do los do que do ya. necesaria la estructura de la pila do Es. llamada pila de registros de activación de una estructura de dato do mediante da lebre do SE dos recursivos de implementación de métodos do La, donde un elemento del registro de activación, método do EL do sobre do contiene información: valores de parámetros, lugares das variáveis, pila do la dos usamos de Porque do ¿ etc.? inverso do sentido do en do realiza de la terminación de la función perito em software do porque dos usamos do la um la invocación. secuencia do la do invertir de naturaleza de la pila es do La. pila do la do en do pone do SE do lama do SE do Si, desapila do SE do retorna do SE do si. Lugares están dentro del registro de activación das variáveis de Las (apiladas), forma de camionete en de porque de otra, las instancias de la función perito em software y compartirían nenhum recursividad usar do la do podría do SE. como Java o C/C++ dos lenguajes do En, marca da ONU do cuando uma estática variável do como do una, pidiendo do esta, instancias variáveis dos las dos todas do entre do compartida do mar do esa do que dos palabras dos otras do en, tanto do lo do por nenhum en la pila de registros de activación do almacenada do es, decir do es, nenhum local variável do una do como do tratada do es. 5.3 4 Reglas:  R1) Base de Regla del caso:Base do caso do un dos menos do al do tener do debe do SE.  R2) Regla del progreso:Os recursivas dos llamadas de Las deben a base progresar do caso do al.  R3) Regla del Puede creerlo:recursivo do algoritmo do un da lebre do SE de Cuando, correcta do respuesta do una do retornara do llamada do la do que do asuma. inductiva do la hipótesis do por do correctamente do funciona do internamente do recursiva do llamada do La. tanto do lo de Por, ya nenhuma base do caso do EL do hasta do camino do tortuoso largo y do seguirá do un, diseño do EL do facilita do que do matemática do herramienta do una do engodo do cuenta do SE do ya do ahora.  R4) compuesto de Regla del interés (mala do es do recursividad do demasiada):resolviendo do trabajo do EL do duplique de Nunca, problema de misma instancia de un do la, problema de misma instancia de un do una dos separadas dos recursivas dos llamadas do en. converger do puede do SE um la solución, en implicar otras instancias de la función dos resueltas do ya de la repetición de instancias do puede
  • 20. 20 do esto do pero. Esto producirá mucho trabajo redundante. Os casos dos algunos do en do recursividad do La, consomem o memoria do mucha. 5.4 Dividir-e-Divide-and-conquer O engodo dividir-e-divide-and-conquer, o recursivamente do problema do un do resolver dos podemos, en cada nivel de la recursión dos pasos do aplicando 3:
  • 21. 21  Partilha: disjuntos dos subproblemas do en do problema do EL de Dividir, problema do al dos menores dos instancias de sean do que.  Conquistar: recursiva do forma do en de Resuelvo.  Liga: obtenidas dos soluciones dos las de Combino subproblemas de de las soluciones de um los do partir. como sub-problemas-problemas para dos pequeños do suficientemente do lo do volvieron do SE do los do que do vez de Una nenhum recursividad usar, tendido do habrá do fondo do toco do la recursión do que dos diremos ("partes inferiores para fora ") y uma base do caso do un. Aveces, original sub-problemas-problemas do problema do EL do que dos pequeñas dos más dos instancias do filho do que do la adición de do por, que sub-problemas-problemas do resolver de Debemos nenhum original do problema do EL do en do completamente do están. O entre do diferencia do La dividir-e-divide-and-conquer o la recursión simples, que de y do es divide-andconquer-andconquer o totalmente diferente una de otra de sean dos problemas do EL do dividir do al dos generadas dos instancias dos las do que do requiere. la recursión do cambio do En simples nenhum requiere do lo. 5.4.1 vencerás superiores da partilha y do algoritmo do EL de Cota para que do especifíca do matemático do análisis de Mediante un, forma do la do engodo do una ecuación do posee do que do algoritmo de de un do tempo running do EL: T (N)=AT (N.B.) +O (Nk) Donde:  nivel del Algoritmo do cada do En, subproblemas do generan A do SE.  O nivel del Algoritmo do cada do En, perito em software reduz o original do fator B EL tamaño de problema do un, nivel pasar do siguiente do al do al.  nivel del Algoritmo do cada do En, resolver do dividir y do conste O do un do tiene do SE (Nk) para. siA > Bk de O (NlogBA) T (N) = siA = Bk de O (logN de Nk) <Bk do siA de O ( Nk) Mestre do teorema do EL do es do parecido do teorema do Un, recursivo cual do caso do todo de para do theta do limite do un do plantea do EL 5.5 Cauda-Tail-Recursion Os recursivos dos algoritmos dos algunos do En, SE pueden o Recursion especial da cauda do llamado de de recursividad do caso implementar do en un (cola), do técnica cual do una do es do la recursividad optimizar do por do recursividad do la de para, recursivas dos llamadas dos constantes dos las do eliminando. recursion da cauda do una función es de Cuándo do ¿? la última instrucción de la función do es do recursiva do llamada do la do cuando do Es; con o recursiva do llamada do la do realiza do que do parte do la do en do que do la restricción, nenhum alguna do otra expresión do exista. cálculos lógicos do los do hago de Cuándo do ¿? primero realizan dos cálculos do SE los, la recursión do realiza do SE do luego de y. Propiedad: Base de la instancia del caso do retorna do que da valentia do EL, la función do retorna do que do EL do es. recursivas realizar dos llamadas de Esto no. a Dinamarca la ventaja de poder, más do frame de pilha de la necesidad de tener un do pecado. decir do Es, llamada evitar de la sobrecarga de cada dos podemos um pila de EL gasto de memoria de dos evitamos do la función y no.. O adecuado do compilador do EL do engodo, do puede recursive do SE da cauda do una función excesso de pilha evitar do como do conoce do SE do que do lo, cuando la pila de llamadas do ocurre do que (pilha de atendimento) consome o memoria do mucha, la próxima instancia de la función do en do frame de pilha do mismo do EL do reutilizando dos estaremos do simplemente do porque. recursivas dos llamadas de es independiente del número de do cálculo do EL do durante do almacenada do ser do debe do que de cantidad de información do La. la lograr responsável optimización
  • 22. 22 do EL de do es do compilador do EL. iterativa recursive do una función do fuera do si do como da cauda do una función do trata do compilador do EL. O ejemplo de Por, tenemos EL enfoque del lenguaje cicia. la recursión do Si nenhum retorno de única parte de la expresión do la do es, la evaluación do en do retornara do maquina do la, tanto do lo do por nenhuma aleta do EL do en dos estamos (cauda) de la función do EL do en, en EL medio de la expresión do si do pero. Nenhum esto do obstante nenhum SE
  • 23. 23 aplica um recursiva de los parámetros de la llamada, aquí do permitido do esta do todo. lenguaje do Si un nenhum la iteración do implementara, como usar Haskell da cauda recursión do podría, una iteración do como do comporta do SE do esta recursión do porque. O La optimización de chama o únicamente do es dos saltos do por exterior posible do llamada de para esa. Por Ejemplo, del do calculo do EL factorial nenhum cauda-tail-recursive: factorial_recursivo do int (int n) { se (== 1 de n) n do retorno; mais n do retorno * fact_recursivo (n-1); } Por Ejemplo, engodo factorial do del do calculo do EL cauda-tail-recursive: fact_tail_sum do int (soma do int n, do int) { se (== 1 de n) { soma do retorno; } mais { fact_tail_sum do retorno (n - 1, sum*n); } } factorial_recursivo do int (int n) { fact_tail_sum do retorno (n, 1); } 5.6 Coroutines Donald Knuth, tareas tratar de cooperación de de generación de do problema de de resolver un do al, elegante de para resolverlo de forma do nivel de herramientas de alto do pecado do SE encontró. diferente do totalmente do esquema de Él abrió un, funciones dos las do sobre, llamadas pensar dos funciones dos llamadoras y do como dos funciones do en do de do dejo. por do cooperan dos funciones dos ambas do que do EL parte de la idéia igual. O que dos informáticos de Las Corrutinas filho componentes de programas permiten subrutinas generalizar dos las, um engodo múltiples puntos de entrada do una función, lugares dos ciertos do la suspensión y la reanudación de la ejecución en do permitiendo. O que dos iterables de para la generación de los componentes dos adecuadas do filho de Corrutinas requieren o estado do EL do almacenado do tener anterior. términos dos otros do En: parecida do una do engodo do retorno de tradicional primitiva de llamada y do la do remplaza. La nueva primitiva de llamada, llamado do fue do EL valentia retornado de donde do guardará, diferente lugar do en un um pila do la, saltará do luego de y um llamada do una ubicación específica dentro de la función, guardado do en un valentia de retorno. buena muy do teoría do una de Esta es, época de Knuth do la do en do pero nenhum primitiva compatível do corrutina do llamada do la do engodo do nivel de había lenguaje de alto. problemas do tendrá TODOS los do destinatario dos funciones do La. retornamos de justo después de que do controle do EL dos retomemos dos llamemos do la do que do vez do cada do que de Para. Filho casos especiales de las corrutinas dos subrutinas de Las. SE invocan, vez que venda de subrutina dos subrutinas de Cuando do una do principio y do EL do desde do comienza do la ejecución, terminada do esta. similares do filho dos corrutinas de Las, rindiéndose o do salir do puede do también do que do excepto "que rende", al "retorno" do equivalente do EL do es do que, llamado retomar do mar do que do vez do la próxima do punto do este do desde do luego de para, llamando do
  • 24. 24 salir deo otros, volver do permite dos les do que do lo más entrar de um vez do una do punto do ese do en, corrutina do la de EL punto de vista de do desde, nenhum salir do es, sino simplemente llamar um corrutina do otra. O la creación de do requeriría dos corutinas do engodo do lenguaje de implementación de un do La empilha corutinas dos EUA do cuando dos adicionales.
  • 25. 25 5.6.1 la versión 2.5 do desde de Las Coroutinas de pitão: Dados de documentación de pitão do La: ejecutada do es do rendimento do sentencia do la de Caundo, retornado do es da valentia do EL do congela y do SE do estado do EL um llamadora do la función. Por congelar, entendemos, retenidos do están dos lugares dos estados do que TODOS los, vuelva do la función do que do vez do la próxima do hasta um invocada do ser. llamada hubiese do una do efectuado do si do como do procederá do La función um externa do una función. Rendimento es EL punto de retorno y de do EL re-ingreso-ingreso um corutina do la. fácil de e crear do es do corutina do La implementar. retorna un Objeto iterable, retornados do corutina do una do pitão do En dos valores do los do realmente do otorga do que do EL do este do es do que. rota do def (pessoa): _people = lista (pessoa) corrente = 0 quando len (_people): render o _people [atual] a corrente = (corrente + 1) % len (o _people) se == "__main" do __name: povos = ["formiga", "Bernard", "Carly", "Deb", "Englebert"] r = rota (povos) para i na escala (10): cópia "é volta de %s." % de r.next () clave retomar abandonar combinar do punto do en un do recursiva do rutina do la do recursividad y y do la do engodo do puede de corutina de pitão perito em software do La, llamada do fue do la función do donde do nivel do cada do por de necesidad de volver do pecado, llamador llegar do al do hasta. ejecuta de solo "rendimento", listo de y. 5.6.2 en C dos corutinas de Las lenguaje de Este nenhum engodo este tipo de componente do cuenta, corutina simples simulan do la do elegante de de forma y do que dos implementadas dos macro do feno do aunque, recursividad do la do engodo do la combinación do impide, que do puesto nenhum forma do en do usada do corutina do una do es natural.
  • 26. 26 EL Problema de la Solución Óptima de 6 Recursividad y De um en dos problemas de Podríamos clases clasificar dos tres los (clases tratan de solo dos primeras do dos dos las do SE):  O que de Problemas poseen o única de solución, tanto do lo do por, mejor solución do la do es.  O que de Problemas poseen correctas dos soluciones dos varias, pero un de solo subconjunto de las soluciones, una solución óptima do es.  O que de Problemas tienen forma de maximización o minimización de una que o objetivo variável y poseen a variável do cada de restricciones de valores para, variáveis dos estas do engodo dos lineales de de ecuaciones do serie de tomando forma de una. Perito em software denomina problema de programación do clase de Esta lineal. Definición: Problema de optimización: O cuando do Es existen correctas dos soluciones dos diferentes. una de solo solución óptima de Pero algunas de ellas es, vida do la do la solución óptima para do requiere do SE de Y real. Ejemplo: monedas do EL problema de cambio de: unidades de de C1C2Cn dos monedas do engodo do divisa do una de Para, SE necesitan, devolver K unidades de cambio do que do EL mínimo numero de monedas de Cual es do ¿ de para? dinero dar do EL dos maneras de de varias dos podemos do porque do Es un problema de optimización uma personalidade do la, la de solo óptima do una solución es do pero. ejemplo de Por: Cajero-automático de emisión de billetes de un do La um del banco, asumimos do cliente do un, la dar mínima cantidad de billetes do la emisión óptima es do cambio y do feno do siempre do que posible. Una solución es: monto do EL de Mientras um mar entregar diferente de cero, unidad do menor do la do hasta do unidad do mayor do la do desde de Iterar, monto do al de Restar um iterada entregar de un múltiplo de la unidad, entregarlas contabilizar de que perito em software le restaron y dos monedas dos dichas. Pero nenhum una solución óptima do sería: monedas dos las de sean: $50, $25, $21, $10, $5 que $42 dar do feno de y $1 y: la solución óptima es 2 de $21. algoritmo es $25 do EL do por do otorgada do la de Pero, $10, $5 y $1, pero do correcto do es do cambio do EL nenhum óptimo. Definición: una Subestructura do posee do que do problema do Un óptimo: Original do problema do al dos soluciones óptimas do filho do subproblema do al dos soluciones óptimas dos las do que dos subproblemas y do en do dividirse do puede do problema do EL do que de Implica. ejemplo Si para ir de Córdoba de Por um Carlos Paz. EL pasar Puente 15 do por de de Córdoba do partir do implica do corto dos más do camino do EL de Y, finalmente pasar ir do EL Tropezón y do por do luego um Carlos Paz. quiero óptimo ir de Córdoba do si do que do implica do subestructura do La um EL Tropezón, EL pasar Puente 15 do por do deberé. 6.1 atrás o Algoritmos de Retrocesso de Algoritmo de vuelta soluciones probar do en dos posibilidades dos las dos todas do sistemáticamente do la recursión para dos EUA do que do algoritmo do EL do Es, momento do EL do hasta do mejor solución do la do almacenando. lista de candidatos do en EL procesamiento de una do basa do SE um mejor solución do la, que candidatos generar dos nuevos de um puede do vez do la. anchura do en do profundidad o do en do ser do puede do en EL espacio de soluciones do búsqueda do la do en do recorrido do EL. Minimax do ejemplo de Por. 6.2 codiciosos ávidos de Algoritmos o Algoritmos Devoradores o. Os algoritmos ávidos, instancia toman do Los do cada do en dos decisiones óptimas do que dos algoritmos do filho, sin futuro pensar do EL do en, mayor do problema de de un do parte do si la instancia del problema es do ejemplo do por, subestructura óptimo, pero do tiene do problema do EL do cuando dos soluciones óptimas de dan dos algoritmos dos estos do eso de Por nenhuns revés do al do necesariamente. Cuando nenhum tiene, puede o nenhum solución dar óptima. ¿Problemas que pueden pasar? O SE recalcular dos estos do porque dos subproblemas dos problemas y do los do puedo do momento do algún do En superponen. pasa do esto de Cuando, algoritmo do EL nenhum eficiente do es. Soluciones:
  • 27. 27  camino global do EL de para do profundidad do una de Establecer: algoritmo do al do decirle do Es, que nenhuns entonces do porque do profundidad de perito em software pase de x nenhum otorgada do la solución do buena dos soros.
  • 28. 28 • hechos do ya dos cálculos do los dos tablas do en do almacenando do dinámica de Emplear Programación.
  • 29. 29 7 dinámica de Recursividad y Programación. por un planteamiento recursivo de forma dos generados dos subproblemas do resuelve do que do es un tipo de recursividad do dinámica do La programación nenhum recursiva. tabla de resueltas dentro de una do ya de EL almacenamiento de las instancias do mediante do logra do lo de Esto. tabulada do una solución do ofrece do dinámica do La programación, subproblemas cual de una tabla de resultados óptimos de los do arma do la do en. contiene de tabla de resultados do La, la instancia del problema, correspondiente solución óptima de información al respecto del problema y SU. O una fuese ocasión anterior, SE do en do resuelta do que provável do es do instancia do la do porque do tabla do la do emplea do SE do filho óptimos y dos alamacenados dos resultados do los dos además pueden o superior reutilizar do problema do EL resultado optimo de un do tener de para. Fazer feno os formas de EL realizar llenado de la tabla do dos, enfoques do dos do filho:  Invertido: dividir do al dos repetidas dos instancias de EL problema de la generación de do resuelve do que do enfoque do EL do Es. llega do SE do cuando do tabla do la do llena do SE um instancia do una do resolver.  De baixo para cima: problema incrementar do al do converger do problema y do EL do luego de para da base do caso do EL do llenando do siempre de Empieza inicial. tabla do la do En, nenhum la solución do almaceno, sino la solución de una forma de construir. filosofía de do La "de baixo para cima" (delante do hacia do principio do EL do desde): o EL do en dos valores do los do calculando dos vamos do si orden o correcto, necesitamos do que dos valores do momento TODOS los do cada do en dos tendremos. Buttom-up atacar do engodo do moneda de EL problema del cambio de do podría de Por Ejemplo, cambio para $1 do EL do almacenando, luego para $2, monto llegar do al do hasta do así de y inicial. la retornar solución óptima de y. pasos dos siguientes do los do engodo do realiza do SE do dinámica de Programación: 1. problema usar óptimo do al do una solución óptima do construir de para do esta do subestructura y do la de Encontrar um partir de los subproblemas. 2. costo en términos de la solución óptima do EL do definir dos debemos do recursividad de Mediante. 3. Situações óptimas reais, tomo calcular de Computar EL costo de una solución de EL costo le le do añadiendo de EL costo de MI solución do decir do es uma liga anterior do que do subproblema do EL do que resolvió do instancia do una. 4. Base do en do la solución óptima de Construir um computada do fue do que do la información. optimales dos subestructuras do descubrir de para dos comunes de Patrones: 1. una crear elección y la creación de esta elección do la solución es do que do muestra do problema do EL do Si, géneros subproblemas dos más da ONU o um resolver. 2. Os dado do problema do EL de para do que de Supongamos, que do la solución do toma conduzem um la solución óptimo. Nenhuns determinamos esa elección do como do importara dos no.. obtuvimos de solo do la do que dos asumimos. 3. realizada do la elección do engodo, EL resultante espacio de subproblemas do caracterizara do seguirán y cómo dos subproblemas dos cuales dos determinamos. 4. O la solución do en dos usados de las soluciones de los subproblemas do que do muestra do SE óptimo deben optimales do ser dos solos do si do por. O subproblema de cada solución de un do que do supone do Si nenhum una contradicción do en do deriva do luego do es óptima y, original demostrar do problema do EL do mejor solución para do una do obtener do puede do que do deberá dos entonces, por contradicción do que do ya usted o una óptima solución do tener do supone. subproblemas óptimos de de um varios do partir do una solución do tiene do SE do Si, esfuerzo do bajo do engodo do unir do podrán do SE dos estos.
  • 30. 30 7.1 dinámica invertido de de la programación do enfoque de Memoización. del i-esimo numero de la secuencia de fibonacci de Problema de la Obtención: problema de Definicióndel: fibonicci do EL iesimo numero de la secuencia de do requiere do SE, donde: f (i) = f (i-1) +f (i-2), donde f (0) =0 y f (1) =1 Pitão do en de Solución:
  • 31. 31 def fibonacci (n): se n < 2: n do retorno fibonacci do retorno (n-1) + fibonacci (n-2) la peor implementación de fibonacci de Esta es, crecimiento de exponencial problemas do un do forma do en do realiza do SE do que do ya. yf do af do llamara de f (5) (3) (4) yf do af do llamara de f (4) (3) (2) llamara de f (3) um f (1) y f (2) llamara de f (2) um f (0) y f (1) llamara do SE 3 veces um f (0) llamara do SE 5 veces um f (1) llamara do SE 3 veces um f (2) llamara do SE 2 veces um f (3) veces do llamara 1 do SE um f (4) Las llamadas de fibonacci crecen o secuencia da SU do como:) O SE do que do claramente do perito em software VE vuelven resueltas de um fueron do ya do que de instancias del problema do resolver. O SE dar podrían do algoritmo do único do perito em software circunstancias de que EL nenhum valido do ejemplo do es un, implementado do mal do esta do porque) (fibonacci presenten resueltas do ya de viejas instancias del problema. estrategia do una de Existe, circunstancia atacar dos estas de para: La memoización: resueltas do ya do problema do del de una esconderijo de instancias do engodo do cuenta do SE do donde de Que es un tipo de recursividad en (realizadas de una esconderijo de funciones). O primero buscar do esconderijo do la do en do engodo do basta do donde do En antes o resolverlo intentar do de (nenhum recursiva invocar do forma do en realizadas de um ya dos las). Nenhum bueno do es, globais variável do una do mar do esconderijo do la do que, globales das variáveis do pecado do recursividad do en do esconderijo do una do tener do puede do SE. tiempo dos ganamos do engodo memoización um memoria do en do espacio de de perder da costela. Ahora supongamos que hacemos: def fibonacci (n): se n < 2: n do retorno fibonacci do retorno (n-1) + def de fibonacci (n-2) memoize (divertimento): esconderijo = {} def f (*args): se args não no esconderijo: esconderijo [args] = esconderijo do retorno do divertimento (*args) [args] f do retorno una versão memoizada de f do #retorna! fibonacci = memoize (fibonacci) llamada do La um fibonacci (50), parece ilimitado, rápidamente do memizacion do pecado do memoizacion do engodo do pero re-tornara-tornara. Paso um EL explicar código,  común de una función de fibonacci do creo de Primero. (linea 1.2.3.4 do la do en).  Luego, esconderijo do llamada do vacía do lista do una do contiene do que do una función do creo. (linea 6 y 7).  O esconderijo do llamada do tabla do La, nenhum la función do cuando do desaparece memoize o termina (linea 12).
  • 32. 32  O La función memoize o escrita en términos del argumento do fue do que do una función do retorna. Não pôr em esconderijo nenhum global variável do una do es, local do tampoco, sino fechamento do llamado do algo do es, escrita do ser do al do esconderijo de estaba dentro del espaço de do que do accederla función do puede do que.
  • 33. 33  O linea 14 do la do En, memoize o reescribir da lebre (de fibonacci) um la función f, en términos de fibonacci, linea 10 do la do en, dentro do allí do cambiando um por la de fibonacci de dirección de divertimento do la (la dirección de la linea 1). O asterisco do EL deff do de do caso do EL do En do "(*args)" consome o única do tupla do una do en do une dos posteriores y los dos argumentos do TODOS los. caso de "esconderijo do EL do En [args] = divertimento (*args)", tupla do la do desempaqueta do asterisco do EL.  linea finalizar 14 do La de Para. Setea um fibonacci, sobrescribe do que do lo do por um que dos llamadas dos futuras dos las llamen um fibonacci, llamando do estarán do realidad do en um incluido do la función f um llamara do que do mismo de fibonacci um linea 4. do la do en de f. lío de Mucho do ¿? ze do @memo i def fibonacci (n): se n < 2: n do retorno fibonacci do retorno (n-1) + fibonacci (n-2) O decorador do EL memoize, o dicha memoizar función dos queremos indica do que. 7.2 ejemplo de De baixo para cima do Un claro do quede do que de Para, del cambio de moneda de la tabla del problema do lleno. monedad $1 dos las do tiene do divisa do MI, $2, $5 y $10 complicado que EL de fibonacci dos más do es do problema do EL do que de Puesto, entradas dos las do en dos elementos dos más do tiene do tabla do la. CambioaEntregar ($) 0 1 2 3 4 5 6 7 8 9 10 11 entrego do que de Lo (resta) 0 1 2 2 2 5 1 2 2 5 5 5 realizado de Trabajo (costo) 0 1 1 2 2 1 2 2 3 3 2 3 Paso um llene explicar MI tabla de lo do como simples um complejo do lo:  quiere $0 sacar do hombre do un do que do asume do algoritmo do EL, entonces mim entrada 0 do la do en do sitúo (rojo), nenhum trabajo restar es 0 do EL do que do así da Nada do que do tengo.  quiere $1 sacar do que do asume de Ahora, entonces mim entrada 1 do la do en do sitúo (rojo). unidad do una de Resto, cero do en do monto do EL do quedando, nenhum falta continuar, fue 1. da lebre do trabajo do EL.  quiere $2 sacar do que do asume de Ahora, entonces mim entrada 2 do la do en do sitúo (rojo). Resto 2 unidades, cero do en do monto do EL do quedando, nenhum falta continuar, fue 1. da lebre do trabajo do EL.  quiere $3 sacar do que do asume de Ahora, entonces mim entrada 3 do la do en do sitúo (rojo). O que do directa do moneda do engodo do entrada da primeira demão do La do escojo dos anteriores y dos entradas dos las de Leo minimiza o final do al do realizado de EL conto del trabajo. (mismo do lo da Dinamarca do caso do este do En, EL 2 do escojo) Resto 2 unidades, ONU do en do monto do EL do quedando, falta continuar, entonces da lebre mim entrada 1 do la do en do sitúo (rojo), trabajo do EL do calculo do unidad y do la do resto, fue 2. do que.  quiere $4 sacar do que do asume de Ahora, entonces mim entrada 4 do la do en do sitúo (rojo). Final do al do realizado de EL costo del trabajo do minimice do que do directa do moneda do engodo do entrada da primeira demão do la do escojo dos anteriores y dos entradas dos las de Leo. EL 2 de Escojo, EL 1 do escojer do que do puesto, trabajo do EL do aumentaria. Resto 2 unidades, dos do en do monto do EL do quedando, falta continuar, entonces da lebre mim entrada 2 do la do en do sitúo (rojo), resto 2, queda 0 trabajo do EL do calculo de y, fue 2. do que.  quiere $5 sacar do que do asume de Ahora, entonces mim entrada 5 do la do en do sitúo (rojo). Resto 5 unidades, cero do en do monto do EL do quedando, nenhum falta continuar, fue 1. da lebre do trabajo do EL.
  • 34. 34  quiere $6 sacar do que do asume de Ahora, entonces mim entrada 6 do la do en do sitúo (rojo). Final do al do realizado de EL costo del trabajo do minimice do que do directa do moneda do engodo do entrada da primeira demão do la do escojo dos anteriores y dos entradas dos las de Leo. EL 1 do EL 5 o de Escojo, mismo do lo da Dinamarca, diferenciarme de do EL 1 para do pongo do pero ávido. Resto 1 unidad, en 5 do monto do EL do quedando, falta continuar, entonces da lebre mim entrada 5 do la do en do sitúo (rojo), resto 5, queda 0 trabajo do EL do calculo de y, fue 2. do que.
  • 35. 35  Asume$8=1+2+5  síntesis do En, EL índice del próximo de EL resultado de la resta es lugar um visitado do ser. podría una dejar indicación del próximo do En la parte del trabajo perito em software lugar um visitado do ser, en caso de ambigüedad. 7.3 Sumário ¿ Posee Subestructura óptimo?diferentes dos instancias do generan do SE do ¿? Enfoque NÃO NÃO Backtraking -- SI Dividir y reinar SI NÃO dinamica de Programación SI SI Algoritmos ávido
  • 36. 36 Parte III Algoritmos de Ordenación mediante comparación de 8 Ordenación mediante comparación de de Ordenación dos algoritmos do Los, comparaciones de solo do usando ordenan do que dos aquellos do filho. ejemplo de Por: comparaciones do en do basado do es da Introduzir-Insert-sort, Raiz-Radix-sort do pero nenhuns comparaciones do en do basado do es. algoritmos de Ordenación in-place, adicionales usar do Los de espacios de memoria do pecado ordenan do que dos aquellos do filho. ejemplo de Por: Rápido-Quick-Sort es in-place, Fundir-Merge-sort do pero nenhum es in-place. estables de de Ordenación dos algoritmos do Los, repetidos cambiar dos elementos de EL ou-antro de aparición de do pecado ordenan do que dos aquellos do filho. ejemplo de Por: Fundir-Merge-sort es estable, Escudo-Shell-sort do pero nenhum es estable. cascada ordenar de una lista de nodos en do conseguir de solo do puede do SE dos estables de algoritmos de ordenación do engodo (ejemplo do por do aplellido do nombre y do por de Ordenar). atrevemos do derecho no. do que do engodo do ¿ um verlo do al do arreglo do un do esta do ordenado do tan do que do decir? O EL grado de desorden o arreglo do un do posee do que da Dinamarca EL número de inversiones do lo do arreglo no. de de un. Vetor A do en un de Una inversión, <j y do cumple i do que da paridade do todo do es (ij) Ai > Aj. que de permutación de la entrada do la de de ordenación es do algoritmo de la salida de un do que do decir dos podemos de Entonces nenhuns inversiones do contiene. al azar, EL numero medio de inversiones de un vetor de tamaño N es n dos llenados dos arreglos do constante do forma do en dos recibimos do que de Suponiendo (n+1) 4. O perito em software do numero de Este deduz Pensando vetor es n de de un dos posibles de la cantidad de permutaciones do que (n+1) 2, donde n (n+1) máximo ___ do EL de 2 es promedio do en do es do como do mínimo do EL do numero YO es, mitad do la do es do resultado do EL. eficiente do EL algoritmo de ordenación, resuelve por intercambio de posiciones dos inversiones dos más do que do EL do es. adyacente solucionan do una inversión do que dos algoritmos do Los, una eliminan inversión do exactamente, tendrán n do promedio do en do que do lo do por (n+1) 4 ____ inversiones um realizar. que dez do lo de Por promedio T do tempo running do un do drán (N) = (N2). 8.1 Introduzir-Insert-Sort comparaciones do en do basado de Esta, es y in-place es estable. añadiendo estan dos vamos dos las dos cartas y do entregando do que no. do imaginarse do facil dos más do Es um mano do nuestra do en do esta do que do ordenado do mazo do nuestro. otorgada do carta do ultima do la do es do negra do la dos manos y dos las do en dos tenemos do que dos cartas dos las do filho dos gris do parte do La. en EL sentido de máximo dos vamos de Como um recorrido do EL do en do mínimo, algoritmo do EL dos mantenemos estable.
  • 37. 37 /* * arreglo A do EL do en' dea' r' do de' p dos elemntos de Ordena los * [..., p,.. , r,...] * InsetSort vago (int p, int r) { chave do int; int i; para (int j = p+1; <= r de j; j++) { chave = A [j]; i = j-1; quando (>key do && A do >= p de i [i]) { A [i+1] = A [i]; --i; } =key de A [i+1]; } retorno; }
  • 38. 38 adyacentes dos inversiones do promedio do en do soluciona da introduzir-insert-sort do EL, promedio de T do tempo running do un do tiene de y (N) = (N2). nodo auxiliar do es EL tamaño de un do usada do memoria do La MEM = O (1), considera do lo do SE do eso do por in-place. 8.2 Escudo-Shell-Sort Escudo de Donal do por de Creado, por Gonnet do profundidad do en do estudiado do pero. comparaciones do en do basado de Esta, es y in-place nenhum es estable. Do al eliminar do mayor cantidad de inversiones do la de Trata de distanciados comparar do encuentran do SE do que dos elementos do dos, principio do EL do en, cercanos dos más dos elementos do entre do compara do luego, adyacentes comparar dos elementos do finalmente do hasta. serie estan llamada secuencia de incrementos do una do en dos puestas dos distancias de Las: final inicial do incremento do al do incremento do EL do desde do va do donde hth2h1. Vale final 1 do siempre do incremento do EL h1 = 1.. Vale ordenar do todo i do en la fase de incremento HK para de Después de: a [i] a [i + HK], elementos do los ordenados de um están do distancia do esa. Mar de la secuencia de incrementos do que do escudo sugirió GH = N 2 y hk1 = HK 2.. mejor do seria de la secuencia de incrementos do que do practica do la do en de Gonnet demostró: GH = N 2 y HK 1 = HK 22. elementos do los do entre do por inserción do realiza ordenación do SE um distancia HK.
  • 40. 40 /* * al n-1 do del 0 dos elementos de Ordena los * arreglo int A do EL do en [..] * shellsort vago (int n) { int i, auxiliar; incrementos de //itrero los para (int h = n/2; h>0; h = (h==2? 1: adaptado de h/2.2 //insertsort para (int j = h; j < n; j++) { chave = A [j]; i = j; quando (key<A do && do i>=h [i-h]) { A [i] = A [i-h]; i-=h; } =key de A [i]; } } } 25 )) {
  • 41. sabe do lo do nadie do aun do Los casos medio del algoritmo. EL peor caso del algoritmo es T (N) = (N2). subcuadratico do considera do SE. nodo auxiliar do es EL tamaño de un do usada do memoria do La MEM = O (1), considera do lo do SE do eso do por in-place. 8.3 MergeSort comparaciones do en do basado do algoritmo do Es un, es estable, pero nenhum es in-place. vencerás da partilha y do filosofía do la do bajo do escrito de Esta. Lebre de Conceptualmente:  Partilha: Engodo la mitad de tamaño dos desordenados dos arreglos do en 2 do desordenado do arreglo do Un.  Reinar: sublistas dos las de Ordenar.  Combinar: ordenadas mezclar dos listas do dos de Unir o (fusão do palabra do la de de la traducción de), ordenada do lista do una do en. ONU mezclar do en dos arreglos do dos do de do costo do EL de Cuál es do ¿? O Es de orden lineal, una do cada do constante do en N operaciones de costo do creado do ser do puede do arreglo do nuevo do EL de Porque. Tempo running de T do que no. a Dinamarca un de Lo (N) = 2T (N 2) + O (N) tempo running es T do EL do que dos sabemos dos vencerás da partilha y de la cota de los algoritmos do por do que (mestre do teorema do EL do empleando deo) (registro N. de N) = de N. al cambiar, una ordenación do cuidado de Teniendo do mar do que dos logramos estable. memoria EUA extra de Cuanta do ¿? nodos auxiliares do es EL tamaño de TODOS los do usada do memoria do La MEM = O (N), NENHUM ES in-place. 8.3.1 Fusão de Operación vectores de entrada L y R de mezcla parte de de dos do La, vetor i do en EL principio de cada dos índices do tiene 3 do algoritmo do EL do vetor A. do al de Produciendo,
  • 42. 42 respectivamente de j y k. Comparamos Li contra Rj, en Ak do menor do EL dos almacenamos dos después, incrementamos k dos después, menor do EL da era dos incrementamos i si Li dos después, menor do EL da era dos incrementamos j si Rj deo. (ignoren esos infinitos de la imagen)
  • 43. 27
  • 44. 44 /*  elemntos de' p' a de Ordena los  arreglo A do EL do en [..., p,.. , r,. * MergeSort vago (int p, int r) {int q; se (p < r) { q = (p + r)/2; MergeSort (p, q); MergeSort (q + 1, r); Fusão (p, q, r); } } /*  elementos Desde A de Mezcla los  hasta Desde A [q] y A [r] * fusão vaga (int p, int q, int r) int i = p; int j = q+1; int k = 0; mem do int* = malloc (do int*) ((p+r+1 quando (j<=r) do && do i<=q { se (A [i] <= A [j]) mem [k++] =A [i++]; mais mem [k++] =A [j++]; } quando (i<=q) =A do mem [k++] [i++]; quando (j<=r) =A do mem [k++] [j++]; para (i=0; i<=r-p; i++) {=mem de A [p+i] [i]; //Lleno A }} ’r’ ..] [p] y A[q+1] { )*sizeof(int));
  • 45. 45 Pitão para la ordenación de listas dos EUA do que do algoritmo do EL de Este es, en C++ do implementado do esta do pero. qué de Por do ¿ nenhuma Rápido-Quick-Sort dos EUA? Rápido-Quick-Sort do que de Por NENHUM ES ESTABLE, estables dos algoritmos do engodo do razono do usuario do EL do que do piensa de y!!! 8.4 Rápido-Quick-Sort comparaciones do en do basado do algoritmo do Es un, NENHUM ES estable, pero ES in-place. practica do la do en do que do considera do SE, comparaciones do EL más rápido de los de do es do promedio do en, por do discriminado do es do pero nenhum ser estable. vencerás da partilha y do filosofía do la do bajo do escrito de Esta. Lebre de Conceptualmente:  Partilha: Engodo la mitad de tamaño dos desordenados dos arreglos do en 2 do desordenado do arreglo do un da partilha, final do la posición do en do encuentra do SE do que do elemento do un da salva, subarreglos do los 2 do entre do situado do esta do que.  Reinar: Final do la posición do en do coloca do ylo de Escoge un elemento del arreglo.  Combinar: nivel do ese do en do coloco do SE do que do medio do EL do en do elemento do engodo dos subarreglos do de 2 do ordenado do arreglo de Retorna un. caso es T do peor do EL do en do tempo running do EL (N) = O (N2). promedio es T de Pero EL rendimiento del caso (N) = O (registro de N N). Funcionamiento: 1. retorna do ordenado y do arreglo do es un dos elementos do tiene 1 o 0 do arreglo do EL do Si. 2. contrario do caso do En, escoge un elemento v del arreglo S do SE, pivote cual dos llamaremos do al. 3. Final do la posición do en de Colocar v. disjuntos dos subarreglos do dos de Particionar S ven I y D, menor tal do mar do elemento xi do todo do que um mayor do mar do yD do elemento do todo de v y um V. (iguales de solo de camionete elementos dos arregos do En ONU de esos um v). 4. ordenado I seguido de v do arreglo do EL de Retornar, seguido de D.. O EL corazón del algoritmo de selección del pivote es do La, equivale do mal do hacerlo um algoritmo de do un do tener orden o cuatrático. 8.4.1 Selección Del Pivote la selección del ideal pivote do ¿ Cómo es? tamaño igual do de dos subconjuntos do en 2 do conjunto do al da partilha do pivote do EL do cuando do presenta do SE do caso do mejor do EL. T (N) = O (registro de N N). la selección pésima del pivote do ¿ Cómo es? Géneros vacío do pivote do EL do reiteradamente do cuando do presenta do SE do caso do peor do EL do subconjunto do un. T (N) = T (N 1) + O (N) = O (N2). medio es T do caso do EL (N) = O (registro de N N). Esto no. corta o filho do algoritmo do al do degeneran do que dos entradas dos las do que do indirecta de de forma, repetidos dos elementos do engodo TODOS los do arreglo do ordenado y un do ya do arreglo do un. elegimos do ¿ Cómo, pivote do al de EL elemento del medio do conocer do pecado do rápida y de de forma?  elemento da primeira demão do EL de Escoger: más populares, desordenado muy do forma do la do Es do esta do arreglo do EL do que do asume do puesto, realidad do la do en do cuando nenhum así do es. nivel do por do nivel do repetirá do SE do comportamiento do mal do este de Y, usarlo do desaconseja do SE do eso do por. elemento da primeira demão do EL dos más do uso de Nunca.  elemento ultimo do EL de Escoger: estadísticas dos razones dos iguales de Por, nenhum elemento ultimo do EL do uso.  al do elemento do EL de Escoger azar: buena elección do una do Es, promedio do caso do EL do tendrá do SE de y.
  • 46. 46  Escoger EL elemento del medio: una elección razonable, algoritmo do Es do al do degeneran do que dos casos do los do evita, pasiva do una elección do considera do SE do pero, malo evitar do pivote do un do elegir do intenta.  Escoger la mediana de tres: mejor que EL del medio do elemento de Escoge un. elemento da primeira demão do EL dos seleccionamos de Primero, EL N 2 - elemento ultimo do EL do esimo y, mediana de los 3 do la dos escogemos do finalmente, pivote do elemento do como. Final colocar ordenar do al do pivote do EL dos valores y dos tres do los do requiere de Implementar la mediana de tres.
  • 47. 47 8.4.2 Estrategia de la Partición la partición de Pasos para: 1. pivote do al de Intercambiar contra o elemento ultimo do EL. 2. menores dos elementos de Agrupar los mayores do izquierda y um los do la um derecha do la. 3. mayores do EL primeira demão elemento del grupo de los de Intercambiar contra o pivote do EL. paso de varias formas de hacer El Segundo do feno:  centro y do EL do hasta dos extremos do los do desde dos índices do dos do engodo do recorrer de Una es comparar contra o pivote do EL. O mitad do primera do la do en do pivote do EL do que do mayor do elemento do un do busca do SE, mitad do segunda do la do en do pivote do EL do que do menor do elemento do un do busca do SE, vuelve intercambian do SE dos elementos y dos dichos do SE um hasta buscar llegar um SE do que junten índices do dos do los. Deslocamento predeterminado que viaja de izquierda do EL do pasa do eso de Cuando um pivote do al do mayor do elemento do un do seleccionando do esta do derecha, índice intercambian do ese do SE contra o pivote do EL, vuelva do SE do que de EL índice del pivote para do retorna do SE de y um quicksort do en do dividir.  pivote do al do intercambiando de Otra es ir contra o intercambiarlo do luego do mitad y do primera do la do en do encontrado do mayor do elemento do un contra o mitad do segunda do ella do menor da ONU, que do hasta nenhuns más do hacer do pueda do SE.  mayores do los do engodo do setor do segundo dos menores y un do los do engodo do setor da primeira demão do un do agrupando do derecha do la do hacia do izquierda do la do desde dos índices do dos do engodo do recorrer de Otra es es. (implementada de versión). grafiquito do EL do en dos vemos de Como, al del final subarreglo do pivote y do al do señala do índice r do EL, principio do al de y p. encontrado ultimo do pivote do al do menor do elemento do EL do señala do índice i do EL, analizando do esta do SE do que do elemento do EL do señala do índice j do EL, que do decir dos podemos do que do lo do por: Os elementos do Los con o desde p dos índices do los um i (vale do que do principio do al da salva (p 1)) menores de la zona de los elementos do filho. Os elementos do Los con um elementos do desde i + 1 dos índices do los de j 1 (principio do al da salva) do filho mayores de la zona de los. intercambia de solo do SE do SE do luego do incrementa i y do incrementa do SE do pivote do al do menor do elemento do un do descubre do SE do la posición j do en do incrementa J. Cuando do SE do simplemente do pivote do al do mayor do elemento do un do descubre do SE do la posición j do en de Cuando contra EL elemento de la posición j, incrementa J. do SE dos después.
  • 48. 48 /*  mediante la mediana de tres de Eleccion del pivote.  llamando de Finaliza um particiona do que do funcion do la * int PrePartition (int p, int r) { int auxiliar; int m = (r+p)/2; entre p y r do esta do que de //indice mayor do EL do es do primero do EL de //si, al do paso do lo ultimo se (A [p] > && A de A [m] [p] > A [r]) { auxiliar = A [r]; A [r] = A [p]; A [p] = auxiliar; } mais { final do al do paso do lo do mayor do EL do es do medio do EL de //si se (A [m] > && A de A [p] [m] > A [r]) { auxiliar = A [r]; A [r] = A [m]; A [m] = auxiliar; } } principio do al do paso do lo do menor do es do medio de //si se (A [m] < A [p]) { auxiliar = A [p]; A [p] = A [m]; A [m] = auxiliar; } penultimos do hago de //a los del medio los auxiliar = A [r-1]; A [r-1] = A [m]; A [m] = auxiliar; divisória do retorno (p+1, r-1); } /*  pivote ultimo do como do EL de Selecciona  particionando lugar da SU do encuentra de y  pivote do al dos menores dos mayores y do en  pivote ultimo do al do intercambia do por  mayor do numero da primeira demão do EL do engodo  de 0 um pivote do al dos menores dos elementos do los do filho de i  de i+1 um pivote do al dos mayores do los do filho j-1 * divisória do int (int p, int r) { int x, auxiliar; int i; x = A [r]; /x es pivote do EL i = p-1; //j de p um r-1 para (int j = p; <= r-1 de j; j++) { se (<= de A [j] x) {menor de //si es i++; auxiliar = A [i]; A [i] = A [j]; A [j] = auxiliar; }
  • 49. 49 } os lugares do los do intercambaran de //se con o pivote do al do mayor da primeira demão do EL. auxiliar = A [i+1];
  • 50. 50 A [i+1] = A [r]; A [r] = auxiliar; i+1 do retorno; } /* * arreglo A do EL do en' dea' r' do de' p dos elemntos de Ordena los * [..., p,.. , r,...] * QuickSort vago (int p, int r) { int q; se (p<r) { se (<= 7 do r-p) { menor de //si es um 7->InsetSort InsetSort (p, r); } mais { //q = divisória (p, r); q = PrePartition (p, r); QuickSort (p, q-1); QuickSort (q+1, r); }} retornar; }
  • 51. 51 8.5 comparaciones inferiores do en dos basados de Cota para los Algoritmos aun dos mejores dos comparaciones do en dos basados dos algoritmos de Suponiendo nenhum filho do mejor de Cuánto do ¿ dos descubiertos? Teorema: elementos ordenar de para dos comparaciones do únicamente do emplee do que de Cualquier Algoritmo, registro emplear dos menos do al do requiere (N!) comparaciones, tempo running de T do un do tendría do que do lo do por (N) = (registro de N N). Prueba: O arreglo de N do un do entrada do como dos tenemos do Si, elementos, EL do interesa do como no. orden, os posibles es N do EL numero de permutaciones! , inversiones eliminar do al dos posibles de EL numero de permutaciones dos bajamos do logaritmicamente do como (posibles de una mitad de permutaciones, por la eliminación de inversión dos imposibles de segunda mitad de permutaciones do otra de y), registro do es es do claro do queda (N!). 8.6 Contar-Counting-Sort NENHUNS comparaciones do en do basado do algoritmo do ES un, ES estable, pero NENHUM ES in-place. tabla do una do en dos elementos de la cantidad de apariciones de los do contabiliza do SE de Basicamente, elemento cual do mismo do EL do por do indexada do es do la. O en do muestran do SE do que do es do resultado do EL orden apariciones dos las. O están dentro del conjunto de la entrada de los elementos do que do asume do SE C = 0 k, reativo determinar do EL de para do arreglo do este do usando orden, en ordenar T dos elementos de de N do entrada do una do puede do SE (N) = O (N + k) = (N). entrada do como do arreglo A do EL do engodo do cuenta de Este, contabilizacion lugar do la do almacenaran do SE do donde do EL do salida y C es do como de B. Pasos:  lo de Um dos contabilizamos de Primero, arreglo C. do EL do en (imagen a)  Segundo Acumulo las contabilizaciones.(imagen b)  inverso do modo do En, elemento ultimo de Um do EL do tomo (pila fuese), la posición do una do si do como do obtengo do arreglo C y do EL do en do elemento do ese do engodo do indexo, ONU do en do esa posición do decremento do arreglo B. Luego do EL do en. (imagen c, d y e). algoritmo ultimo do al do hacer do podría do en aparición do nodo do EL de Retornando estable. def CountingSort (A, k) 0] *k do c= [ lo de Um do #contabilizo para x em A: c [x] +=1 contabilizaciones dos las do #acumulo para i na escala (1, k): c [i] +=c [i-1] correcta ultimo do posicion do en SU do elemento do EL
  • 52. 52 do #pongo para x inreversed (A [:]): c [x] - =1 =x de A [c [x]]
  • 53. 53 8.7 RadixSort NENHUNS comparaciones do en do basado do algoritmo do ES un, ES estable, pero NENHUM ES in-place. Prolongamento EL rango de la entrada do SE EUA para. posibilidades do toma k do digito do cada dos digitos y do tiene d do entrada do la de Donde. O en dos elementos de de N do entrada do la do reordena de RadixSort orden T (N) = O (d (N + k). radixSort (A, d) para i = 1 a d: usar uma sorte estável para classificar a disposição A no dígito i..
  • 54. 54 Parte IV avanzado de Repazo (Pila, cola y Lista) Las Estructuras de Datos, abstractos de filho tipos de datos. Tipo de dados abstrato(ADT): conjunto de do EL do Es:  Representación de los datos.  permitidas de Conjunto de las operaciones. 9 Pilas (pilhas) Pila:  otro do sobre de perito em software camionete apilando ONU do que de un conjunto de datos do como dos datos de Representa los. pila de libros do una de Como. lifo do política do la do engodo do lista do una do vetor o do un do engodo do implementada do ser do puede do pila do La.  acceso do EL do restringen dos permitidas dos operaciones de Las de solo um la cima de la pila. – empurrar en apilar la cima de la pila do elemento do un do inserta deo. – estalar o pila desapilar do la de un elemento de la cima de do quita deo. – escalar o insertado do recientemente dos más do elemento do EL dos lee do cima deo. O filho de dos básicas dos operaciones de Las orden o constante.
  • 55. 55 10 Colas (filas) Cola:  en do primero do EL do priori-priori-dad do teniendo da cola de camionete formando do que de un conjunto de datos do como dos datos de Representa los llegar. cajero de supermercado de Como la cola de un. política fifo do la do engodo do lista do una do vetor o do un do engodo do implementada do ser do puede da cola do La.  acceso do EL do restringen dos permitidas dos operaciones de Las de solo um la cabeza de la cola. – Inserção de Insertar o, al de final la cola do elemento do un do inserta. – Quitar o parado, EL primeira demão elemento de la cola do quita. – Primero o primeiramente, EL primeira demão elemento de la cola dos lee. O filho de dos operaciones de Las orden o constante.
  • 56. 56 11 Lista Enlazada 11.1 Lista Enlazada simples (lista lig) Lista Enlazada simples:  forma almacenan do en do SE dos elementos do Los nenhum contigua, contenedor do nodo do en un do almacena do SE do elemento do cada, al siguiente nodo de la lista do acceso do engodo. elemento representan do siguiente do al do puntero do EL do por dos encadenados de un conjunto de nodos do como do SE dos datos do Los.  buscado do nodo do EL do hasta do cabeza do la do desde dos nodos de EL costo del recorrido de TODOS los do tiene do nodo do al do acceso do EL (nodo da primeira demão). O acceso es de do EL do que do lo de Por orden lineal. – Inserción, introduzem o lista do la do en do nodo do un, siguiente anterior do añadir dos pensamos de del que do nodo do al do referencia do la do tener do requiere um él, referencias actualizar dos las de para. – Búsqueda, buscado de EL contenido del nodo do leer. – Eliminación, pensamos anteriores eliminar, referencias actualizar do que de del buscado do nodo do al do referencia do la do tener do requiere dos las de para. 11.2 Lista Enlazada Doble (lista lig dobro) Lista Enlazada Doble:  contenedor simples do nodo do cada do donde do enlazada do lista do una do Es, al siguiente nodo de la lista do acceso de además de tener, al nodo anterior de la lista do acceso do otro do tiene.  buscado do nodo do EL do hasta do cabeza do la do desde dos nodos de EL costo del recorrido de TODOS los do tiene do nodo do al do acceso do EL (nodo da primeira demão). O acceso es de do EL do que do lo de Por orden lineal. – Inserción, introduzem o lista do la do en do nodo do un, siguiente anterior do añadir dos pensamos de del que do nodo do al do referencia do la do tener do requiere um posterior do nodo do EL do él y, referencias actualizar dos las de para. – Búsqueda, buscado de EL contenido del nodo do leer. – Eliminación, pensamos posterior anteriores eliminar, referencias actualizar do que do nodo y del buscado do al do referencia do la do tener do requiere dos las de para.
  • 57. 57 11.3 Circular de Lista Enlazada Circular simples de Lista Enlazada: contenedor ultimo do nodo do EL do donde simples do enlazada do lista do una do Es, siguiente do nodo do como de primeira demão nodo de la lista do al do acceso do tiene. Circular dobro de Lista Enlazada: contenedor ultimo do nodo do EL do donde doble do enlazada do lista do una do Es, siguiente do nodo do como de primeira demão nodo de la lista do al do acceso do tiene; nodo ultimo do como de nodo de la lista do al do acceso do tiene do EL primeira demão nodo de la lista de y anterior. 11.4 Manequim de Nodos Manequim simples de la utilización de nodos do mediante dos enlazadas dos listas dos las de Simplificación de la implementación de (sentinela, centinela deo):  enlazadas de implementación de las listas do La, nodo anterior, nodo do al do referencia do la do tener do requiere do un elemento después de un do elimina do inserta o do SE do siempre do que do piensa do SE do que do por.  O que de Lo introduz especiales dos casos do dos: – la inserción al principio de la lista – la eliminación EL principio de la lista.  nodo anterior, EL código do un do feno do siempre de EL requisito de que dos satisfacemos do Si dos simplificamos um memoria do en do pequeña penalización de de una do cambio, ficticio do nodo do un do principio do al do siempre do tener, ignoraran cual de las rutinas de exploración do al. Manequim doble de la utilización de nodos do mediante dos enlazadas dos listas dos las de Simplificación de la implementación de (sentinela, centinela deo):  Os enlazadas doble, siguiente anterior de implementación de las listas do La do nodo y do al do referencia do la do tener do requiere, nodo y do un elemento después de un do elimina do inserta o do SE do siempre do que do piensa do SE do que do por antes de
  • 59. 59  O que de Lo introduz especiales dos casos do cuatro: – inserción al principio de la lista – al de final la lista de inserción – eliminación EL principio de la lista. – al de final la lista de eliminación.  posterior anterior do nodo y do un do feno do siempre de EL requisito de que dos satisfacemos do Si, EL código dos simplificamos um memoria do en do pequeña penalización de de una do cambio, final do al do ficticio do nodo do otro do ficticio y do nodo do un do principio do al do siempre do tener, ignoraran de las rutinas de exploración dos nodos dos aquellos. 11.5 las Listas de Implementación de las listas Implementación de:  clásica de Visión: representa do que do clase do una de Como principales dos operaciones dos las de um contiene do lista do una (nodo real) y do al do puntero de al principio del nodo y do puntero.  Visión recursiva de los nodos: representa do que do clase do una de Como recursivas de um filho do que dos principales dos operaciones dos las do contiene do lista de como contenedor de una do nodo do un (nodo) do siguiente do al do puntero de datos del nodo y y.
  • 60. 60 Parte V Grafos 12 Definiciones por do formada do esta do que do es una estructura de datos do grafo do Un:  nodos do EL conjunto de los vértices o.  EL conjunto de las aristas o arcos. une do que dos vértices do dos do por do definida do esta do arista de Cada. O filho dos aristas de Las pares ordenados. O EL de Sí orden o dirigido do es do grafo do EL do que dos decimos do relevante do es, arista do otra do es do diferente do una permutación dos pues. O EL do Si orden o la do de do diferente do es do arista do la do relevante do es (3.4) (4.3). dirigido o do es do grafo do EL nenhum dirigido, nenhuns híbridos do feno. vértice do al do adyacente do es do vértice 2 do EL do que dos dados do SE 1 en EL conjunto de las aristas do esta do si (1.2). Os aristas de Las pueden o peso do único do un do contener. O Los peso de las aristas suelen nodos representar do los do entre dos tiempos de medidas de distancias o. vértice de Existe un camino de un um medio do EL do en dos adyacentes dos vértices do una sucesión do feno do si do otro. Pesos do pecado de longitud del camino do La, camino do EL do en dos recorridas do es la cantidad de aristas. Pesos do engodo de longitud del camino do La, recorridas dos aristas dos las do es la acumulación de los peso de. O vértice de Existe un camino de un um cero de si mismo de longitud, sin arista pasar do ninguna do por. RASGO do algoritmo do EL do ejemplo de Por (la solucionar función de IGP de para EL problema de ejercer routeres do en los): Pesos do pecado de Utiliza la longitud de los caminos. dirigido do grafo do en un do ciclo do Un, camino do es un, arista do una do por dos menos do al do pasa do empieza y do que do vértice do mismo do EL do en do termina do empieza y do que. acíclico do grafo do Un, nenhuns ciclos do posee.
  • 61. 61
  • 62. 62 proporcional de la cantidad de aristas es do que do cumple do denso do grafo do Un um cuadrado do al de cantidad de vértices do la: E= (V2). proporcional avoirdupois de la cantidad de aristas es do que do cumple do disperso do grafo do Un: E= (v). entrantes de cantidad de aristas do La, nodo do del do EL grado de entrada do es. salientes de cantidad de aristas do La, nodo do del do EL grado de salida do es. ejemplo de Por: caso especial, EL Árbol do Un de de grafo es, tiene grado de entrada do nodo do cada do que uma ONU do sumo do lo.
  • 63. 63 grafo de 13 Idéias de Implementaciones de Representación por lista de adyacencia: que de Que es un conjunto de listas (donde un vetor de listas o un diccionario de listas) um vértice do cada, adyacentes de lista de vértices do una de le corresponde um él. O memoria es de do en do empleado do espacio do EL orden de MEM = (e), densos cual dos dispersos o dos grafos de para do justo do es do lo. por Matriz de adyacencia de Representación: matriz bidimensional, arista do una de Mediante do cada (v, w) espacio A do EL do en do peso da SU do almacena [v, w], infinito pesan dos inexistentes dos aristas de Las. O memoria un do una de Ocupa orden de MEM = (V2). O La inicialización de la matriz es de orden O (V 2).. almacenado do espacio do EL nenhuns dispersas das matrizes de para do justo do es.
  • 64. 64 máximo do camino do mínimo y de 14 Calculo del camino positivo de Ciclo: ciclo dar y EL acumular peso de las aristas do un do al de Cuando (aristas contabilizar) dos las deo, positivo da valentia do un do tiene do este. negativo de Ciclo: ciclo dar y EL acumular peso de las aristas do un do al de Cuando, negativo da valentia do un do tiene do este. Marcando um destino dos nodos do como do resto do al de Origen y do nodo do como do nodo do un:  pequeña calcular dos más do la do mar do longitud do cuya do camino do EL do es do que do mínimo do camino do EL de Deseo posible.  Dos más calcular do la do es do longitud do cuya do camino do EL do es do que do máximo do camino do EL de Deseo posible grandioso.  Do puede cual hablar do EL dos nodos do dos do entre do máximo do camino de de un do sentido de Tiene do ¿ positivo pasar do ciclo do un do por? Não, ciclo dar do EL do por do vuelta do otra do al grandioso dos más do camino do un do existir do va ha do siempre dos pues.  Do puede cual hablar do EL dos nodos do dos do entre do mínimo do camino de de un do sentido de Tiene do ¿ negativo pasar do ciclo do un do por? Não, ciclo dar do EL do por do vuelta do otra do al de chico dos más do camino do un do existir do va ha do siempre dos pues.  Nenhum existen negativos que dos ciclos do engodo dos grafos do en dos mínimos dos caminos y nenhum existen positivos dos ciclos do engodo dos grafos do en dos máximos dos caminos. 14.1 Pesos do pecado de Grafo Pesos do pecado do mínimo de Problema del camino: hacia encontrar EL resto de los vértices do origen do vértice do EL do desde do mínimo do camino do EL de Quiero, pesos do pecado do grafo do en un (recorridas dos aristas dos las do filho do peso do EL).
  • 65. 65 mínimo de Búsqueda en anchura del camino (BFS):  analiza almacenar do SE do que do al dos adyacentes dos nodos de para TODOS los da cola do una do emplea do SE.  O Los nodos del grafo poseen a cor: Negro, Gris o Blanco.  O Los nodos del grafo poseen o predecesor: do nodo cual do EL do EL cola anterior do la do en do puso do lo do que es.  Os pintados de do están do que dos nodos do Los blanco, visitados representan do fueron do nunca do que (cola do la do en do estuvieron do nunca).  visitados dos nodos do filho dos grises dos nodos do Los (cola) do la do en do están, minimo do camino do EL do encontrado do perito em software han do nunca do pero.  visitados dos nodos do filho dos negros dos nodos do Los, EL camino mínimo de ellos do encontrado do SE ha do pero (salieron de la cola).  Os pintados de do están dos nodos do inicio TODOS los do Al blanco o mínimo de y tiene longitud del camino igual um infinito (+).  mínimo de tiene longitud del camino do origen do nodo do EL igual um 0, cola do la do en do nodo do unico do EL de esta pintado de gris y es. nadie do es do origen do EL predecesor del nodo. toma un elemento de la cola do algoritmo do EL:  nadie especial do es do predecesor do cuyo do origen do nodo do EL do mar do tomado do nodo do EL do que do es do caso do EL, y nenhum mínimo de la longitud del camino do relaja do SE.  infinito do desde do mínimo de la longitud del camino do relaja do SE do forma de De otra um la longitud del predecesor + 1..  momento do En un, están do que dos nodos do los do filho dos negros dos nodos do los um distancia 12n2n1 n, están dos grises dos nodos do los um nn do distancia + 1, nodos blancos do filho do resto do EL. Después, adyacencia del nodo de blancos de la lista de dos nodos do los do tomo, cola do la do en do coloca dos gris y los da cor do en do pinta do los (llamo do los do que do predecesor do EL do marcando). Negro ultimo do como do nodo do al do pinto de Por. termino empezar dos negros y de sean dos nodos do que TODOS los do hasta de Vuelvo. vez de solo do sola do una da demora do rebaj do es do nodo do cada do que de Observar. anchura es T de de la búsqueda en do tempo running do EL (VE) = O (V+ E). O mínimo estar do camino do EL dos obtenemos de Podemos seguros de que, vez do sola do una do actualizando (relajando) um longitud do la, porque los nodos perito em software camionete procesando en orden de niveles, que do lo do por, coste do otro, mínimo igual superior do camino do al do seria o.
  • 66. 66 14.2 negativo de aristas de peso do pecado de Grafo positivos dos pesos do engodo do mínimo de Problema del camino: hacia encontrar EL resto de los vértices do origen do vértice do EL do desde do mínimo do camino do EL de Quiero, pesos do engodo do grafo do en un nenhuns negativos. nodo visitar do al do que de Proponemos um adyacente do es do que de w do nodo do al do relajando do nodo y um como Dw = minuto de v (Dw Dv + cvw). que da lebre de Esto nenhum vez do sola do una dos actualizaremos do que do garantice do SE. Teorema: O vértice de la atención de vértice en do posando dos vamos do Si, um vértice do un nenhum visitado, que do los do entre minimicen a valentia de Di do EL, mínimo do camino do EL do correctamente do producirá do algoritmo do EL, que do siempre nenhuns negativas dos aristas do halla. Algoritmo de Dijkstra:  visitado almacenar do al dos adyacentes dos nodos de Emplea una cola de prioridad para los.  mínimo do camino do un do tiene do origen do nodo do EL igual um 0, nadie do es do predecesor do EL, en la cola de prioridad do esta de esta pintado de gris y.  Os nodos do principio TODOS los do Al tienen de um están do infinito y do mínimo do camino do un os pintados que igual o de blanco, en la cola de prioridad do estuvieron do nunca do porque.  visitados do ser do en la cola de prioridad para do están dos grises dos nodos do TODOS los (necesario de relajados de ser).  O ya dos negros dos nodos do TODOS los tienen o mínimo de la longitud del camino.  negros do filho dos nodos do cuando TODOS los do termina do algoritmo do EL. elemento do un do toma do algoritmo do EL, elemento v, prioridad de de la cola de (cola), engodo Dw = minuto do la do en dos nodos de menor longitud del camino de los do engodo do elemento do EL do es do que de de v do adyacencia de blancos y grises de la lista de dos nodos de Relajo los (Dw Dv + cvw). en la cola de prioridad do coloco dos ylos dos gris do en de blancos dos nodos do los do Pinto. Negro da cor do en do nodo v do EL do Pinto. vuelvo de Y negros comenzar de um sean dos nodos do que TODOS los do hasta. O dijkstra es de T de del algoritmo de do tempo running do EL (EV) = O (ElogV), en insertar la cola de prioridad es de do elemento do un do que do puesto orden o nodo es de do un do extraer do constante y orden o respecto do engodo do logarítmico um la cantidad de nodos, binario do montículo do un do como do implementado de la cola de prioridad perito em software ha do cuando.
  • 67. 67 14.3 negativos dos ciclos do pecado de Grafo negativos dos ciclos do pecado do mínimo de Problema del camino: hacia encontrar EL resto de los vértices do origen do vértice do EL do desde do mínimo do camino do EL de Quiero, negativos dos ciclos do pecado do engodo do grafo do en un. Algoritmo Pregoeiro-Bellman-Ford: puede do que do vez do cada do rebaja da SU lista de adyacencia y do recorre do vértice do cada dos vértices y para de Recorre TODOS los. tenga do que de cada arista de entrada do por do vez do una do analizado do es do vértice de Cada. Tempo running del algoritmo es T do EL (EV) = O (EV) Pregoeiro-Bellman-ford () en V do cada v de para (origen do EL do desde) en LISTA-DE-ADYACENCIA de w do cada de para (w) relaxa (w): Dw=min (Dw, Dv+Cvw) 14.4 O engodo de Grafo orden topológico
  • 68. 68 O que dos grafos do filho nenhum contienen os ciclos, do puede cual do SE do EL en ordenar una secuencia de vértices dos nodos do los, vértice de solo do un camino de un do feno do que do verifica do SE dos cuales do los um otro. Feno un camino de v do Si um w, ordenaciones de solo topológicas de de las posibles do una de aparecer después de v en do puede de w dos entonces. O engodo do Un ejemplo de grafo orden o PERT do los do filho de topológico. Propiedades del grafo:  O EL recorrido del grafico en orden topológico, mínimo do camino do EL do tendrá do nodo do EL do que do garantiza, adyacentes relajar intentar pasar dos nodos do él e los do por do al um él.  O EL do arma do que de Algoritmo orden topológico, cola de ayuda de una do engodo da lebre do lo: Cola do la do en do de grado de entrada 0 dos nodos de Poner los, adyacencia do los enlaces logicamente de la lista de do elimina do luego. O engodo grado de entrada 0 dos nodos do nuevo de Buscar, que do hasta do repite de y esten o engodo de solo grado o superior dos nodos do halla do que da cola o do la do en dos nodos do TODOS los igual um 1.. - Os nodos do feno do Si con o mayor o de grado de entrada igual uma ONU, que feno presencia de ciclos do es, perito em software do que do lo do por o EL do rompe que orden o topologico.  que dos Dado nenhuns más buscar do camino do EL dos podemos dos positivos dos ciclos do feno largo, critico do camino do llamado.  PERT do en un grafo de eventos do esto dos usamos do ejemplo de Por. Problema del camino critico: hacia encontrar EL resto de los vértices de los vértice de origen do desde do máximo do camino do EL de Quiero (cero do longitud do engodo), ciclos do pecado do engodo do grafo do en un. Algoritmo: vacía do este do que do hasta de Tomo un nodo de la cola, como Dw do máximo de EL tiempo del camino do modifico de y = máximo (Dw Dv + cvw). O que dos actividades do filho do que de Suponiendo corren um deseo EL minimizar tiempo del proyecto do contratiempo y. longitud do mayor do engodo do nodo do EL, es EL tiempo del proyecto. máximo de la actividad de Problema del retraso: Do pecado demorar calcular do actividad do una do puedo do cuanto do quiero do Si proyecto retrasar do al. Um empiezo de máximo y de ahí do camino do al do igualo do los dos nodos dos últimos do los. O en da cola do la de Lleno orden o inverso de topológico, critico do camino do correspondiente da SU do engodo dos nodos do los do engodo. Algoritmo: vacía do este do que do hasta de Tomo un nodo de la cola, modifico EL tiempo de demora de y como alta tensão = minuto (cvw da alta tensão Hw). O que dos aristas de Las cumplen o critico de filho parte del camino do == 0 do cvw da alta tensão Dw.
  • 69. 69 Parte VI raíz do engodo de Árboles 15 Definiciones acíclico do grafo do es un do árbol do Un, tiene de solo cual do EL EL conjunto de nodos do en um raíz do llamado do distinguido do nodo do un do existe do entrante y do arista do una do sumo do lo. Um nodo c do cada, excepto um raíz do la, hijos dos más da ONU o do tener do puede do nodo do que p es padre del nodo c. Un do que c es hijo del nodo p y do nodo P. Decimos do EL do desde do arista do una de le llega, hijos do pecado do nodo do un, hoja do nodo do llamado do es. Fazer feno o nodo do cada do hasta do raíz do la do desde do camino do único do un. nodos do tiene N do árbol do Si un, aristas do tiene N-1 dos entonces. Longitud del camino, recorridas do es EL número de aristas. Profundidad (arriba de para): nodo do EL do desde do es EL número de aristas um raíz do la. recursiva do engodo visión: profundidad 0 do tiene do raíz do la, tiene la profundidad del padre +1. do nodo de y un. Altura (abajo de para): profundo dos más do nodo do al do nodo do EL do desde do es EL número de aristas. cero de altura do tiene do hoja de Toda. Altura del árbol, la altura de la raíz do es. O que dos nodos do Los tienen irmãos denominan dos hermanos o do SE do padre do mismo do EL. Feno un camino de u do Si um v, que v es descendiente de u y u es ascendente de v. dos decimos dos entonces. tiene do que do es EL número de descendientes do nodo do EL tamaño de un + 1 (mismo do EL dos más). EL tamaño de la raíz do EL tamaño del árbol es. Visión Recursiva de árbol: vacío do esta do árbol do EL do que dos dados do SE dos nodos do feno 0 de Cuando, raíz do denominado do nodo do en un do consiste do árbol do EL do contrario do caso do en, referencias cual dos más do tiene 0 o do EL árboles dos otros, subárboles do como dos conocidos. subárboles dos más do cero o do raíz y do una do vacío o do es do árbol do Un nenhum T1 dos vacíos, T2,,..., Tk.. Las raíces de los subárboles perito em software hijos denominan de la raíz, subárboles do sus do perito em software denomina padre de las raíces de do raíz do la do consecuentemente de y. conectados estan de Cada ONU de los subárboles um arista do una do mediante do raíz do la. O nodo de Cada define o raíz cual do EL es do del do subárbol do un. figura do siguiente do la do en do muestra do SE do recursiva de Una visión gráfica de esta definición: Clase NodoArbol: Clave hijo de Clase NodoArbol siguienteHermano de Clase NodoArbol una lista enlazada de hermanos do es do nodo de Cada.
  • 70. 70 en Preorden de Recorrido: lleva do SE um nodo do EL do sobre do procesado do EL do cabo, hijos do sus do sobre de de hacerlo das apostas.
  • 71. 71 en Postorden de Recorrido: lleva do SE hijos de um sus do sobre do procesado do EL do cabo, nodo do EL do sobre de de hacerlo das apostas.
  • 72. 72 binario de 16 Árbol binario do Un Árbol, tener cual do puede do nodo do cada do EL do árbol do es un um sumo do lo 2 hijos. derecho do nodo do izquierdo y do nodo do como do ahora de Distinguidos. nodo es do EL tamaño de un: derecho do EL tamaño del hijo de EL tamaño del hijo izquierdo+ + 1 (mismo do EL dos más). EL tamaño de la raíz do EL tamaño del árbol es. más igual 1. do mayor um altura do engodo de del hijo do la de Altura del nodo es. 16.1 binario do EL Árbol do sobre dos iteraciones de Recorrido e O determinado de iteración de los nodos en un do La orden arboles de de recorrido de los: diga remplazar remplazar "(nodo)" por procesar "rendimento do donde dos corutinas y do engodo do en las rutinas de recorridos do consiste (nodo)". Los recorridos de forma nenhum recursiva, pila implementan do una do engodo do SE, estado do EL do engodo do nodo do EL do es do que do tupla do una do apila do SE do donde. instante do cierto do en do visitando dos estamos do que do nodo do EL do representa de cima de la pila do La. 16.1.1 Preorden en Preorden de Recorrido: lleva do SE um nodo do EL do sobre do procesado do EL do cabo, hijos do sus do sobre de de hacerlo das apostas. Preorden (nodo): procesar (nodo) se nodo.izquierdo: Preorden (nodo. izquierdo) se nodo.derecho: Preorden (nodo.derecho) Algoritmo nenhum recursivo: O visitado do es do nodo de Cada 1 vez do sola, SE do luego do nodo y do EL do procesa do SE do desapilado do es do cuando do apilado y do es do decir do es añaden hijos do sus, izquierdo do EL do luego do derecho y do EL do primero (o EL orden), derecho do invierte do pila do la do que do acordarse do EL do luego do izquierdo y do EL do primero do procesado do mar do que de para. tupla do La nenhum estado do requiere. Preorden (nodoRaíz): Stack.push (nodoRaíz) fazem: nodo = Stack.pop () procesar (nodo) se nodo.derecho nao nulo: Stack.push (nodo.derecho) se nodo.izquierdo nao nulo: Stack.push (nodo.izquierdo) quando (não Stack.isEmpty ()) retorno
  • 73. 73 16.1.2 Postorden en Postorden de Recorrido: lleva do SE hijos de um sus do sobre do procesado do EL do cabo, nodo do EL do sobre de de hacerlo das apostas. Postorden (nodo): se nodo.izquierdo: Postorden (nodo. izquierdo) se nodo.derecho: Postorden (nodo.derecho) procesar (nodo) Algoritmo nenhum recursivo: visitado do es do nodo de Cada 3 veces, desapilado do apilado y do decir do es 3 veces. estado do EL do engodo do desapilado do es do nodo do EL do Si:  ' primera': Um estado' primera' de izquierdo del nodo en do hijo de de visitar/apilar EL do punto. O aplila do SE do nodo do EL antes o estado' segunda' do en.  ' segunda': Um estado' primera' de derecho del nodo en do hijo de de visitar/apilar EL do punto. O aplila do SE do nodo do EL antes o estado' tercera' do en.  ' tercera': Um nodo procesar do de do punto. ya do nodo do EL nenhum necesitado dos más do ser do va ha. Postorden (nodoRaíz): Stack.push (nodoRaíz,' primera') fazem: nodo, estado = interruptor de Stack.pop () (estado): caso' primera': se nodo.izquierdo nao nulo: Stack.push (nodo,' segunda') Ruptura de Stack.push (nodo.izquierdo,' primera') caso' segunda': se nodo.derecho nao nulo: Stack.push (nodo,' segunda') Ruptura de Stack.push (nodo.derecho,' primera') caso' tercera': ruptura procesar (do nodo) aleta-fin-switch quando (não Stack.isEmpty ()) retorno
  • 74. 74 16.1.3 simétrico de Orden O en de Recorrido orden o simétrico: O lleva do SE um hijo Izquierdo da SU do sobre do procesado do EL do cabo, nodo do EL do sobre do procesa do SE do luego, antes o derecho do hijo da SU do sobre de de hacerlo. Enorden (nodo): se nodo.izquierdo: Enorden (nodo. izquierdo) procesar (nodo) se nodo.derecho: Enorden (nodo. derecho) Algoritmo nenhum recursivo: visitado do es do nodo de Cada 2 veces, desapilado do apilado y do decir do es 2 veces. estado do EL do engodo do desapilado do es do nodo do EL do Si:  ' primera': Um estado' primera' de izquierdo del nodo en do hijo de de visitar/apilar EL do punto. O aplila do SE do nodo do EL antes o estado' segunda' do en.  ' segunda': Um nodo procesar do EL do de do punto, ya do nodo do EL do luego nenhum estado' primera' do EL hijo derecho del nodo en do SE visita/apila do necesitado y dos más do ser do va ha. Postorden (nodoRaíz): Stack.push (nodoRaíz,' primera') fazem: nodo, estado = interruptor de Stack.pop () (estado): caso' primera': se nodo.izquierdo nao nulo: Stack.push (nodo,' segunda') Ruptura de Stack.push (nodo.izquierdo,' primera') caso' segunda': procesar (nodo) se nodo.derecho nao nulo: Ruptura de Stack.push (nodo.derecho,' primera') aleta-fin-switch quando (não Stack.isEmpty ()) retorno
  • 75. 75 16.1.4 niveles de Por forma do en dos niveles do por de Recorrido del Árbol nenhum recursiva: raíz do la do en do comienza do procesado do EL, nietos do los do luego dos hijos y do sus do luego, va por niveles de profundidad. A cola do una do emplea do SE do ello de Para, en do ir do que do que do feno do porque orden. PorNivel (nodoRaíz): Fila. a inserção (nodoRaíz) faz: nodo = Queue.quit () procesar (nodo) se nodo.izquierdo nao nulo: Queue.insert (nodo.izquierdo) se nodo.derecho nao nulo: Queue.insert (nodo.derecho) quando (não Queue.isEmpty ()) retorno
  • 76. 76 17 Árbol Binario de búsqueda EL Árbol Binario de búsqueda, ordenada estructural de de búsqueda do propiedad do la do satisface do que do binario do árbol do es un, la Reza cual: nodo X del árbol do cada de Para, izquierdo de claves del subárbol dos las de los valores de todas, menores do filho um derecho de claves del subárbol dos las de clave del nodo X y los valores de todas do la, mayores do filho um la clave del nodo X.. O tanto do lo de Por, en do recorrido do al do consistente do forma do en dos ordenadas do están de las claves del árbol dos todas orden o simétrico. duplicados de la existencia de elementos do impide do propiedad de Dicha. 17.1 Búsqueda Operación: elemento de Búsqueda de un: buscada do en la comparación de la clave do basa do SE contra o raíz do la do desde do comenzando de la clave de turno:  idéntica do es do buscada do clave do la do Si um nodo do al do puntero do EL do retorna de clave de turno perito em software do la.  menor do es do buscada do clave do la do Si um izquierdo do subárbol do EL do en do buscando do sigue de clave de turno perito em software do la.  mayor do es do buscada do clave do la do Si um derecho do subárbol do EL do en do buscando do sigue de clave de turno perito em software do la.  vacío do es do subárbol do EL do Si, que retornar nenhum nodo do EL do encontrado do SE ha.
  • 77. 77 Buscar (nodoDeTurno, claveB): se (nodoDeTurno nao nulo): se (== nodoDeTurno.clave do claveB): nodoDeTurno do retorno se (claveB < nodoDeTurno.clave): carro do retorno do barramento (nodoDeTurno. izquierdo, claveB) se (claveB > nodoDeTurno.clave): carro do retorno do barramento (nodoDeTurno. derecho, retorno do claveB) nulos 17.2 Inserción Operación: Inserción de elemento:  vacío do esta do árbol do EL do Si, nodo do único do un do engodo do árbol do nuevo do un dos creamos.  árbol do EL do Si nenhum vacío do esta, clave do en la comparación de la nueva do basa do SE contra o raíz do la do desde do comenzando de la clave de turno:  idéntica do es do clave do nueva do la do Si um la clave de turno, nenhuma Nada da lebre do SE.
  • 78. 78  menor do es do clave do nueva do la do Si um izquierdo do subárbol do EL do en do la inserción do sigue de clave de turno perito em software do la.  mayor do es do clave do nueva do la do Si um derecho do subárbol do EL do en do la inserción do sigue de clave de turno perito em software do la.  vacío do es do subárbol do EL do Si, nodo crear y la actualizar referencia del padre do EL. Insertar (nodoDeTurno, claveN): se (zero do == do nodoDeTurno): nodoDeTurno = retorno novo de NodoÁrbol (claveN) se (== nodoDeTurno.clave do claveN): retorno se (claveN < nodoDeTurno.clave): Insertar (nodoDeTurno. izquierdo, retorno do claveN) se (claveN > nodoDeTurno.clave): Insertar (nodoDeTurno. derecho, retorno do claveN) 17.3 Eliminación Operación: árbol do EL do en do nodo de Eliminación de un: Os quienes dos nodos do los do filho dos binarios dos árboles do En los mantienen o árbol do al do conectado. nodo do EL do encontrado do vez de Una cosas pasar dos tres de um puede eliminar:  Primeira demão Caso: hoja eliminar do una do ha es do nodo do EL, como nenhum unido do árbol do al do mantiene, derecho do izquierdo o do hijo do hijo do si es dos averiguamos do simplemente, eliminamos do lo do padre y do EL do en do referencia do la dos actualizamos.  Segundo Caso: hijo de solo do un do tiene eliminar do ha do nodo do EL, derecho do izquierdo o do hijo do hijo do si es dos averiguamos do simplemente, eliminamos do lo do hijo do único do al do apunte do que de para do padre do EL do en do referencia do la dos actualizamos (binario estructural) de del árbol do propiedad do la do restablecería do esto y.
  • 79. 79 1. Tercer Caso: hijos eliminar do dos do tiene do ha do nodo do EL, binario estructural de del árbol do propiedad do la do restablecer de para, izquierdo de solo do mayor elemento del subárbol do EL do derecho o do EL menor elemento del subárbol dos reemplazantes dos posibles do dos do feno. Para simplificar: siempre do aquí dos escogemos, derecho do EL menor elemento del subárbol. Géneros de Esto 3 subcasos, subcaso de solo transforman do en un do SE do practica do la do en do que:  Tercer Sub-Caso-Caso: derecho do es la raíz del subárbol do reemplazante do nodo do EL (eliminado do ser do va do que de es hijo del nodo). – que va de referencia izquierda del nodo do la de Actualizamos um remplazante do nodo do izquierda do referencia do la do en do eliminado do ser. – al hijo derecho del reemplazante do apunte do que de para do padre do EL do en do referencia do la de Actualizamos. – nodo do EL de Eliminamos.  Segundo Sub-Caso-Caso: reemplazante do nodo do EL nenhum derecho do hijo do tiene do pero do derecho do es la raíz del subárbol (nenhum eliminado do ser de es hijo del nodo ha): – al hijo derecho del remplazante do apunte do que de para do reemplazante do en EL padre del nodo do referencia do la de Actualizamos. – apunte do que de para do reemplazante de referencia derecha del nodo do la de Actualizamos um derecho de raiz del subarbol do la. raíz do nueva do la do es do remplazante do nodo do EL do ahora do que do lo de Por. (subcaso do tercer do EL do en de Convirtiéndose).  Primeira demão Sub-Caso-Caso:
  • 80. 80 reemplazante do nodo do EL nenhuns hijos do tiene. – apunte do que de para do reemplazante do en EL padre del nodo do referencia do la de Actualizamos um zero.
  • 81. 81 - apunte do que de para do reemplazante de referencia derecha del nodo do la de Actualizamos um derecho de raíz del subárbol do la. raíz do nueva do la do es do reemplazante do nodo do EL do ahora do que do lo de Por. (subcaso do tercer do EL do en de Convirtiendose). sería pseudo do codigo do EL:
  • 82. 82 getMinimo de la referencia del minimo do #Retorna (nodo): se nodo.izquierdo nao nulo: getMinimo do retorno (nodo. nodo do retorno do izquierdo) getPadre do nodo do del de la referencia del padre do #Retorna (nodoDeTurno, nodoX): se == nodoX.clave de nodoDeTurno.izquierdo.clave OU == nodoX.clave de nodoDeTurno.derecho.clave: nodoDeTurno do retorno se nodoDeTurno.clave > nodoX.clave: getPadre do retorno (nodoDeTurno. izquierdo, nodoX) getPadre do retorno (nodoDeTurno. izquierdo, nodoX) o que #Trasplantar do #para do nodoA do del de la referencia del padre do actualiza apunten o nodoA de en vez de EL do nodoB do al trasplantar (nodoRaíz, nodoA, nodoB): se nodoA do == do nodoRaíz: retorno do nodoRaíz = do nodoB padreDeA=getPadre (nodoRaíz, nodoA) se nodoA do == de padreDeA.izquierdo padreDeA.izquierdo = retorno do nodoB padreDeA.derecho = retorno do nodoB arbol Eliminar de un nodo de un do #Elimina (nodoRaíz, nodoPorEliminar): se zero do == de nodoPorEliminar.izquierdo: ONU do como do caso do segundo da primeira demão y do #Supongo (zero do ser do podria de nodoPorEliminar.derecho) trasplantar (nodoRaíz, nodoPorEliminar, nodoPorEliminar.derecho) retorno se zero do == de nodoPorEliminar.derecho: caso do segundo do #Supongo: izquierdo do hijo do tiene trasplantar (nodoRaíz, nodoPorEliminar, nodoPorEliminar. retorno do izquierdo) # nodoMinimo = getMinimo nodoPorEliminar dos hijos do dos do los do tiene de Tercer Caso (nodoPorEliminar. derecho) se nodoPorEliminar.derecho! = nodoMinimo: ONU sub-caso-caso do como do segundo da primeira demão y do #Supongo (vacío do subárbol do tener do podria do nodoMinimo) trasplantar (nodoRaíz, nodoMinimo, nodoMinimo.derecho) derecho do minimo do nodo do al do apuntara do minimo de #El padre de nodo. nodoMinimo. derecho = nodoPorEliminar. derecho subcaso sub-caso-caso do tercer do en do segundo da primeira demão y dos #transformamos # nodoMinimo do arbol do submarino do del do raíz do es do nodoMinimo do subcaso-Caso do tercer. izquierdo = nodoPorEliminar. o izquierdo trasplantar (nodoRaíz, nodoPorEliminar, o nodonodoMinimo) delete-memoria-memoria (nodoPorEliminar) retorno 17.4 Ordenes Los Ordenes de las operaciones: proporcionales do filho do Los ordenes de las operaciones um trabaja do SE do que do engodo de profundidad de los nodos do la. O del estructural do propiedad do La não orden nenhum equilibrio do garantiza. Filho de de las operaciones do tempo running do Los (undidad do prof.). Os operaciones dos las do equilibrado do árbol de Para un tienen o logaritmico do costo do un, las que os operaciones tienen o costo do un lineal, lazada do degenerado do totalmente do arbol de para un de tiene forma de lista en do árbol do EL do porque. aleatoreo es O dos casos de para
  • 83. 83 do medio do costo do EL (registro de N N).
  • 84. 84 18 Árboles AVL árbol AVL do Un, más estructural do propiedad do una do engodo do es un árbol binario de búsqueda: La propiedad de equilibrio: derecho do izquierdo y de altura de los hijos do La, diferir do puede um unidad do una do en do sumo do lo. como -1 do vacío de altura del árbol do la de Tomamos. Esto implica tener siempre profundidad logaritmica; La forma del árbol (degenerar intentar do al, crece en forma de fractal). la altura do engodo do exponencialmente do mínimo do como do crece do EL número de nodos. Teorema: árbol AVL do Un, nodos 1, donde F dos menos F do lo do por do tiene do de altura H (H + 3) (i) EL i-esimo número de fibonacci do es. árbol AVL do EL do en do La inserción y eliminación, propiedad de estructural equilibrio da SU do destruir do puede. común realizar do la inserción o eliminación de Tras, propiedad de estructural equilibrio do la dos formas do de 4 do violarse do puede: 1. izquierdo del nodo X do EL subárbol izquierdo del hijo, EL hijo derecho del nodo do que do profundo dos más do es X 2. izquierdo del nodo X do EL subárbol derecho del hijo, EL hijo derecho del nodo do que do profundo dos más do es X 3. derecho del nodo X do EL subárbol izquierdo del hijo, EL hijo izquierdo del nodo do que do profundo dos más do es X 4. derecho del nodo X do EL subárbol derecho del hijo, EL hijo izquierdo del nodo do que do profundo dos más do es X Rotación simples: caso de solo de para 1 y 4: O que de Intercambio los papeles del padre de los hijos del extremo producen o conflicto (nodo do EL do mar deo X) contra o conflicto do produto do que da SU hijo del extremo. que a voy do mar de O:  conflicto do EL do produjo do que do extremo de de X do hijo do EL do engodo do nodo X do EL de Trasplantar.  que do subárbol do EL do engodo do hijo do EL do engodo do une do que do lazo do EL de Remplazar nenhuns problemas do produto  que do subárbol do EL do iba do que do extremo de Remplazar EL lazo del hijo nenhum nodo X. do EL do engodo dos problemas do producía.
  • 85. 85 estaba X do donde do la posición de Resolviendo EL problema de equilibrio para do ¿, vieja altura da SU do recuperando, raíz do la do hasta do problema do EL do resuelvo? Apostas do que de altura do misma do la do exactamente do engodo do lazo do EL do queda de Como, nenhum raíz realizar do la do hasta dos actualizaciones dos otras do necesario do es. Rotación doble: caso de solo 2 y 3 de para: equivalente do EL do Es rotaciones de um dos simples: nodo x do EL do engodo dos problemas do causa do que do subárbol do del de Intercambio los papeles de la raíz: que a voy do mar de O:  conflicto do EL do produjo do que do interno de la raíz del subárbol do engodo do nodo X do EL de Trasplantar.  en X de Remplazar, problemas do produto do que do subárbol do EL do engodo do hijo do EL do engodo do une do que do lazo do EL, problematico do subárbol do del de un subárbol de la raíz do engodo.  problemático do subárbol do al do va do que de del nodo X do extremo de Remplazar EL lazo del hijo, problemático do subárbol do del do EL otro subárbol de la raíz do engodo.  problematico do subárbol do del do Los hijos de la raíz, pasan um nodo X y EL hijo del nodo x. do EL do ser. estaba X do donde do la posición de Resolviendo EL problema de equilibrio para do ¿, vieja altura da SU do recuperando, raíz do la do hasta do problema do EL do resuelvo? Apostas do que de altura do misma do la do exactamente do engodo do lazo do EL do queda de Como, nenhum raíz realizar do la do hasta dos actualizaciones dos otras do necesario do es.
  • 86. 86 19 Árboles Vermelho-Red-Black EL Articulo do leer dos más información de Para: Árboles Rojo-Negros de Guido Urdaneta (14 pags). 20 Árboles B O árbol B do EL, aflui o espacio ocupan do mucho dos árboles ante do los do cuando dos ocasionados de serie de problemas do una de la necesidad de resolver. espacio ocupan do mucho dos árboles de Cuando los, árbol do EL nenhum principal do memoria do en do quepa, secundaria do memoria do la do en do esta do parte do mayor do la. acceso do EL um en comparación do lento dos más de un costo de acceso es do tiene do secundaria do memoria um procesador de de instrucciones de dos millones, accesos ahorrar dos debemos do eso do por podamos de um como do tanto do disco. mayor grado de ramificación dos tenemos do Si (hijos), menor altura dos más do tiene do nodo do un dos tenemos, menor altura dos tenemos de y si, accesos dos menos do tanto do lo do por dos nodos y dos menos dos recorremos. árbol Mario do lama do SE, tiene de do nodo do EL do que do árbol do aquel hijos de 1 A M.. O propiedad efectuar de do la de ordenada perito em software le añade do búsqueda do una do poder de Para orden. nodo cual do EL próximo do es do decidir de para dos claves do tiene m-1 de del Árbol Mario do nodo de Cada um visitar. la comparación de Efectuar contra o frente do estúpido do algo do es dos claves dos las m-1 um acceso de espera de un do la um disco. puede degenerar, árbol B. do SE de Mario do árbol do EL de Cómo do EL do aparece.
  • 87. 87 20.1 Reglas árbol B do EL, propiedad estructural, reglas do una do engodo de Mario do árbol do es dos las um filho do cumplir: 1. hojas de solo almacenan dos las do en do SE dos datos do Los. 2. Os internos dos nodos do Los tienen o búsqueda guiar do la de para dos claves m-1. descendientes de la rama i-1 de las claves de sus do que do mayor do es do i-esima do clave do La. descendientes de la rama i+1. de las claves de sus do que do menor do es do i-esima do clave do La. 3. hijos do entre 2 y m do tiene do hoja o do una do es do raíz do La. internos especiais de comparación de los um nodos do nodo do Es un. 4. Os internos dos nodos do Los tienen hijos do ~ y m do ~ M 2 do entre. 5. profundidad do misma do la do en do encuentran do SE dos hojas dos las de Todas. y tienen o entre~ L 2 ~ y L datos. L yM nenhum poseen o arbitrario da valentia do un, accesos do los do minimiza do que do EL do es da valentia do EL. Datos um conocer:  Disco de Tamaño de bloque de.  rama del árbol de Tamaño de una, nodo proximo do al do puntero de EL tamaño de la referencia o do decir do es.  Tamaño de la clave, clave variável do la do contiene do que do la do de do tamaño do EL do decir do es.  hoja do nodo do en un do registro do dato o de Tamaño de cada. Camionete de Como um L quepar hoja do una do en dos datos: L (Tamanoregistro) Tamanodebloquededisco claves dos ramas y m-1 do tiene M do interno do nodo de Como un: (M 1) (Tamanodelaclave) + M (Tamanorama) Tamanodebloquededisco 20.2 Ejemplo:  Disco de Tamaño de bloque de = 8192 bytes.  rama de Tamaño de una = 4 bytes (puntero do un).  Tamaño de la clave = 32 bytes (corda do un).  registro de Tamaño de cada = 256 bytes.  M=228; L=32. 20.3 Algoritmo de inserción: Algoritmo de inserción:  la dar inserción do correspondería do donde do hoja do la do engodo do hasta do búsqueda do la de Efectuamos.  espacio do un do engodo do cuenta do hoja do la do Si, finaliza do algoritmo do EL.  llena do esta do hoja do la do Si, elementos do posee L+1 do ahora. en 2 hojas de ~ L 2
  • 88. 88 una do hoja do la dos dividimos do caso do ese do En do cada dos ~elementos.
  • 89. 89  padre actualizar do al da ONU para do escritura y de para do disco do al dos accesos do generará 2 de Esto (2 ramas dos claves y 2).  finaliza lugar do algoritmo do EL do libre do un do posee do padre do EL do Si.  claves do posee M do ahora do completo do esta do padre do EL do Si (hijos m+1). en 2 nodos de ~ M 1 do nodo do EL dos dividimos do caso do ese do En ONU ____ do cada de 2 elementos do ~. raíz do la da era do Si, engodo do raíz do nueva do una dos creamos 2 hijos. actualizamos al padre del padre do contrario do caso do En, hasta do así finalizar. 20.4 Algoritmo de eliminación: Algoritmo de eliminación:  más de L 2 registros do tiene do hoja do la do Si, finaliza do algoritmo do EL. contrario do caso do En, menos de L 2 hijos do tiene do hoja do la do ahora, registro do pedirle 1 do debe hijos de um deL 2 dos más do tenga do que do hermano do un. O Si nenhum pueden o eso do hacer dos hermanos do sus, en fusionar dos hojas do dos dos las do puedo dos entonces
  • 90. 90 sola do una. clave do la de y perito em software le actualiza dos menos do hijo do un do tiene do que do padre do al de Después perito em software le informa. • padres do los do engodo do historia do misma do la do repite do SE de Ahora: más de M1 do tiene do padre do EL do Si 2 _______ claves, o contrario do caso do finaliza, SE le piden claves um hermano do un. Nenhum las do Si pueden o cedro, SE fusionan. hijo de solo do un do engodo do queda do raíz do la do Si, pasa do hijo do elimina y SU do SE um raíz do nueva do la do ser.
  • 91. 91 Mistura y Diccionarios de Tablas 21 Diccionario Es una estructura de datos, accedo dos objetos y do almaceno do donde do en objetos, nombre da SU do conociendo, preferentemente en forma de corda. diccionario do EL, mistura do tabla do una do mediante do implementado do es. Mistura de 22 Tabla Mistura do tabla do La, mediante una función de localización do indexado do es do que do vetor do es un, mistura do llamada función. Mistura do La función, elemento do un do convierte do que do regla do una do es (objeto do un) um vetor indexar do al de para do adecuado do entero do un, elemento do EL do almacenará do SE do finalmente do allí do donde. Vetor do del de grado de ocupación do del do depende do eficiencia do La. 22.1 la función do vetor y do EL de Sobre Las entradas del vetor nenhuns infinitas do filho, tanto do lo do por nenhuns posibles de las combinaciones de entrada dos todas do tener dos podemos. ejemplo de Por: tiene do objeto do si MI 4 bytes, tenemos 4 billones de combinaciones, y4 billones de entradas es imposible. más que grandioso EL de llegada de un conjunto de partida do asocia da mistura do La función. del do principio do EL de Por palomar, (o porque existen posiciones do que dos potenciales dos elementos dos más,) dos elementos posible do dos do que do es do que do decir dos podemos misma correspondan posición do la do en do SE, denomina colisión do SE do eso. Debido colisiones dos las, inyectiva do es da mistura do la función. uniforme computar do forma do en dos claves dos las do distribuir do de y do sencilla do ser do debe da mistura do La función, esto es para la minimizar cantidad de colisiones. Porque si existen colisiones, baja efectuar do eficiencia do la dos colisiones y de un mecanismo de resolución de do debe do SE. Mistura do tabla do una do EL fator de carga de, la fracción ocupada de la tabla do es. Engodo de Denotamos al fator de carga. Un = 0 llena da mistura do tabla do la de para do y= 1 do vacía da mistura do tabla do la de para. = ______ CantidadDeEntradasTotal CantidadDeEntradasUsados. independientes grandioso do filho do es y los intentos de inserción do tabla do la do Si, ocupada es do la fracción. Do probabilidad examinar do la do celda do una do Al ocupada estar es do de. EL numero medio de celdas do que do porlo um examinar es = 1 22.2 abierto do direccionamiento do por dos colisiones de Mecanismo de resolución de 22.2.1 Exploración Lineal O rutina insertar, SE do la do En dos colisiones dos las resuelven o vetor do EL do secuencialmente do examinando, circularidad do engodo, necesario de en caso de ser, vacía encontrar do una posición do hasta. 1.
  • 92. Part VI I I 92 rutina buscar, caso de do La do en nenhum celda do correspondiente do la do en do buscado do elemento do EL do conseguir, rutina insertar, compara do la do que do camino do mismo do EL do exactamente do sigue dos pues contra o caso de do en do sigue do hallado y do elemento do EL nenhum coincidir, llega do si um búsqueda do la do finaliza do SE do vacía do celda do una. La eliminación estándar nenhum usarse do puede, borrado do activo o do esta do elemento do cada, perezosa de esto perito em software le denomina eliminación. EL numero medio de accesos: 1+ 1 (1) 2  éxito es do pecado do búsqueda de Para inserción y igual uns 2 1+ 1 1  éxito es do engodo do búsqueda do la de Para igual uns 2 Problema de la Exploración lineal: primaria de Agrupación: la inserción do en dos elementos do los do entre do independencia do la do porque do ocurre de Esto nenhum cumple do SE. ocupadas dos celdas de Tenemos formaciones de grupos de. costoso dos más do mar dos celdas de inserciones dentro del grupo de dos las do que de Haciendo. grupo do EL do crezca de y, agrega do SE do que do elemento do cada do engodo. 22.2.2 Exploración Cuadrática primaria de Elimina EL problema de la agrupación. O SE dos colisiones de Las resuelven o circularidad do engodo do examinando, posiciones do la HH+1H+4H+i2 Garantía: primo y EL fator de carga do Si EL tamaño de la tabla es nenhuma valentia de 0.5 do EL do nunca do excede. distintas realizan dos celdas do sobre do SE dos intentos de Entonces TODOS los. - mayor do Si EL fator de carga es 0.5 um primo do número do al próximo de EL tamaño de la tabla dos expandimos dos entonces. EL proceso de expansión, re-hashing do como do conoce do SE. Mistura do nueva función do una do mediante dos elementos do los do reinsertando do tabla y do la de Incrementando. Do primo encontrar do número do EL próximo do fácil do Es o que de solo un examinar do feno orden de O (números do registro N), engodo un teste de primalidad de un orden o encontrarlo un do cuesta do que do lo do por de de O (N 1 2) orden de O (registro 2 N) de N 1. Problema de la Exploración Cuadrática: secundaria de Agrupación. indexados dos elementos do los do porque do ocurre de Esto alternativas prueban dos celdas dos mismas dos las de um celda do misma do la. exploradas de EL numero de celdas do incremente do SE do que da lebre de Esto, grandes de en factores de carga. Hashing doble do EL do SE EUA do conflicto do este do resolver de Para (secundaria de Agrupación), que es una usar segunda función de hashing, celdas examinar dos las dos todas dos podemos cual do la do en. hash1 () hash2 () 2 hash2 (). 22.3 separado do encadenamiento do por dos colisiones de Mecanismo de resolución de enlazadas L0 L1Lm1 do es un vetor de listas da mistura do EL vetor de la tabla. Dos debemos indica do lista do que do en de función de hashing do La elemento insertar do ese. caso EL fator de carga es do este do En igual a = N M, media es do longitud do la, usadas es do EL numero medio de entradas. eficiencia do La +2. do recorre 1 do exitosa do búsqueda do La nenhum carga de EL incremento del fator de do por do afectada do perito em software VE, EL evitar do así do pudiendo que re-hashing.
  • 93. 93 Montículos Binarios, Colas de Prioridad y Ordenación Interna 23 Cola de Prioridad Cola de Prioridad, permite la inserción de elementos do que do estructura do una do es, máxima de solo do es do prioridad do cuya do elemento do al do otorga do SE do acceso do EL do pero. implementado do Es um binario do montículo de de un dos través. prioridad es raíz del montículo do mayor do engodo do elemento do EL. 24 binarios de Montículos O binario do montículo do Un, propiedad de do una do engodo do binario do árbol do es un orden o diferente estructural de y um anteriormente dos vistos dos árboles do los. 24.1 Propiedad estructural: completo do binario do es un Árbol do binario do montículo do EL:  lleno do completamente do árbol do Es un, que inferior debe llenarse de izquierda de excepción del nivel do engodo um derecha.  logN~ do ~ do sumo da SU altura es alo  nodos do tiene 2H o 2H+1 1 de altura H do engodo.  implícita estándar do la representación do La implementación es, decir do es, vetor do un do mediante. – nodo de Cada nenhum referencia do tiene um derecho do al do ni do izquierdo do hijo da SU. – Vetor do EL do en dos niveles do por dos elementos do los dos almacenamos do forma de De esta, vetor do EL do contiene dos nodos dos cuantos do indique do que no. do entero de pero requerimos de un. desde 1. de Contando. – elemento do esimo do supermercado fino do izquierdo do hijo do EL, la posición 2i do en do esta. – elemento do esimo do supermercado fino do derecho do hijo do EL, la posición 2i +1. do en do esta. – ~ 2 do ~ i do en do esta do elemento do esimo do supermercado fino do padre do EL. – O raíz do la da salva dos nodos do TODOS los tienen o padre. – La posición i=0, manequim do considera do SE. – en empezar 0 do de do obligado do caso do En  elemento do esimo do supermercado fino do izquierdo do hijo do EL, la posición 2i+1. do en do esta.  elemento do esimo do del i do derecho do hijo do EL, la posición 2i +2. do en do esta.  ~ i 1 do en do esta do elemento do esimo do supermercado fino do padre do EL ~ 2. 24.2 Propiedad de ordenación: casos de solo de ONU de los dos do ser do puede do montículo do EL: Do posee mínimo do la do clave do mínima do La de Montículo raiz de solo do la. elemento de solo do mínimo do al do acceso do perito em software a Dinamarca, mar deo de solo um raíz do la. O padre p do engodo do nodo x do cada de Para, la paire p,
  • 94. Part VI I I 94 menor do es um X.. Do posee máximo do la do clave do máxima do La de Montículo raiz de solo do la. elemento de solo do máximo do al do acceso do perito em software a Dinamarca, mar deo de solo um raíz do la. O padre p do engodo do nodo x do cada de Para, la paire p, mayor do es um X..
  • 95. 95 La introducción de elementos nenhum mantenga la propiedad de ordenación do SE do que do garantiza. 24.3 Inserción: disponible lugar do siguiente do EL do en do hueco do un do creando do implementa do SE. nuevo do elemento do EL do allí dos colocamos de Donde, violamos la propiedad de ordenación do si, padre do EL do engodo do elemento do EL dos intercambiamos, propiedad do la do engodo do cumplir do hasta do así. denomina do SE do Esa operación reflotar (shifup). 24.4 Eliminación: raíz do la do en do hueco do un do creando do implementa do SE, engodo la propiedad de ordenación do cumplir de para, mayor si es máximo, menor si es do EL do por do hueco do EL do EL deo mínimo. candidatos do Los um EL llenar elemento ultimo del vetor dos hijos y do dos do sus do filho do hueco do EL. forma de De esta nenhum propiedad ni estructural la de ordenación do la do pierde. hundir do llamada do es do elemento do un do engodo do vacía do EL intercambio de la posición (shifdown deo). 24.5 Engodo de Construcción del montículo um puesta do ya do engodo información do vetor de de un do partir: O elemento i=1 da primeira demão do al do elemento n/2 do EL do desde dos elementos de Para n, o propiedad verificar de do la orden hijos do sus do engodo.
  • 96. 96 24.6 elemento y cambio de clave de Búsqueda de un (conocido como reducción de clave, envejecimiento): Os algunas que de Aveces os aplicaciones deben o dinamica do forma do en dos prioridades dos las do establecer, que do lo do por deben o necesario reflotar de de ser do hacerlo buscar do elemento y do EL.
  • 97. 97 25 Ordenación Interna montículo tomar de la utilización de un do mediante do ordenarlo do desordenado y dos elementos do en un vetor de n de Consiste:  montículo de Haciendo del vetor un  prioridad de EL elemento de máxima dos n-veces do montículo do al do eliminando de y.  Do que auxiliar dos elementos do los do vetor do en un de Cargando retirando voy. 26 Ordenación Heapsort montículo tomar de la utilización de un do mediante do ordenarlo do desordenado y dos elementos do en un vetor de n de Consiste:  montículo de Haciendo del vetor un máximo  máximo do elemento do EL dos n-veces do montículo do al do eliminando de y.  Nenhum vetor auxiliar, al crean del final vetor de perito em software requiere de un do muerto do espacio do un do retirando voy do que dos elementos do los do que do puesto, do que utilizar dos elementos do los do allí do colocando do puedo do que retirando voy. 26.1 Análisis de Heapsort:  Es in-place.  comparaciones do en do basado do Es  y nenhum es estable.
  • 98. 98 26.2 Análisis de los ordenes de Heapsort: Filho realizan do SE do que dos operaciones de Las:  1 heapify (o que es de do montículo do una Heapificación es la construcción de un) orden T (N) = O (N)  Os eliminaciones de N, que es de orden T (N) = O (logN).  O tanto Heapsort es de do lo de Por orden T (N) = O (NlogN).
  • 99. 99 Referências [1] clases del Ing do en dos tomados de Apuntes. Miguel Montes. [2] copia de "introdução de Apuntes tomados de una aos algoritmos" 3°ED de Cormen, Rivest, Stein y Leiserson. [3] en Java y Algoritmos" de Alan Waiss do de "Estructuras de Datos do copia de Apuntes tomados de una. [4] Reconocimiento foros: rohitab, stackoverflow de code-makers.net y. [5] paginas de Internet de Muchas.