¿Qué es el algoritmo? ¿Para qué sirve?

El propósito de un algoritmo es dar un conjunto de reglas por las cuales uno puede resolver un problema. Piense en ello como una guía paso a paso que llevará a cabo una tarea específica o resolverá un cálculo específico si los pasos se siguen en orden.

Un aspecto importante a tener en cuenta al armar un algoritmo es si es genérico o no. Es decir, ¿producirán estos pasos el resultado correcto incluso si los aplicamos a tareas que difieren ligeramente en sus condiciones previas? Para ilustrar la importancia, imagine que le gustaría resolver alguna tarea relacionada con un vector (una lista ordenada de elementos). Empiezas diseñando un algoritmo para realizar esta tarea en un espacio vectorial bidimensional, porque eso es lo que necesitas justo en este momento. Ahora, la diferencia importante entre el algoritmo genérico y el no genérico entra en juego cuando avanza y desea realizar la misma tarea en el espacio vectorial n-dimensional. Un algoritmo genérico aún le proporcionará el resultado correcto, mientras que un algoritmo no genérico obtendrá un resultado incorrecto o ni siquiera tendrá sentido cuando se enfrente a estas condiciones cambiadas.

Un algoritmo es una secuencia de pasos computacionales que transforma la entrada en la salida.

En mi opinión, el algoritmo hace que los problemas solucionables se ejecuten más rápido y los problemas difíciles pueden resolverse.

En cuanto al primer aspecto, por ejemplo, puede escribir fácilmente un programa de clasificación ineficiente, pero si conoce la clasificación rápida, puede escribir un programa de clasificación 10 veces más rápido.

En cuanto al segundo aspecto, digamos, ¿cómo puedes escribir un programa para calcular el área de un polígono simple arbitrario? Según el teorema de Green en cálculo integral, podemos convertir el área de la región en integral de línea alrededor de una curva cerrada simple. Por lo tanto, dadas las coordenadas de los vértices del polígono, tenemos la siguiente fórmula:

[matemáticas] área = \ frac12 | \ sum_ {i = 1} ^ n (x_iy_ {i + 1} – x_ {i + 1} y_i) | [/ matemáticas]

Implementación de Python:

def polygon_area (P):
n = len (P)
S = 0
para i en rango (0, n – 1):
S = S + (P [i] [0] + P [i + 1] [0]) * (P [i + 1] [1] – P [i] [1])
S = S + (P [0] [0] + P [n – 1] [0]) * (P [0] [1] – P [n – 1] [1])
retorno 0.5 * abs (S)

Calcular el área del polígono es un ejemplo clásico de cómo el algoritmo resuelve un problema difícil.