Fundamentos: Ordenamiento y búsqueda
Aprende algoritmos de ordenación y búsqueda, imprescindibles cuando se trabaja con información y es necesario consultrar partes de la misma en programación con lenguajes de desarrollo Aprende estructuras de datos en programación para almacenar información
Aprende Fundamentos GRATIS y certifícateEl ordenamiento y la búsqueda son procesos fundamentales en la programación, ya que permiten organizar y localizar información de manera más eficiente dentro de un conjunto de datos. Estas operaciones son clave en el desarrollo de aplicaciones con gran volumen de información y aportan una base sólida para el estudio de algoritmos más complejos.
La técnica de ordenamiento más tradicional es el Bubble Sort, que compara elementos adyacentes y los intercambia si están en el orden equivocado. En PSeInt, se podría representar así:
Algoritmo BubbleSort
Definir lista[5] Como Entero
Para i = 1 Hasta 5 Con Paso 1 Hacer
Escribir "Introduce un número:"
Leer lista[i]
FinPara
Para i = 1 Hasta 4 Con Paso 1 Hacer
Para j = 1 Hasta 4 Con Paso 1 Hacer
Si lista[j] > lista[j + 1] Entonces
Aux = lista[j]
lista[j] = lista[j + 1]
lista[j + 1] = Aux
FinSi
FinPara
FinPara
Escribir "Lista ordenada:"
Para i = 1 Hasta 5 Con Paso 1 Hacer
Escribir lista[i]
FinPara
FinAlgoritmo
En Python, el Insertion Sort es otro método de ordenación que ubica cada elemento en su posición correcta, insertándolo dentro de la parte ya ordenada de la lista:
def insertion_sort(lista):
for i in range(1, len(lista)):
valor_actual = lista[i]
posicion = i
while posicion > 0 and lista[posicion - 1] > valor_actual:
lista[posicion] = lista[posicion - 1]
posicion -= 1
lista[posicion] = valor_actual
return lista
numeros = [5, 2, 8, 1, 9]
ordenados = insertion_sort(numeros)
print("Lista ordenada:", ordenados)
La búsqueda lineal consiste en recorrer todos los elementos de una colección hasta encontrar el valor buscado o llegar al final de la lista. Para conjuntos pequeños o casos puntuales, este método puede resultar práctico si se combina con un editor como Visual Studio Code y su terminal para realizar pruebas rápidas.
En Python, un sencillo ejemplo de búsqueda lineal sería:
def busqueda_lineal(lista, objetivo):
for i in range(len(lista)):
if lista[i] == objetivo:
return i
return -1
datos = [10, 23, 51, 4, 18]
indice = busqueda_lineal(datos, 4)
print("Índice encontrado:", indice)
La búsqueda binaria, por otro lado, requiere que la lista esté previamente ordenada y funciona dividiendo el espacio de búsqueda en mitades. Esto incrementa la eficiencia en comparación con la búsqueda lineal cuando el volumen de datos es considerable.
Un ejemplo de búsqueda binaria en Python es:
def busqueda_binaria(lista, objetivo):
inicio = 0
fin = 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
datos_ordenados = [1, 3, 5, 7, 9]
resultado = busqueda_binaria(datos_ordenados, 5)
print("Índice encontrado:", resultado)
La implementación de métodos de ordenamiento y búsqueda en pseudocódigo con PSeInt ofrece claridad en la lógica, lo que facilita la comprensión de cada paso antes de codificar en un lenguaje formal. Esto reduce errores y ayuda a asimilar los conceptos de forma más sólida.
Para optimizar los resultados, se recomienda analizar la complejidad de cada algoritmo y considerar el tamaño de los datos a procesar. Cada método de ordenamiento y búsqueda presenta ventajas y limitaciones que conviene estudiar al diseñar una solución eficiente.
En proyectos profesionales, contar con un editor moderno como Visual Studio Code, con extensiones para depurar y analizar el rendimiento, permite detectar mejoras en la lógica de los algoritmos e integrar prácticas que favorezcan la mantenibilidad del código.
Lecciones de este módulo de Fundamentos
Lecciones de programación del módulo Ordenamiento y búsqueda del curso de Fundamentos.
Ejercicios de programación en este módulo de Fundamentos
Evalúa tus conocimientos en Ordenamiento y búsqueda con ejercicios de programación Ordenamiento y búsqueda de tipo Test, Puzzle, Código y Proyecto con VSCode.