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:
- Tomar dos números como entrada.
- Sumar los números utilizando el operador +.
- 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