¿Qué es un algoritmo informático? – Diseño, ejemplos y optimización
¿Qué es un algoritmo?
Considere cómo usa una computadora en un día típico. Por ejemplo, comienza a trabajar en un informe y, una vez que ha completado un párrafo, realiza una revisión ortográfica. Abre una aplicación de hoja de cálculo para hacer algunas proyecciones financieras para ver si puede pagar un préstamo de automóvil nuevo. Utiliza un navegador web para buscar en línea el tipo de automóvil que desea comprar.
Puede que no piense en esto de manera muy consciente, pero todas estas operaciones realizadas por su computadora consisten en algoritmos. Un algoritmo es un procedimiento bien definido que permite a una computadora resolver un problema. Otra forma de describir un algoritmo es una secuencia de instrucciones inequívocas. El uso del término “inequívoco” indica que no hay lugar para la interpretación subjetiva. Cada vez que le pida a su computadora que realice el mismo algoritmo, lo hará exactamente de la misma manera con el mismo resultado exacto.
Considere los ejemplos anteriores nuevamente. La revisión ortográfica utiliza algoritmos. Los cálculos financieros utilizan algoritmos. Un motor de búsqueda usa algoritmos. De hecho, es difícil pensar en una tarea realizada por su computadora que no utilice algoritmos.
¿Cómo funcionan los algoritmos?
Echemos un vistazo más de cerca a un ejemplo.
Un ejemplo muy simple de algoritmo sería encontrar el número más grande en una lista de números sin clasificar. Si le dieran una lista de cinco números diferentes, lo habría resuelto en poco tiempo, sin necesidad de una computadora. Ahora, ¿qué tal cinco millones de números diferentes? Claramente, necesitará una computadora para hacer esto, y una computadora necesita un algoritmo.
A continuación se muestra cómo podría verse el algoritmo. Digamos que la entrada consiste en una lista de números, y esta lista se llama L. El número L1 sería el primer número de la lista, L2 el segundo número, etc. Y sabemos que la lista no está ordenada; de lo contrario, la respuesta sería realmente fácil. Entonces, la entrada al algoritmo es una lista de números, y la salida debe ser el número más grande de la lista.
El algoritmo se vería así:
Paso 1: Sea más grande = L1
Esto significa que comienza asumiendo que el primer número es el número más grande.
Paso 2: para cada elemento de la lista:
Esto significa que revisará la lista de números uno por uno.
Paso 3: si el artículo> más grande:
Si encuentra un nuevo número más grande, vaya al paso cuatro. De lo contrario, vuelva al paso dos, lo que significa que pasa al siguiente número de la lista.
Paso 4: luego más grande = el artículo
Esto reemplaza el antiguo número más grande con el nuevo número más grande que acaba de encontrar. Una vez que haya completado esto, vuelva al paso dos hasta que no queden más números en la lista.
Paso 5: Devolver más grande
Esto produce el resultado deseado.
Observe que el algoritmo se describe como una serie de pasos lógicos en un lenguaje que se comprende fácilmente. Para que una computadora realmente use estas instrucciones, deben estar escritas en un lenguaje que una computadora pueda entender, conocido como lenguaje de programación .
Enfoques alternativos y optimización
Hay muchos tipos diferentes de algoritmos. Los algoritmos de búsqueda se utilizan para encontrar un elemento con propiedades específicas entre una colección de elementos. Por ejemplo, es posible que desee saber si una palabra en particular aparece en una lista de palabras o no. La búsqueda está estrechamente relacionada con el concepto de diccionario, ya que es como buscar una palabra en un diccionario. Existen diferentes enfoques de búsqueda, cada uno de los cuales representa un enfoque técnico ligeramente diferente para el mismo problema.
En una búsqueda secuencial o lineal, comienza examinando el primer elemento de la lista para ver si coincide con las propiedades que está buscando. De lo contrario, continúe examinando cada elemento secuencial hasta que encuentre una coincidencia.
Este enfoque producirá el resultado correcto, pero no es muy eficiente. Para una lista relativamente pequeña que solo necesita ser buscada una vez, puede que no importe mucho si la búsqueda lleva un poco más de tiempo. Sin embargo, muchas tareas informáticas requieren no solo uno, sino cientos de algoritmos para ejecutarse. Los conjuntos de datos también pueden ser muy grandes y es posible que deban procesarse repetidamente. Como resultado, la velocidad de procesamiento es importante.
Los algoritmos alternativos pueden requerir menos tiempo para encontrar la respuesta correcta. Esto se conoce como optimización: el proceso de encontrar los algoritmos más eficientes computacionalmente para resolver un problema en particular.
En el caso de la búsqueda, una alternativa a la búsqueda secuencial es la búsqueda binaria. Una búsqueda binaria mejora el algoritmo al eliminar la mayor cantidad posible de datos de entrada sin tener que examinar cada elemento. Supongamos que busca un número en particular en una lista de números y la lista ya está ordenada. Esto presenta una oportunidad para buscar más rápido.
En una búsqueda binaria, saltaría al elemento más o menos en el medio de la lista. Si el número que está buscando es mayor, puede soltar el lado izquierdo de la lista y continuar solo con el lado derecho. Eso reduce la cantidad de elementos para buscar a la mitad en un solo paso. Puede repetir esto hasta que haya encontrado el número que está buscando o hasta que la lista restante sea muy corta, y luego puede ejecutar una búsqueda secuencial muy rápidamente.
Hay muchos algoritmos de búsqueda alternativos, cada uno con sus propias fortalezas y debilidades. Un buen algoritmo es aquel que produce la respuesta correcta y es computacionalmente eficiente. Los entusiastas de la informática dedican gran parte de su tiempo a desarrollar mejores algoritmos.
Determinar qué algoritmo es mejor para una tarea determinada no es tan fácil como parece. Por ejemplo, en el caso de la búsqueda secuencial y binaria, la búsqueda binaria es mucho más rápida pero solo si la lista de interés ya está ordenada. La clasificación requeriría otro algoritmo, lo que llevará bastante tiempo. Esto puede valer la pena si se busca en la lista muchas veces. Sin embargo, si solo planea buscar una lista sin clasificar una vez, la búsqueda secuencial será más rápida que realizar primero una clasificación y luego una búsqueda binaria.
Resumen de la lección
Las tareas realizadas por las computadoras consisten en algoritmos. Un algoritmo es un procedimiento bien definido que permite a una computadora resolver un problema. Normalmente, un problema particular puede resolverse mediante más de un algoritmo. La optimización es el proceso de encontrar el algoritmo más eficiente para una tarea determinada. Un buen algoritmo es aquel que produce la respuesta correcta y es computacionalmente eficiente.
Los resultados del aprendizaje
Después de esta lección, debería poder:
- Definir algoritmo y explicar cómo funciona un algoritmo.
- Describe el proceso de optimización.
- Identificar algunos de los diferentes tipos de algoritmos.
Articulos relacionados
- ¿Qué es el Diseño de Bioprocesos?
- ¿Qué es el Salario Real? Fórmula y ejemplos
- Propiedades de una sustancia: Definición, tipos y ejemplos
- ¿Qué es la Distribución Geográfica? Ejemplos
- Cliché: Definición, frases y ejemplos
- Literatura Fantástica Moderna: Definición, historia y ejemplos
- Atrio en Arquitectura: Definición y ejemplos
- Fuerza Centrípeta: Definición, ecuación y ejemplos
- Apreciación y Depreciación de una Moneda: Efectos y ejemplos
- Consecuencialismo: Definición, críticas y ejemplos