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ícate

El 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.

Empezar curso de Fundamentos

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.