Concepto de Algoritmo. Idea general.


Un algoritmo, de manera general, es un conjunto de pasos o instrucciones que se deben seguir para realizar una determinada tarea. La siguientes características son requeridas para que un cojunto de pasos pueda denominarse "algoritmo":


Ser preciso: Esto significa que las operaciones o pasos del algoritmo deben desarrollarse en un orden estricto, ya que el desarrollo de cada paso debe obedecer a un orden lógico.

Ser definido. Ya que en el área de programación, el algoritmo se desarrolla como paso fundamental para desarrollar un programa, es necesario tener en cuenta que el computador solo desarrollará las tareas programadas y con los datos suministrados; es decir, no puede improvisar y tampoco se inventará o adivinará el dato que necesite para realizar un proceso. Por eso, el algoritmo debe estar plenamente definido; esto es, que cuantas veces se ejecute, el resultado depende estrictamente de los datos suministrados. Si se ejecuta con un mismo conjunto de datos de entrada, el resultado será siempre el mismo.

Ser finito: Esta característica implica que el número de pasos de un algoritmo, por grande y complicado que sea el problema que soluciona, debe ser limitado. Todo algoritmo, sin importar el número de pasos que incluya, debe llegar a un final. Para hacer evidente esta característica, en la representación de un algoritmo siempre se incluyen los pasos inicio y fin.

Ser correcto: El algoritmo debe ser correcto, es decir, debe satisfacer la necesidad o solucionar el problema para el cual fue diseñado. Para garantizar que el algoritmo logre el objetivo, es necesario ponerlo a prueba; a esto se le llama verificación o prueba de escritorio.

Tener una presentación formal: Para que el algoritmo sea entendido por cualquier persona interesada, es necesario que se exprese en alguna de las formas comúnmente aceptadas; pues, si se describe de cualquier manera puede no ser muy útil. Las formas de presentación de algoritmos son, entre otras: el pseudocódigo, diagrama de flujo y diagramas de Nassi/Schneiderman.

Ser óptimo: Hablar de eficiencia o complejidad de un algoritmo es evaluar los recursos de cómputo que requiere para almacenar datos y para ejecutar operaciones frente al beneficio que ofrece. Se trata de una
cualidad deseable en un buen algoritmo, aunque no imprescindible para ser considerado como tal. Es decir, el algoritmo debe resolver el problema de la forma más fácil y rápida; si bien es cierto que en muchas ocasiones facilidad y rapidez son dos cualidades contrapuestas.