jueves, 21 de diciembre de 2023

¿Qué es un Algoritmo?

Un algoritmo es un conjunto paso a paso de instrucciones o reglas bien definidas diseñadas para realizar una tarea o resolver un problema específico. En el ámbito de la ciencia de la computación y la programación, un algoritmo es esencialmente un procedimiento lógico que sigue una secuencia predefinida de operaciones con el objetivo de producir una salida deseada.

Por ejemplo,

Un algoritmo para sumar dos números:

  1. Tomar dos números como entrada.
  2. Sumar los números utilizando el operador +.
  3. Mostrar el resultado.

Cualidades de un Buen Algoritmo

  • Las entradas y salidas deben estar definidas de manera precisa.
  • Cada paso en el algoritmo debe ser claro y sin ambigüedades.
  • Los algoritmos deben ser los más efectivos entre muchas formas diferentes de resolver un problema.
  • Un algoritmo no debe incluir código de computadora. En cambio, el algoritmo debe estar escrito de tal manera que pueda ser utilizado en diferentes lenguajes de programación.


Otras Cualidades de un Buen Algoritmo

  • Precisión: El algoritmo debe ser preciso y específico en sus instrucciones, de modo que pueda producir resultados correctos y exactos.
  • Eficiencia: Debería ser capaz de realizar la tarea o resolver el problema de manera eficiente, utilizando la menor cantidad de recursos posibles, como tiempo y espacio de memoria.
  • Finitud: Debe tener un número finito de pasos o instrucciones, lo que significa que eventualmente terminará de ejecutarse y producirá un resultado.
  • Entrada y Salida Definidas: Debe tomar ciertos datos como entrada y producir una salida clara y definida.
  • Generalidad: Debería ser aplicable a una gama más amplia de problemas o situaciones, en lugar de ser específico para un caso particular.
  • Claridad: Las instrucciones deben ser claras y comprensibles, lo que facilita su implementación y comprensión por parte de otros programadores.
  • Independencia de la Máquina: Idealmente, el algoritmo debería ser independiente de la máquina o plataforma específica en la que se ejecute, permitiendo su portabilidad a diferentes entornos.

Ejemplos de Algoritmos:


Algoritmo 1: Sumar dos números ingresados por el usuario


    Paso 1: Iniciar
    Paso 2: Declarar las variables num1, num2 y sum.
    Paso 3: Leer los valores num1 y num2.
    Paso 4: Sumar num1 y num2 y asignar el resultado a sum.
            sum ← num1 + num2
    Paso 5: Mostrar sum
    Paso 6: Detener
    

Algoritmo 2: Encuentra el número más grande entre tres números


    Paso 1: Iniciar
    Paso 2: Declarar las variables a, b y c.
    Paso 3: Leer las variables a, b y c.
    Paso 4: Si a > b
               Si a > c
                  Mostrar a es el número más grande.
               De lo contrario
                  Mostrar c es el número más grande.
            De lo contrario
               Si b > c
                  Mostrar b es el número más grande.
               De lo contrario
                  Mostrar c es el número más grande.
    Paso 5: Detener
	

Algoritmo 3: Encontrar las Raíces de una Ecuación Cuadrática ax^2 + bx + c = 0


    Paso 1: Iniciar
    Paso 2: Declarar las variables a, b, c, D, x1, x2, rp e ip;
    Paso 3: Calcular el discriminante
             D ← b^2 - 4ac
    Paso 4: Si D ≥ 0
                  r1 ← (-b + √D) / (2a)
                  r2 ← (-b - √D) / (2a) 
                  Mostrar r1 y r2 como raíces.
            De lo contrario     
                  Calcular la parte real y la parte imaginaria
                  rp ← -b / (2a)
                  ip ← √(-D) / (2a)
                  Mostrar rp + j(ip) y rp - j(ip) como raíces
    Paso 5: Detener
    

Algoritmo 4: Encuentra el factorial de un número


    Paso 1: Iniciar
    Paso 2: Declarar las variables n, factorial e i.
    Paso 3: Inicializar las variables
              factorial ← 1
              i ← 1
    Paso 4: Leer el valor de n
    Paso 5: Repetir los pasos hasta que i = n
         5.1: factorial ← factorial * i
         5.2: i ← i + 1
    Paso 6: Mostrar factorial
    Paso 7: Detener
  

Algoritmo 5: Comprobar si un número es primo o no


    Paso 1: Iniciar
    Paso 2: Declarar las variables n, i, flag.
    Paso 3: Inicializar las variables
            flag ← 1
            i ← 2  
    Paso 4: Leer n desde el usuario.
    Paso 5: Repetir los pasos hasta que i = (n/2)
         5.1 Si el residuo de n÷i es igual a 0
                flag ← 0
                Ir al paso 6
         5.2 i ← i+1
    Paso 6: Si flag = 0
               Mostrar n no es primo
            De lo contrario
               Mostrar n es primo
    Paso 7: Detener
  

Algoritmo 6: Encuentra la serie de Fibonacci hasta el término menor que 1000


    Paso 1: Iniciar
    Paso 2: Declarar las variables first_term, second_term y temp.
    Paso 3: Inicializar las variables first_term ← 0, second_term ← 1.
    Paso 4: Mostrar first_term y second_term.
    Paso 5: Repetir los pasos hasta que second_term ≤ 1000
         5.1: temp ← second_term
         5.2: second_term ← second_term + first_term
         5.3: first_term ← temp
         5.4: Mostrar second_term
    Paso 6: Detener
  

---
Contenido original en Ingles puede ser consultado en Programiz: https://www.programiz.com/dsa/algorithm


Siguiente Entrada: Estructuras de Datos