¿Qué es un algoritmo en C?

La definición básica de un programa de computadora, independientemente del lenguaje de programación, es:

  • programa = estructura de datos + algoritmo

El algoritmo no es más que “un conjunto de reglas que define con precisión una secuencia de operaciones”. Los algoritmos son esencialmente la forma en que las computadoras procesan los datos.

Lo siguiente proporciona una ilustración más formal:

  • Algoritmo – Wikipedia
  • Programa de computadora – Wikipedia

Como puede ver, la cuestión de un “algoritmo en C” no es realmente relevante a menos que esté buscando detalles de implementación específicos de cómo codificar uno usando C.

Incluso entonces, generalmente es con un propósito u objetivo específico en mente. (es decir, ¿cómo se implementan habitualmente los algoritmos de búsqueda de rutas utilizados con C?)

Un algoritmo es una secuencia de instrucciones o un conjunto de reglas que se siguen para completar una tarea. Esta tarea puede ser cualquier cosa, siempre que pueda dar instrucciones claras para ello. Por ejemplo, para hacerse una bebida, debe seguir una secuencia de pasos en el orden correcto.

Vea este algoritmo para verificar si un número es par o impar

paso 1: comenzar

paso 2: ingrese el número

Paso 3: rem = número mod 2

paso 4: si rem = 0 entonces

imprime “número par”

más

imprimir “número impar”

terminara si

paso 5: detente

Los algoritmos son independientes del lenguaje. Es un procedimiento finito paso a paso para resolver un problema. Debería terminar (de lo contrario, cuál es el punto. ¿Correcto?). No está relacionado con ningún lenguaje de programación. Pero se pueden “implementar” en lenguajes en C, C ++, Java, Python, etc.

Un algoritmo es un conjunto de reglas para hacer algo.

Una receta de cocina es un algoritmo.

Un conjunto de instrucciones paso a paso sobre cómo reparar su automóvil es un algoritmo.

Los algoritmos están EN TODAS PARTES, simplemente no los notamos.

Una computadora es una máquina para seguir los algoritmos que le das … esa es la mejor definición de “una computadora” que conozco.

Le da a su computadora algoritmos para hacer cosas al convertir el algoritmo que tiene en mente en algún tipo de lenguaje de programación, de los cuales C es solo uno de los cientos que existen.

Entonces, como programador de computadoras, haces tres cosas:

  1. Encuentra un algoritmo para hacer lo que sea que quieras hacer.
  2. Convierta las reglas del algoritmo en líneas de código de computadora (tal vez en C).
  3. Encuentre y repare cualquier problema que encuentre con el código o el algoritmo original.

Trabajo en gráficos por computadora, y ahora mismo estoy trabajando en dibujar el océano. Lo tengo dibujando bonitas olas con olas blancas … está funcionando muy bien.

Pero hace un par de semanas, mi jefe dijo “Necesitamos las olas para enrollar playas” … así que miré videos de playas y olas y descubrí que la parte clave era que las olas SIEMPRE vienen en paralelo a la playa, incluso si las olas de aguas profundas van en otra dirección.

Así que tuve que encontrar un ALGORITMO para decirle a la computadora cómo girar las olas gradualmente hacia la playa, y reducir la altura de las olas a medida que el agua se hacía más profunda.

Luego, tomé ese algoritmo de las ecuaciones garabateadas y los garabatos en mi cuaderno y escribí el código en un lenguaje llamado “GLSL” que utilizo para programar el chip GPU en una tarjeta gráfica.

Cuando hice eso, las olas se volvieron paralelas a la playa, pero se alejaron de la playa en lugar de hacia ella.

Al principio, pensé que había cometido un error al convertir mi algoritmo en GLSL, pero no pude encontrar un problema con eso.

Entonces volví a mirar mi algoritmo y me di cuenta de que necesitaba un signo menos en una de las ecuaciones, así que lo inserté en mi código GLSL, y ahora tenemos hermosas olas de playa en nuestro software de gráficos del simulador de vuelo.

En este caso, descubrir (y arreglar) el algoritmo fue la parte difícil. Me costó mucho pensar y garabatear cómo lo necesitaba. La programación real y las partes de depuración fueron realmente fáciles.

A veces es al revés, tal vez el algoritmo es realmente obvio, por lo que puede escribir el código, pero comete un HORRIBLE error y le lleva semanas lograr que todo funcione correctamente.

Pero de eso se trata la programación …

  • Cree (o encuentre, o busque, o adapte) un algoritmo.
  • Conviértalo en código en cualquier idioma que esté utilizando.
  • Depurarlo

Porque la codificación sin algoritmos es una caminata aleatoria y con poca frecuencia produce resultados útiles.

Algoritmo es un concepto que tiene cuando ejecuta el programa y generalmente representa cómo resuelve un problema. Por ejemplo, desea ordenar una matriz de números y la selección de selección es un tipo de algoritmo con complejidad de O (n ^ 2), y la combinación de clasificación es otro tipo de clasificación con complejidad de O (n). En general, el algoritmo es un proceso o conjunto de reglas que se deben seguir en los cálculos u otras operaciones de resolución de problemas, especialmente por una computadora.

Un algoritmo es simplemente una receta que toma un conjunto de ingredientes y produce un resultado predecible.

Una heurística, por el contrario, es una conjetura de una receta y un algoritmo que le indica cómo modificar esa receta de acuerdo con su fracaso. Puedes medir la distancia al éxito. Las heurísticas son útiles para cuando no hay una receta que se pueda conocer para una situación determinada, pero donde se sabe cómo encontrarla.

Un algoritmo genético es similar a un heurístico, excepto que prueba una variedad de opciones y elimina las fallas. Luego, los sobrevivientes se ajustan, aleatoriamente o de acuerdo con un algoritmo, y así sucesivamente. Esto se usa cuando no tienes idea de lo que se supone que debe hacer la receta, solo sabes si algo es mejor o peor.

Entonces, ¿estás preguntando cuándo usarías un algoritmo? (Utiliza algoritmos siempre que exista algún método predecible y exacto para llegar de un principio a otro).

¿O estás preguntando por qué usarías uno? (Porque si puede producir una receta, puede determinar cuánto tiempo tomará. La heurística y los AG pueden tomar para siempre. Además, generalmente puede verificar la corrección).

Pero nada de esto depende de que uses C.

Un algoritmo es el procedimiento paso a paso para hacer algo.

Probablemente hayas visto la descripción en un champú bootle que es como:

  1. Espuma
  2. Enjuague
  3. Repetir

Este es un algoritmo.

Todos los programas de computadora son algoritmos. Podría describir todo lo que tiene una secuencia de operaciones como un algoritmo. Algunos muy complejos y otros triviales. Esto no tiene nada específico para C.

Un conjunto de instrucciones tomadas para hacer algo.

También hay un archivo de encabezado llamado algoritmo.h que tiene algoritmos populares.

Esto se puede comparar mejor con preguntar esto:
¿Por qué se usa un mapa en un automóvil?
(incluso mejor si imagina que el automóvil puede conducir solo con el mapa)

Los algoritmos son una serie de pasos para ejecutar un código o realizar una tarea.