Algoritmos: Búsqueda, Ordenamiento, Recursión y Complejidad Algorítmica (Big-O)
1. Introducción a los Algoritmos
Un algoritmo es un conjunto de instrucciones bien definidas que resuelven un problema o realizan una tare
Características de un Algoritmo:
- Claridad: Debe ser preciso y no ambiguo.
- Eficiencia: Debe ejecutarse en el menor tiempo y con el menor uso de recursos posible.
- Generalidad: Debe poder aplicarse a una variedad de problemas.
- Corrección: Debe producir resultados esperados para todas las entradas posibles.
2. Búsqueda en Algoritmos
Los algoritmos de búsqueda se utilizan para encontrar un elemento dentro de una estructura de datos. Los
2.1. Búsqueda Lineal
Este algoritmo recorre secuencialmente la estructura hasta encontrar el elemento buscado.
Ejemplo en Python:
def busqueda_lineal(lista, objetivo):
for i in range(len(lista)):
if lista[i] == objetivo:
return i # Devuelve la posición del elemento
return -1 # Si no se encuentra
Complejidad: O(n)
2.2. Búsqueda Binaria
Requiere que la lista esté ordenada y reduce el espacio de búsqueda a la mitad en cada paso.
Ejemplo en Python:
def busqueda_binaria(lista, objetivo):
inicio, fin = 0, len(lista) - 1
while inicio <= fin:
medio = (inicio + fin) // 2
if lista[medio] == objetivo:
return medio
elif lista[medio] < objetivo:
inicio = medio + 1
else:
fin = medio - 1
return -1
Complejidad: O(log n)
... (continuación con los demás algoritmos y explicaciones) ...