Académique Documents
Professionnel Documents
Culture Documents
Complejidad Algoritmos
A efectos prácticos o ingenieriles, nos deben preocupar los recursos físicos necesarios
para que un programa se ejecute.
Aunque puede haber muchos parámetros, los más usuales son el tiempo de ejecución y
la cantidad de memoria (espacio).
Ocurre con frecuencia que ambos parámetros están fijados por otras razones y se
plantea la pregunta inversa: ¿cuál es el tamaño del mayor problema que puedo resolver
en T segundos y/o con M bytes de memoria?
En lo que sigue nos centramos casi siempre en el parámetro tiempo de ejecución, si bien
las ideas desarrolladas son fácilmente aplicables a otro tipo de recursos.
Para cada problema determinaremos una medida N de su tamaño (por número de datos)
e intentaremos hallar respuestas en función de dicho N.
Así, para un vector se suele atizar como N su longitud; para una matriz, el número de
elementos que la componen; para un grafo, puede ser el número de nodos (a veces es
más importante considerar el número de arcos, dependiendo del tipo de problema a
resolver), en un archivo se suele usar el número de registros, etc.
Es imposible dar una regla general, pues cada problema tiene su propia lógica de coste.
Tipos de Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los
pasos del proceso.
(buscar)
Tiempo de ejecución de un algoritmo
Ejemplo:
S1; (sentencia = s)
S2;
Requiere: T(N) = t1 + t2 * N
Los algoritmos bien estructurados combinan las sentencias de algunas de las formas
siguientes:
F) Ciclos anidados:
Ejemplo:
{algo de O(1)}
N * N * O(1) = O(n2)
un algoritmo poderoso como Quicksort puede ser el más indicado. Y si no puedes hacer
una presunción sobre el grado de orden de la información, lo mejor será elegir un
algoritmo que se comporte de manera similar en cualquiera de estos dos casos extremos.
¿Qué tipo de datos quieres ordenar? Algunos algoritmos sólo funcionan con un
tipo específico de datos
(enteros, enteros positivos, etc.) y otros son generales, es decir, aplicables a cualquier
tipo de dato.
(burbuja, inserción). Si los registros son de gran tamaño estos intercambios son más
lentos.
5 Algoritmos de la vida real
1. Encender la computadora.
2. Abrir un programa para quemar
archivos.
3. Seleccionar el archivo que se
quemara.
4. Insertar un DVD vacio.
5. Elegir el quemador.
6. Seleccionar grabar.
7. Sacar DVD.
8. Probar si se guardo la
información.