ANÁLISIS DE LOS ALGORITMOS
Complejidad en el tiempo.
El tiempo de ejecución de un algoritmo, se refiere a la suma de los tiempos en los que el programa tarda en ejecutar una a unatodas sus instrucciones, tomando en cuanta que cada instrucción requiere una unidad de tiempo, dicho tiempo se puede calcular en función de n (el número de datos), lo que se denomina T(n)
Si hacemosun análisis de forma directa al programa para determinar el tiempo de ejecución del mismo, debemos definir el conjunto de operaciones primitivas, que son independientes del lenguaje de programaciónque se use. Algunas de las funciones primitivas son las siguientes:
- Asignación de un valor a una variable.
- Llamada a un método.
- Ejecución de una operación aritmética.- Comparar dos números.
- Poner índices a un arreglo.
- Seguir una referencia de objeto.
- Retorno de un método.
En forma específica, una operación primitiva corresponde a unainstrucción en el lenguaje de bajo nivel, cuyo tiempo de ejecución depende del ambiente de hardware y software, pero es constante. Ejemplo. Método que retorna el número mayor de un arreglo de n elementos. public int Mayor()
{
int may=arr[0];
for(ind=0; indmay)
may=arr[ind];
return may;
}
Complejidad en espacio.La complejidad de espacio, se refiere a la memoria que utiliza un programa para su ejecución; es decir el espacio de memoria que ocupan todas las variables propias del programa. Dicha memoria se divide en Memoriaestática y Memoria dinámica.
Para calcular la memoria estática, se suman la cantidad de memoria que ocupa cada una de las variables declaradas en el programa.
Tomando en cuenta los tipos de datosprimitivos del lenguaje de programación java podemos determinar el espacio que requiere cada una de las variables de un programa, de acuerdo a lo siguiente:
Tipo de dato primitivo
Tamaño en...
Regístrate para leer el documento completo.