Python - Diseño de algoritmos

El algoritmo es un procedimiento paso a paso, que define un conjunto de instrucciones que se ejecutarán en un orden determinado para obtener el resultado deseado. Los algoritmos generalmente se crean independientemente de los lenguajes subyacentes, es decir, un algoritmo se puede implementar en más de un lenguaje de programación.

Desde el punto de vista de la estructura de datos, las siguientes son algunas categorías importantes de algoritmos:

  • Search - Algoritmo para buscar un elemento en una estructura de datos.

  • Sort - Algoritmo para clasificar elementos en un orden determinado.

  • Insert - Algoritmo para insertar elementos en una estructura de datos.

  • Update - Algoritmo para actualizar un elemento existente en una estructura de datos.

  • Delete - Algoritmo para eliminar un elemento existente de una estructura de datos.

Características de un algoritmo

No todos los procedimientos pueden llamarse algoritmos. Un algoritmo debe tener las siguientes características:

  • Unambiguous- El algoritmo debe ser claro e inequívoco. Cada uno de sus pasos (o fases), y sus entradas / salidas deben ser claros y deben conducir a un solo significado.

  • Input - Un algoritmo debe tener 0 o más entradas bien definidas.

  • Output - Un algoritmo debe tener 1 o más salidas bien definidas y debe coincidir con la salida deseada.

  • Finiteness - Los algoritmos deben terminar después de un número finito de pasos.

  • Feasibility - Debe ser factible con los recursos disponibles.

  • Independent - Un algoritmo debe tener instrucciones paso a paso, que deben ser independientes de cualquier código de programación.

¿Cómo escribir un algoritmo?

No existen estándares bien definidos para escribir algoritmos. Más bien, depende del problema y de los recursos. Los algoritmos nunca se escriben para admitir un código de programación en particular.

Como sabemos, todos los lenguajes de programación comparten construcciones básicas de código como bucles (do, for, while), control de flujo (if-else), etc. Estas construcciones comunes pueden usarse para escribir un algoritmo.

Escribimos algoritmos paso a paso, pero no siempre es así. La escritura de algoritmos es un proceso y se ejecuta después de que el dominio del problema está bien definido. Es decir, debemos conocer el dominio del problema, para el cual estamos diseñando una solución.

Ejemplo

Intentemos aprender a escribir algoritmos usando un ejemplo.

Problem - Diseñar un algoritmo para sumar dos números y mostrar el resultado.

step 1 − START
step 2 − declare three integers a, b & c
step 3 − define values of a & b
step 4 − add values of a & b
step 5 − store output of step 4 to c
step 6 − print c
step 7 − STOP

Los algoritmos les dicen a los programadores cómo codificar el programa. Alternativamente, el algoritmo se puede escribir como:

step 1 − START ADD
step 2 − get values of a & b
step 3 − c ← a + b
step 4 − display c
step 5 − STOP

En el diseño y análisis de algoritmos, normalmente se utiliza el segundo método para describir un algoritmo. Facilita al analista analizar el algoritmo ignorando todas las definiciones no deseadas. Puede observar qué operaciones se están utilizando y cómo fluye el proceso.

Escritura step numbers, es opcional.

Diseñamos un algoritmo para obtener la solución de un problema determinado. Un problema se puede resolver de más de una forma.

Por tanto, se pueden derivar muchos algoritmos de solución para un problema dado. El siguiente paso es analizar los algoritmos de solución propuestos e implementar la solución más adecuada.