1. Complejidad de Algoritmos
¿Cuándo proporciona un algoritmo una solución SATISFACTORIA a un problema?
Primero, debe producir siempre la respuesta correcta. Segundo, deberá ser eficiente.
¿Cómo se puede analizar la eficiencia de los algoritmos?
Una medida de eficiencia es el tiempo que requiere un ordenador para resolver un
problema utilizando un algoritmo para valores de entrada de un tamaño específico. Una segunda
medida es la cantidad de memoria que se necesita de nuevo para valores de entrada de un tamaño
dado. Una tercera medida sería estabilidad: un ordenamiento estable mantiene el orden relativo que
tenían originalmente los elementos con claves iguales.
Un análisis del tiempo requerido para resolver un problema de un tamaño particular está
relacionado con la complejidad en tiempo del algoritmo y un análisis de la memoria de ordenador
requerida involucra la complejidad en espacio del algoritmo. Obviamente, es importante saber si un
algoritmo producirá su respuesta en un milisegundo, en un minuto o en un millón de años y de manera
similar debemos tener suficiente memoria disponible para poder resolver el problema.
2. Las consideraciones sobre complejidad en espacio están ligadas a las estructuras de
datos usadas en la implementación del algoritmo.
La complejidad en el tiempo de un algoritmo se puede expresar en términos del número
de operaciones que realiza el algoritmo cuando los datos de entrada tienen un tamaño particular.
(comparación de enteros, sumas, multiplicaciones, etc.)
La complejidad se describe en términos del número de operaciones requeridas en lugar del
tiempo de cálculo real, debido a que distintos ordenadores necesitan tiempos diferentes para realizar
las mismas operaciones básicas. Cada algoritmo se comporta de modo diferente de acuerdo a cómo
se le entregue la información; por eso es conveniente estudiar su comportamiento en casos extremos,
como cuando los datos están prácticamente ordenados o muy desordenados.
Complejidad del peor caso.- Por comportamiento de un algoritmo en el peor caso entendemos el
mayor número de operaciones que hace falta para resolver el problema dad utilizando el algoritmo
para unos datos de entrada de un determinado tamaño. Los análisis del peor caso nos dicen cuántas
operaciones tienen que realizar los algoritmos para garantizar que producirán una solución.
Complejidad del caso promedio.- En este tipo de análisis de complejidad se busca el número
promedio de operaciones realizadas para solucionar un problema considerando todas las posibles
entradas de un tamaño determinado. El análisis de la complejidad del caso promedio es
generalmente mucho más complicado que el análisis del peor caso.
3. Las consideraciones sobre complejidad en espacio están ligadas a las estructuras de
datos usadas en la implementación del algoritmo.
La complejidad en el tiempo de un algoritmo se puede expresar en términos del número
de operaciones que realiza el algoritmo cuando los datos de entrada tienen un tamaño particular.
(comparación de enteros, sumas, multiplicaciones, etc.)
La complejidad se describe en términos del número de operaciones requeridas en lugar del
tiempo de cálculo real, debido a que distintos ordenadores necesitan tiempos diferentes para realizar
las mismas operaciones básicas. Cada algoritmo se comporta de modo diferente de acuerdo a cómo
se le entregue la información; por eso es conveniente estudiar su comportamiento en casos extremos,
como cuando los datos están prácticamente ordenados o muy desordenados.
Complejidad del peor caso.- Por comportamiento de un algoritmo en el peor caso entendemos el
mayor número de operaciones que hace falta para resolver el problema dad utilizando el algoritmo
para unos datos de entrada de un determinado tamaño. Los análisis del peor caso nos dicen cuántas
operaciones tienen que realizar los algoritmos para garantizar que producirán una solución.
Complejidad del caso promedio.- En este tipo de análisis de complejidad se busca el número
promedio de operaciones realizadas para solucionar un problema considerando todas las posibles
entradas de un tamaño determinado. El análisis de la complejidad del caso promedio es
generalmente mucho más complicado que el análisis del peor caso.
4. Las consideraciones sobre complejidad en espacio están ligadas a las estructuras de
datos usadas en la implementación del algoritmo.
La complejidad en el tiempo de un algoritmo se puede expresar en términos del número
de operaciones que realiza el algoritmo cuando los datos de entrada tienen un tamaño particular.
(comparación de enteros, sumas, multiplicaciones, etc.)
La complejidad se describe en términos del número de operaciones requeridas en lugar del
tiempo de cálculo real, debido a que distintos ordenadores necesitan tiempos diferentes para realizar
las mismas operaciones básicas. Cada algoritmo se comporta de modo diferente de acuerdo a cómo
se le entregue la información; por eso es conveniente estudiar su comportamiento en casos extremos,
como cuando los datos están prácticamente ordenados o muy desordenados.
Complejidad del peor caso.- Por comportamiento de un algoritmo en el peor caso entendemos el
mayor número de operaciones que hace falta para resolver el problema dad utilizando el algoritmo
para unos datos de entrada de un determinado tamaño. Los análisis del peor caso nos dicen cuántas
operaciones tienen que realizar los algoritmos para garantizar que producirán una solución.
Complejidad del caso promedio.- En este tipo de análisis de complejidad se busca el número
promedio de operaciones realizadas para solucionar un problema considerando todas las posibles
entradas de un tamaño determinado. El análisis de la complejidad del caso promedio es
generalmente mucho más complicado que el análisis del peor caso.
5. Las consideraciones sobre complejidad en espacio están ligadas a las estructuras de
datos usadas en la implementación del algoritmo.
La complejidad en el tiempo de un algoritmo se puede expresar en términos del número
de operaciones que realiza el algoritmo cuando los datos de entrada tienen un tamaño particular.
(comparación de enteros, sumas, multiplicaciones, etc.)
La complejidad se describe en términos del número de operaciones requeridas en lugar del
tiempo de cálculo real, debido a que distintos ordenadores necesitan tiempos diferentes para realizar
las mismas operaciones básicas. Cada algoritmo se comporta de modo diferente de acuerdo a cómo
se le entregue la información; por eso es conveniente estudiar su comportamiento en casos extremos,
como cuando los datos están prácticamente ordenados o muy desordenados.
Complejidad del peor caso.- Por comportamiento de un algoritmo en el peor caso entendemos el
mayor número de operaciones que hace falta para resolver el problema dad utilizando el algoritmo
para unos datos de entrada de un determinado tamaño. Los análisis del peor caso nos dicen cuántas
operaciones tienen que realizar los algoritmos para garantizar que producirán una solución.
Complejidad del caso promedio.- En este tipo de análisis de complejidad se busca el número
promedio de operaciones realizadas para solucionar un problema considerando todas las posibles
entradas de un tamaño determinado. El análisis de la complejidad del caso promedio es
generalmente mucho más complicado que el análisis del peor caso.