¿Qué es un algoritmo? Definición, Tipos, Complejidad, Ejemplos

Un algoritmo es una técnica computacional secuencial bien definida que acepta un valor o una colección de valores como entrada y produce los resultados necesarios para resolver un problema. O podemos decir que se dice que un algoritmo es preciso si y solo si se detiene con la salida adecuada para cada instancia de entrada. Considere una caja donde nadie pueda ver lo que sucede dentro; decimos una caja negra. Damos entrada a la caja y nos da la salida que necesitamos, pero el procedimiento que podríamos necesitar saber detrás de la conversión de la entrada a la salida deseada es un ALGORITMO. Un algoritmo es independiente del lenguaje utilizado. Le dice al programador la lógica utilizada para resolver el problema. Por lo tanto, es un procedimiento lógico paso a paso que actúa como modelo para los programadores.

Ejemplos de la vida real que definen el uso de algoritmos:

  1. Considere un reloj. Sabemos que el tiempo corre, pero cómo el fabricante establece esas tuercas y pernos para que siga moviéndose y cada 60 segundos, la manecilla de minutos debería moverse y cada 60 minutos, la manecilla de las horas debería moverse. Entonces, para resolver este problema, debe haber un algoritmo detrás.
  2. ¿Has visto a alguien cocinando tu comida favorita para ti? ¿Es necesaria la receta para ello? Sí, es necesario ya que una receta es un procedimiento secuencial que convierte una patata cruda en una patata fría. Esto es lo que es un algoritmo: seguir un procedimiento para obtener el resultado deseado. ¿Es necesario seguir la secuencia? Sí, la secuencia es lo más importante que se debe seguir para obtener lo que queremos, ya que sabemos WYWIWYG (Lo que quieres es lo que obtienes).

Tipos de Algoritmos:

  • Algoritmos de clasificación: clasificación por burbuja, clasificación por inserción y muchos más. Estos algoritmos se utilizan para ordenar los datos en un formato particular.
  • Algoritmos de búsqueda: Búsqueda lineal, búsqueda binaria, etc. Estos algoritmos se utilizan para encontrar un valor o registro que demanda el usuario.
  • Algoritmos gráficos : se utiliza para encontrar las soluciones de problemas como encontrar el camino más corto entre ciudades, problemas de la vida real como problemas de viajante de comercio.

¿Por qué usamos algoritmos?

Considere a dos niños, Aman y Rohon, resolviendo el cubo de Rubik. Aman sabe cómo resolverlo en un número definido de pasos. Por otro lado, Rohon sabe que lo hará pero no está al tanto del procedimiento. Aman resuelve el cubo en 2 minutos, mientras que Rohan todavía está atascado y, al final del día, de alguna manera logró resolverlo (podría haber hecho trampa ya que el procedimiento es necesario). Entonces, el tiempo requerido para resolver con un procedimiento/algoritmo es mucho más efectivo que sin ningún procedimiento. Por lo tanto, la necesidad de un algoritmo es imprescindible. En términos de diseñar una solución a un problema de TI, las computadoras son rápidas pero no infinitamente rápidas. La memoria puede ser económica pero no gratuita. Entonces, el tiempo de computación es un recurso limitado y también lo es el espacio en la memoria. 

Crear un algoritmo

Dado que el algoritmo es independiente del lenguaje, escribimos los pasos para demostrar la lógica detrás de la solución que se usará para resolver un problema. Pero antes de escribir un algoritmo, tenga en cuenta los siguientes puntos:

  • El algoritmo debe ser claro e inequívoco.
  • Debe haber 0 o más entradas bien definidas en un algoritmo.
  • Un algoritmo debe producir una o más salidas bien definidas que sean equivalentes a la salida deseada. Después de un número específico de pasos, los algoritmos deben detenerse.
  • Los algoritmos deben detenerse o terminar después de un número finito de pasos.
  • En un algoritmo, se deben proporcionar instrucciones paso a paso y deben ser independientes de cualquier código de computadora.

 Aquí la tarea es escribir un algoritmo para multiplicar 2 números e imprimir el resultado:

Paso 1: Empezar

Paso 2: Obtener el conocimiento de entrada. 

Aquí necesitamos 3 variables; a y b serán la entrada del usuario y c contendrá el resultado.  

Paso 3: Declare las variables a, b, c.

Paso 4: Tome la entrada para la variable a y b del usuario.

Paso 5: Conoce el problema y encuentra la solución usando operadores, estructuras de datos y lógica

Necesitamos multiplicar las variables a y b, por lo que usamos el operador * y asignamos el resultado a c. 

Eso es c <- a * b

Paso 6: Compruebe cómo dar salida 

Aquí tenemos que imprimir la salida. Entonces escribe print c

Paso 7: Fin

Ejemplo 1: Escriba un algoritmo para encontrar el máximo de todos los elementos presentes en la array.

Solución:

Paso 1: Empezar

Paso 2: Declare una variable max con el valor del primer elemento de la array.

Paso 3: compare max con otros elementos usando loop.

Paso 4: si max < valor del elemento de array, cambie max a nuevo max.

Paso 5: si no queda ningún elemento, regrese o imprima el máximo; de lo contrario, vaya al paso 3.

Paso 6: Fin 

Ejemplo 2: Escribe un algoritmo para encontrar el promedio de 6 sujetos.

Solución:

Paso 1: Empezar 

Paso 2: Declarar una suma variable con valor 0.

Paso 3: obtenga la suma de todos los valores en la variable de suma usando el bucle. 

Paso 4: Divide la suma por 6 y asígnala a la variable promedio.

Paso 5: Imprima el promedio

Paso 6: Fin 

Complejidad del algoritmo

Para un algoritmo A, se juzga sobre la base de dos parámetros para una entrada de tamaño n:

  • Tiempo Complejidad: Tiempo que tarda el algoritmo en resolver el problema. Se mide calculando la iteración de los bucles, el número de comparaciones, etc.
  • Complejidad espacial: Espacio que ocupa el algoritmo para resolver el problema. Incluye el espacio utilizado por las variables de entrada necesarias y cualquier espacio extra (excluyendo el espacio ocupado por las entradas) que utiliza el algoritmo. Por ejemplo, si usamos una tabla hash (un tipo de estructura de datos), necesitamos una array para almacenar valores, por lo que este es un espacio adicional ocupado, por lo tanto, contará para la complejidad espacial del algoritmo. Este espacio extra se conoce como Espacio Auxiliar.

Ventajas de los Algoritmos

  1. Fácil de entender: dado que es una representación paso a paso de una solución a un problema dado, es fácil de entender.
  2. Independiente del lenguaje: No depende de ningún lenguaje de programación, por lo que cualquiera puede entenderlo fácilmente.
  3. Depuración/búsqueda de errores: cada paso es independiente/en un flujo, por lo que será fácil detectar y corregir el error.
  4. Subproblemas: está escrito en un flujo, por lo que ahora el programador puede dividir las tareas, lo que las hace más fáciles de codificar.

Desventajas de los algoritmos

  1. La creación de algoritmos eficientes lleva mucho tiempo y requiere buenas habilidades lógicas.
  2. Es desagradable mostrar ramificaciones y bucles en los algoritmos.
     

Publicación traducida automáticamente

Artículo escrito por anubhavgoel1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *