Como medida de la eficiencia de un algoritmo, se suelen
estudiar los recursos (memoria y tiempo) que consume el algoritmo. El análisis
de algoritmos se ha desarrollado para obtener valores que de alguna forma
indiquen (o especifiquen) la evolución del gasto de tiempo y memoria en función
del tamaño de los valores de entrada.
El análisis y estudio de los algoritmos es una disciplina de
las ciencias de la computación y, en la mayoría de los casos, su estudio es
completamente abstracto sin usar ningún tipo de lenguaje de programación ni
cualquier otra complementación; por eso, en ese sentido, comparte las
características de las disciplinas matemáticas. Así, el análisis de los
algoritmos se centra en los principios básicos del algoritmo, no en los de la
implementación particular. Una forma de plasmar (o algunas veces
"codificar") un algoritmo es escribirlo en pseudocódigo o utilizar un
lenguaje muy simple tal como Lexico, cuyos códigos pueden estar en el idioma
del programador.
Algunos escritores restringen la definición de algoritmo a
procedimientos que deben acabar en algún momento, mientras que otros consideran
procedimientos que podrían ejecutarse eternamente sin pararse, suponiendo el
caso en el que existiera algún dispositivo físico que fuera capaz de funcionar
eternamente. En este último caso, la finalización con éxito del algoritmo no se
podría definir como la terminación de este con una salida satisfactoria, sino
que el éxito estaría definido en función de las secuencias de salidas dadas
durante un periodo de vida de la ejecución del algoritmo. Por ejemplo, un
algoritmo que verifica que hay más ceros que unos en una secuencia binaria
infinita debe ejecutarse siempre para que pueda devolver un valor útil. Si se
implementa correctamente, el valor devuelto por el algoritmo será válido, hasta
que evalúe el siguiente dígito binario. De esta forma, mientras evalúa la
siguiente secuencia podrán leerse dos tipos de señales: una señal positiva (en
el caso de que el número de ceros sea mayor que el de unos) y una negativa en
caso contrario. Finalmente, la salida de este algoritmo se define como la
devolución de valores exclusivamente positivos si hay más ceros que unos en la
secuencia y, en cualquier otro caso, devolverá una mezcla de señales positivas
y negativas.
No hay comentarios.:
Publicar un comentario