SlideShare una empresa de Scribd logo
1 de 99
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.
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
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados
Algoritmos e estructura de dados

Más contenido relacionado

La actualidad más candente

Engineering manual bge
Engineering manual bgeEngineering manual bge
Engineering manual bgeronaldo laime
 
Cuaderno de ejercicios de cálculo diferencial
Cuaderno de ejercicios de cálculo diferencialCuaderno de ejercicios de cálculo diferencial
Cuaderno de ejercicios de cálculo diferencialOmar Guzman
 
Aplicación del metodo montessori a las matematicas en una escuela tradicional.
Aplicación del metodo montessori a las matematicas en una escuela tradicional.Aplicación del metodo montessori a las matematicas en una escuela tradicional.
Aplicación del metodo montessori a las matematicas en una escuela tradicional.Eva Díaz Sánchez
 
Diseño canónico control automatico
Diseño canónico control automaticoDiseño canónico control automatico
Diseño canónico control automaticoAlejandra Mendoza
 
Electricidad sistemas puesta_a_tierra
Electricidad sistemas puesta_a_tierraElectricidad sistemas puesta_a_tierra
Electricidad sistemas puesta_a_tierrafedericoblanco
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excelrfms07
 
Manual Java
Manual JavaManual Java
Manual Javamikelo86
 
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdfABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdfAnonymouseAI4eNUb64
 
Manual de improvisación. Sabatella M.
Manual de improvisación. Sabatella M.Manual de improvisación. Sabatella M.
Manual de improvisación. Sabatella M.francocar
 
Modulo de Optativa 8 año
Modulo de Optativa 8 añoModulo de Optativa 8 año
Modulo de Optativa 8 añoraphot
 

La actualidad más candente (16)

Engineering manual bge
Engineering manual bgeEngineering manual bge
Engineering manual bge
 
Cuaderno de ejercicios de cálculo diferencial
Cuaderno de ejercicios de cálculo diferencialCuaderno de ejercicios de cálculo diferencial
Cuaderno de ejercicios de cálculo diferencial
 
Intro vibespanol
Intro vibespanolIntro vibespanol
Intro vibespanol
 
Aplicación del metodo montessori a las matematicas en una escuela tradicional.
Aplicación del metodo montessori a las matematicas en una escuela tradicional.Aplicación del metodo montessori a las matematicas en una escuela tradicional.
Aplicación del metodo montessori a las matematicas en una escuela tradicional.
 
Diseño canónico control automatico
Diseño canónico control automaticoDiseño canónico control automatico
Diseño canónico control automatico
 
Memorias de calculo
Memorias de calculoMemorias de calculo
Memorias de calculo
 
Calculo diferencial
Calculo diferencialCalculo diferencial
Calculo diferencial
 
Electricidad sistemas puesta_a_tierra
Electricidad sistemas puesta_a_tierraElectricidad sistemas puesta_a_tierra
Electricidad sistemas puesta_a_tierra
 
Manual Scilab
Manual ScilabManual Scilab
Manual Scilab
 
Avanzado excel
Avanzado excelAvanzado excel
Avanzado excel
 
Manual Java
Manual JavaManual Java
Manual Java
 
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdfABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
ABASTECIMIENTOS-DE-AGUA-TEORIA-Y-DISENO-SIMON-AROCHA-R..pdf
 
Guia de matematicas
Guia de matematicasGuia de matematicas
Guia de matematicas
 
Manual de improvisación. Sabatella M.
Manual de improvisación. Sabatella M.Manual de improvisación. Sabatella M.
Manual de improvisación. Sabatella M.
 
Modulo de Optativa 8 año
Modulo de Optativa 8 añoModulo de Optativa 8 año
Modulo de Optativa 8 año
 
Analisis real
Analisis realAnalisis real
Analisis real
 

Similar a Algoritmos e estructura de dados

introduccion al calculo.pdf
introduccion al calculo.pdfintroduccion al calculo.pdf
introduccion al calculo.pdfFranciscoBazan8
 
introduccion al calculo.pdf
introduccion al calculo.pdfintroduccion al calculo.pdf
introduccion al calculo.pdfFranciscoBazan8
 
Funciones cuadráticas
Funciones cuadráticasFunciones cuadráticas
Funciones cuadráticasprofejmarisel
 
Algebra lineal para estudiantes de Ingeniería y Ciencias.pdf
Algebra lineal para estudiantes de Ingeniería y Ciencias.pdfAlgebra lineal para estudiantes de Ingeniería y Ciencias.pdf
Algebra lineal para estudiantes de Ingeniería y Ciencias.pdfBallesterosDaniel
 
Algebra lineal para estudiantes de Ingenieria y Ciencias.pdf
Algebra lineal para estudiantes de Ingenieria y Ciencias.pdfAlgebra lineal para estudiantes de Ingenieria y Ciencias.pdf
Algebra lineal para estudiantes de Ingenieria y Ciencias.pdfJesusRenatoMontoyaMo
 
Matemáticas Avanzadas autor Erick E. Luna Rojero.pdf
Matemáticas Avanzadas autor Erick E. Luna Rojero.pdfMatemáticas Avanzadas autor Erick E. Luna Rojero.pdf
Matemáticas Avanzadas autor Erick E. Luna Rojero.pdfRosaLuciaBazanCandue
 
Fisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica IFisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica Idegarden
 
Tutorial lego-mindstorm
Tutorial lego-mindstormTutorial lego-mindstorm
Tutorial lego-mindstormesandemetrio
 
8522107351 pre calculo_2ed
8522107351 pre calculo_2ed8522107351 pre calculo_2ed
8522107351 pre calculo_2edguest7d1c8e9
 
Portafolio de algebra........
Portafolio de algebra........Portafolio de algebra........
Portafolio de algebra........Xiomy Sepulveda
 
1321. Matemáticas básicas para el acceso a la universidad.pdf
1321. Matemáticas básicas para el acceso a la universidad.pdf1321. Matemáticas básicas para el acceso a la universidad.pdf
1321. Matemáticas básicas para el acceso a la universidad.pdfwuilmer mayta mamani
 

Similar a Algoritmos e estructura de dados (20)

Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
y estructura_de_datos
y estructura_de_datosy estructura_de_datos
y estructura_de_datos
 
Algoritmos y estructura_de_datos
Algoritmos y estructura_de_datosAlgoritmos y estructura_de_datos
Algoritmos y estructura_de_datos
 
introduccion al calculo.pdf
introduccion al calculo.pdfintroduccion al calculo.pdf
introduccion al calculo.pdf
 
introduccion al calculo.pdf
introduccion al calculo.pdfintroduccion al calculo.pdf
introduccion al calculo.pdf
 
Funciones cuadráticas
Funciones cuadráticasFunciones cuadráticas
Funciones cuadráticas
 
Algebra lineal para estudiantes de Ingeniería y Ciencias.pdf
Algebra lineal para estudiantes de Ingeniería y Ciencias.pdfAlgebra lineal para estudiantes de Ingeniería y Ciencias.pdf
Algebra lineal para estudiantes de Ingeniería y Ciencias.pdf
 
Algebra lineal para estudiantes de Ingenieria y Ciencias.pdf
Algebra lineal para estudiantes de Ingenieria y Ciencias.pdfAlgebra lineal para estudiantes de Ingenieria y Ciencias.pdf
Algebra lineal para estudiantes de Ingenieria y Ciencias.pdf
 
Matemáticas Avanzadas autor Erick E. Luna Rojero.pdf
Matemáticas Avanzadas autor Erick E. Luna Rojero.pdfMatemáticas Avanzadas autor Erick E. Luna Rojero.pdf
Matemáticas Avanzadas autor Erick E. Luna Rojero.pdf
 
Secciones cónicas
Secciones cónicasSecciones cónicas
Secciones cónicas
 
Fisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica IFisica y Quimica - Mecanica cuantica I
Fisica y Quimica - Mecanica cuantica I
 
Seisho
SeishoSeisho
Seisho
 
Números irracionales
Números irracionalesNúmeros irracionales
Números irracionales
 
Tutorial lego-mindstorm
Tutorial lego-mindstormTutorial lego-mindstorm
Tutorial lego-mindstorm
 
Teoria del enlace
Teoria del enlaceTeoria del enlace
Teoria del enlace
 
8522107351 pre calculo_2ed
8522107351 pre calculo_2ed8522107351 pre calculo_2ed
8522107351 pre calculo_2ed
 
011 fisica general
011 fisica general011 fisica general
011 fisica general
 
Portafolio de algebra........
Portafolio de algebra........Portafolio de algebra........
Portafolio de algebra........
 
1321. Matemáticas básicas para el acceso a la universidad.pdf
1321. Matemáticas básicas para el acceso a la universidad.pdf1321. Matemáticas básicas para el acceso a la universidad.pdf
1321. Matemáticas básicas para el acceso a la universidad.pdf
 

Más de Alvaro Gomes

Museu nacional de história natural e da ciência
Museu nacional de história natural e da ciênciaMuseu nacional de história natural e da ciência
Museu nacional de história natural e da ciênciaAlvaro Gomes
 
Luís Vaz de Camões Vida e Obras
Luís Vaz de Camões Vida e Obras Luís Vaz de Camões Vida e Obras
Luís Vaz de Camões Vida e Obras Alvaro Gomes
 
Ética Deontológica Técnico Administrativo
Ética Deontológica Técnico AdministrativoÉtica Deontológica Técnico Administrativo
Ética Deontológica Técnico AdministrativoAlvaro Gomes
 
Revolução Industrial - O Ponto de Viragem
Revolução Industrial - O Ponto de ViragemRevolução Industrial - O Ponto de Viragem
Revolução Industrial - O Ponto de ViragemAlvaro Gomes
 
Linux Commandos Cheat
Linux Commandos CheatLinux Commandos Cheat
Linux Commandos CheatAlvaro Gomes
 
Flash android using livesuit
Flash android using livesuitFlash android using livesuit
Flash android using livesuitAlvaro Gomes
 
13 Things the Government doesn´t want you to know
13 Things the Government doesn´t want you to know13 Things the Government doesn´t want you to know
13 Things the Government doesn´t want you to knowAlvaro Gomes
 
Hackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorHackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorAlvaro Gomes
 
Como transformar o router thomson num print server
Como transformar o router thomson num print serverComo transformar o router thomson num print server
Como transformar o router thomson num print serverAlvaro Gomes
 
Drivers ADB Android
Drivers ADB AndroidDrivers ADB Android
Drivers ADB AndroidAlvaro Gomes
 
ROM china original (Shenzhen)
ROM china original (Shenzhen)ROM china original (Shenzhen)
ROM china original (Shenzhen)Alvaro Gomes
 
Reinstalar actualizar el sistema operativo android
Reinstalar actualizar el sistema operativo androidReinstalar actualizar el sistema operativo android
Reinstalar actualizar el sistema operativo androidAlvaro Gomes
 
Hackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorHackeando facebook com wireshark e cookie injector
Hackeando facebook com wireshark e cookie injectorAlvaro Gomes
 
H4dummies (translated to portuguese)
H4dummies (translated to portuguese)H4dummies (translated to portuguese)
H4dummies (translated to portuguese)Alvaro Gomes
 
Html - capitulo 12
Html - capitulo 12Html - capitulo 12
Html - capitulo 12Alvaro Gomes
 

Más de Alvaro Gomes (20)

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

Último

rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxssuser61dda7
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.Aldo Fernandez
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDLeslie Villar
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxchinojosa17
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.ayalayenifer617
 
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...#LatamDigital
 
Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)BrianaFrancisco
 
Software y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdfSoftware y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdfDanielaEspitiaHerrer
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxmrzreyes12
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdfFernandaHernandez312615
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxNicolas Villarroel
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfYuriFuentesMartinez2
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx241518192
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAcoloncopias5
 

Último (14)

rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptxrodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
rodriguez_DelAngel_MariaGPE_M1S3AL6.pptx
 
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
ChatGPT Inteligencia artificial, funciones, limitaciones y ventajas.
 
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULDGRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
GRUPO 10 SOFTWARE DE EL CAMPO DE LA SAULD
 
Tema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptxTema 1 - Fundamentos de gestión contable.pptx
Tema 1 - Fundamentos de gestión contable.pptx
 
El uso de las tic en la vida continúa , ambiente positivo y negativo.
El uso de las tic  en la vida continúa , ambiente positivo y negativo.El uso de las tic  en la vida continúa , ambiente positivo y negativo.
El uso de las tic en la vida continúa , ambiente positivo y negativo.
 
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat  Vers...
11º Anuncio Nominados Finalistas Premios #LatamDigital 2024 by Interlat Vers...
 
Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)Practica guiada Menu_ tecnología (Tic's)
Practica guiada Menu_ tecnología (Tic's)
 
Software y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdfSoftware y servicios de internet mapa conceptual.pdf
Software y servicios de internet mapa conceptual.pdf
 
que es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptxque es Planimetría definición importancia en topografia.pptx
que es Planimetría definición importancia en topografia.pptx
 
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf2º SOY LECTOR PART 2- MD  EDUCATIVO (6).pdf
2º SOY LECTOR PART 2- MD EDUCATIVO (6).pdf
 
GRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptxGRUPO 5 Software en el campo de la salud.pptx
GRUPO 5 Software en el campo de la salud.pptx
 
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdfFLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
FLUIDEZ-Teatro-Leido-4to-Grado-El-leon-y-el-raton- (1).pdf
 
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptxCamposGarcia_MariaMagdalena_M1S3AI6.pptx
CamposGarcia_MariaMagdalena_M1S3AI6.pptx
 
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIAFisica General.pdf ESCUELA D QUIMICA E INGENIERIA
Fisica General.pdf ESCUELA D QUIMICA E INGENIERIA
 

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.
  • 39.
  • 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