Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
INTRODUCCION DE LA UNIDAD
4
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
5
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
6
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
algoritmos entre sí, permitiendo determinar el más adecuado de entre varios que
solucionan un mismo problema.1
Para verificar el proceso de analizar un algoritmos en los casos Mejor, Medio y Peor, a
continuación un fragmento del libro Técnicas de Diseño de Algoritmos
Para un mismo algoritmo se pueden estudiar los tres casos: caso peor, caso mejor y
caso medio. El caso mejor corresponde a la traza (secuencia de sentencias) del
algoritmo que realiza menos instrucciones. Análogamente, el caso peor corresponde a
la traza del algoritmo que realiza más instrucciones. Respecto al caso medio,
corresponde a la traza del algoritmo que realiza un número de instrucciones igual a la
esperanza matemática de la variable aleatoria definida por todas las posibles trazas
del algoritmo para un tamaño de la entrada dado, con las probabilidades de que éstas
ocurran para esa entrada.
7
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
8
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
Como se ve el peor caso es cuando la instancia que creamos está ordenada en forma
descendente. El caso medio se da cuando el vector está ordenado aleatoriamente. En
diferentes ejecuciones del programa veremos que el tiempo de proceso que se obtiene
en el caso medio varía. Esto se debe a que los datos que se generan no están en el
9
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
mismo orden. Situación que no se da en las otras instancias generadas. Una buena
aplicación de este código se da en los casos en que los conjuntos de datos a los que
vamos aplicar el método, están casi totalmente ordenados.
Tamaño Ordenada Ordenada Instancia
Instancia Ascendente Descendente Aleatoria
10 0 0 0
100 0 0 0
1000 0 20 10
10000 0 1722 861
100000 10 237622 110229
Para profundizar el aprendizaje del análisis de los casos Mejor, Medio y Peor, seguir
leyendo el material complementario Cap1 Complejidad de los Algoritmos del libro
Técnicas de Diseño de Algoritmos.
3) Operaciones elementales
Es una operación cuyo tiempo de ejecución está acotado por una constante que
solo depende de una implementación particular como ser la máquina, el lenguaje
de programación, etc.
10
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
11
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
12
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
Método
Métodos Método de Branch and
Divide y Programación
Ávidos o Retroceso Bound
Venceras Dinámica
Voraces (backtracking) (Ramificación
y Poda)
http://en.wikibooks.org/wiki/Algorithms
13
Agustina De los Santos Rosario y Felix Ferreiras
Unidad II: Análisis y Diseño de los Algoritmos
BIBLIOGRAFIA
14
Agustina De los Santos Rosario y Felix Ferreiras