¿Qué significa el algoritmo en informática?

Un algoritmo es una secuencia ordenada finita de instrucciones (pasos) para resolver un problema .

Digamos que tiene una colección de números y necesita saber el valor máximo.

Un algoritmo simple e ingenuo para resolver este problema podría ser:

  1. Tome el primer elemento de esta colección. Llámalo max ;
  2. Repetir sobre cada elemento de la colección:
    1. Si item > max , entonces ponga valor en max;
  3. Retorno max .

Cuando termina de iterar, tiene el valor máximo en max .

Más formalmente, podemos escribir algo como:

  función getMax (valores: Colección):
   max  max entonces:
       max <- elemento
   retorno max

Acabamos de escribir un pseudocódigo : una forma de describir los pasos exactos del algoritmo.

Tenga en cuenta que no existe una sintaxis única para escribir pseudocódigos, pero podemos usar algunos estilos y convenciones comunes.


Básicamente, cuando escribe un programa, está implementando un algoritmo (o algunos algoritmos) con un lenguaje de programación.

¿Por qué implementar? Porque un algoritmo es un concepto abstracto. Es una descripción de lo que debe hacerse (recuerde el pseudocódigo). Su código es la implementación real del algoritmo.

Dicho esto, otra cosa interesante es que podría haber diferentes implementaciones del mismo algoritmo.


Tenemos algunas técnicas de diseño de algoritmos que se adaptan mejor a tipos específicos de problemas. Algunos de ellos son:

  • Codicioso;
  • Divide y conquistaras;
  • Programación dinámica;
  • Retroceso

También hay diferentes algoritmos famosos para resolver problemas comunes, como:

  • Clasificación;
  • Caminos más cortos;
  • Planificación;
  • Fraccionamiento;
  • La subsecuencia común más larga;

¿Por qué necesitamos diferentes algoritmos para los mismos problemas?

Porque estos algoritmos pueden diferir en su costo (o complejidad ).
El costo de un algoritmo se puede definir como su eficiencia, en términos de velocidad y espacio utilizado.

Para determinar la complejidad de un algoritmo podemos usar la notación asintótica .

Esta herramienta es increíble, porque te dice con precisión si un algoritmo es eficiente o no.

Entonces, generalmente, diferentes algoritmos para diferentes situaciones.


Hay muchas cosas que decir sobre algoritmos (y estructuras de datos). Es un campo interesante e iluminador.

Un conjunto de pasos para resolver una clase de problema. Ordenar una matriz (burbuja, shell, radix, rápida), encontrar la ruta más corta en un gráfico, etc. Por lo general, se miden en notación Big-O. O (n) significa que si tiene n elementos para procesar, lo resuelve en n unidades de tiempo. O como una selección rápida, n * log2 (n), etc.

Dé un problema: agregue dos números A y B y guárdelos en C.
¿Cuáles son los pasos para sumar dos números?

1. Obtenga el valor de A
2. Obtenga el valor de B.
3. Agregue A, B y guárdelo en C.

Ese es su algoritmo para sumar dos números.

Básicamente, el algoritmo es la representación paso a paso de una solución a un problema. Necesita algoritmos para resolver problemas y generalmente hay varios algoritmos (soluciones) diferentes para resolver un problema.

Los algoritmos son un conjunto de instrucciones diseñadas para resolver un problema.

Pueden variar en tamaño desde cualquier función hasta una aplicación completa.

En pocas palabras, un algoritmo es una secuencia de pasos que toma una entrada y devuelve una salida específica.

Por ejemplo, el Algoritmo de Dijkstra es un algoritmo que, dada la entrada de un gráfico ponderado positivamente, un nodo inicial y un nodo objetivo, devuelve la salida del camino más corto entre los dos. El algoritmo especifica los pasos que se deben seguir para devolver esta salida deseada. Pero es probable que, si le pide a dos personas que implementen Dijkstra, su código no será exactamente el mismo. La lógica de su código seguirá la lógica del algoritmo, pero sus programas variarán dependiendo de las estructuras de datos que elijan usar.

Un algoritmo es como una receta para cocinar, pero se aplica más en matemáticas o en una serie de pasos que una computadora / máquina / persona puede seguir para lograr un objetivo final.

La distinción clave entre un algoritmo y una función es que la función da la respuesta correcta (no importa cuánto tiempo tome) pero el algoritmo lo ayuda a acercarse a una respuesta que es lo suficientemente buena y generalmente más rápida.

Algoritmos + Estructuras de datos = Programas