5 algoritmos de búsqueda y ordenamiento en PSeInt

5 algoritmos de búsqueda y ordenamiento en PSeInt con vectores: búsqueda secuencial, binaria, burbuja, selección e inserción, explicados paso a paso.


Los algoritmos de búsqueda y ordenamiento en PSeInt son una excelente forma de practicar vectores, ciclos, condicionales y comparaciones. En esta guía vemos cinco métodos clásicos aplicados sobre vectores usando posiciones desde 1.

Antes de comenzar, si necesitás repasar vectores, podés ver nuestros 20 ejercicios resueltos de PSeInt con vectores.

Índice

  1. Búsqueda secuencial
  2. Búsqueda binaria
  3. Ordenamiento burbuja
  4. Ordenamiento por selección
  5. Ordenamiento por inserción

1. Búsqueda secuencial

La búsqueda secuencial recorre el vector desde el primer elemento hasta encontrar el valor buscado o llegar al final. Es simple y funciona aunque el vector no esté ordenado.

Algoritmo BusquedaSecuencial
    Definir numeros, i, buscado, posicion Como Entero
    Definir encontrado Como Logico
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Escribir "Ingrese el valor a buscar:"
    Leer buscado

    encontrado <- Falso
    posicion <- 1

    Mientras posicion <= 5 Y NO encontrado Hacer
        Si numeros[posicion] = buscado Entonces
            encontrado <- Verdadero
        Sino
            posicion <- posicion + 1
        FinSi
    FinMientras

    Si encontrado Entonces
        Escribir "Valor encontrado en la posicion ", posicion
    Sino
        Escribir "El valor no se encuentra en el vector"
    FinSi
FinAlgoritmo

Ventaja: no necesita que los datos estén ordenados.

Desventaja: en el peor caso debe recorrer todo el vector.

2. Búsqueda binaria

La búsqueda binaria es más eficiente, pero requiere que el vector esté ordenado. En cada paso compara el valor buscado con el elemento central y descarta la mitad del vector.

Algoritmo BusquedaBinaria
    Definir numeros, buscado, izquierda, derecha, medio, posicion Como Entero
    Definir encontrado Como Logico
    Dimension numeros[8]

    numeros[1] <- 2
    numeros[2] <- 5
    numeros[3] <- 8
    numeros[4] <- 12
    numeros[5] <- 16
    numeros[6] <- 20
    numeros[7] <- 25
    numeros[8] <- 30

    Escribir "Ingrese el valor a buscar:"
    Leer buscado

    izquierda <- 1
    derecha <- 8
    encontrado <- Falso

    Mientras izquierda <= derecha Y encontrado = Falso Hacer
        medio <- Trunc((izquierda + derecha) / 2)

        Si numeros[medio] = buscado Entonces
            encontrado <- Verdadero
            posicion <- medio
        Sino
            Si buscado < numeros[medio] Entonces
                derecha <- medio - 1
            Sino
                izquierda <- medio + 1
            FinSi
        FinSi
    FinMientras

    Si encontrado Entonces
        Escribir "Valor encontrado en la posicion ", posicion
    Sino
        Escribir "El valor no se encuentra en el vector"
    FinSi
FinAlgoritmo

Importante: si el vector no está ordenado, la búsqueda binaria no garantiza un resultado correcto.

3. Ordenamiento burbuja

El método burbuja compara elementos vecinos y los intercambia cuando están en el orden incorrecto. Después de cada pasada, los valores mayores van quedando al final del vector.

Algoritmo OrdenamientoBurbuja
    Definir numeros, i, j, auxiliar Como Entero
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Para i <- 1 Hasta 4 Hacer
        Para j <- 1 Hasta 5 - i Hacer
            Si numeros[j] > numeros[j+1] Entonces
                auxiliar <- numeros[j]
                numeros[j] <- numeros[j+1]
                numeros[j+1] <- auxiliar
            FinSi
        FinPara
    FinPara

    Escribir "Vector ordenado:"

    Para i <- 1 Hasta 5 Hacer
        Escribir numeros[i]
    FinPara
FinAlgoritmo

Es uno de los métodos más fáciles de comprender, aunque no suele ser la mejor opción para grandes cantidades de datos.

4. Ordenamiento por selección

El método de selección busca el menor valor de la parte no ordenada del vector y lo coloca en la posición correspondiente.

Algoritmo OrdenamientoSeleccion
    Definir numeros, i, j, posicionMenor, auxiliar Como Entero
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Para i <- 1 Hasta 4 Hacer
        posicionMenor <- i

        Para j <- i + 1 Hasta 5 Hacer
            Si numeros[j] < numeros[posicionMenor] Entonces
                posicionMenor <- j
            FinSi
        FinPara

        Si posicionMenor <> i Entonces
            auxiliar <- numeros[i]
            numeros[i] <- numeros[posicionMenor]
            numeros[posicionMenor] <- auxiliar
        FinSi
    FinPara

    Escribir "Vector ordenado:"

    Para i <- 1 Hasta 5 Hacer
        Escribir numeros[i]
    FinPara
FinAlgoritmo

Selección realiza menos intercambios que burbuja, aunque igualmente requiere muchas comparaciones.

5. Ordenamiento por inserción

El método de inserción toma cada elemento y lo coloca en la posición correcta dentro de la parte del vector que ya está ordenada.

Algoritmo OrdenamientoInsercion
    Definir numeros, i, j, actual Como Entero
    Dimension numeros[5]

    Para i <- 1 Hasta 5 Hacer
        Escribir "Ingrese el valor ", i, ":"
        Leer numeros[i]
    FinPara

    Para i <- 2 Hasta 5 Hacer
        actual <- numeros[i]
        j <- i - 1

        Mientras j >= 1 Y numeros[j] > actual Hacer
            numeros[j+1] <- numeros[j]
            j <- j - 1
        FinMientras

        numeros[j+1] <- actual
    FinPara

    Escribir "Vector ordenado:"

    Para i <- 1 Hasta 5 Hacer
        Escribir numeros[i]
    FinPara
FinAlgoritmo

Inserción suele funcionar muy bien cuando el vector es pequeño o ya está casi ordenado.

Comparación rápida

Algoritmo Tipo Requiere datos ordenados Idea principal
Búsqueda secuencial Búsqueda No Recorrer elemento por elemento
Búsqueda binaria Búsqueda Sí Dividir el rango de búsqueda a la mitad
Burbuja Ordenamiento No Comparar elementos vecinos
Selección Ordenamiento No Buscar el menor y colocarlo en su posición
Inserción Ordenamiento No Insertar cada elemento en la parte ya ordenada

¿Cuál conviene usar?

Para aprender lógica de programación, los cinco métodos son muy útiles. La búsqueda secuencial es la más simple para empezar. Si los datos ya están ordenados, la búsqueda binaria permite encontrar valores mucho más rápido. Entre los métodos de ordenamiento, burbuja es el más fácil de visualizar, mientras que selección e inserción permiten practicar otras estrategias de recorrido e intercambio.

Seguí practicando PSeInt

También podés practicar con nuestros 20 ejercicios de vectores, los 20 ejercicios de ciclos y condicionales y los ejercicios básicos resueltos en PSeInt.


¿Te sirvió este contenido? ☕

Si esta guía te ayudó, podés apoyar a Club Programador con el monto que quieras. Tu aporte ayuda a mantener el contenido gratuito y a seguir publicando nuevos ejercicios.

🇦🇷 Apoyar desde Argentina

☕ Invitame un café con Mercado Pago

🌎 Apoyar desde otro país

☕ Apoyar con PayPal


Descubre más desde Club Programador

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario

Descubre más desde Club Programador

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo