Saltar al contenido
EjemplosEnglishEspacio →

Búsqueda lineal

Busca un nombre en una lista sin importar mayúsculas o minúsculas.

Nivel
Intermedio
Conceptos:
Entrada y salida
Arreglos
Mientras
Texto
Abrir en Codoritmo

Ejecuta, modifica y depura este ejemplo en el navegador.

Lo que aprenderás

Un Mientras recorre el arreglo y se detiene apenas encuentra el nombre. Mayusculas convierte ambos textos para compararlos sin importar cómo se escribieron.

Código

linear-search.psc · 27 líneas
Algoritmo BusquedaLineal    Definir nombres, buscado Como Caracter    Definir i, posicion Como Entero    Dimension nombres[6]    nombres[1] <- "Ana"    nombres[2] <- "Bruno"    nombres[3] <- "Carla"    nombres[4] <- "Diego"    nombres[5] <- "Luis"    nombres[6] <- "Sofía"    Escribir "¿A quién buscas?"    Leer buscado    posicion <- 0    i <- 1    // Se detiene en cuanto lo encuentra    Mientras i <= 6 Y posicion = 0 Hacer        Si Mayusculas(nombres[i]) = Mayusculas(buscado) Entonces            posicion <- i        FinSi        i <- i + 1    FinMientras    Si posicion > 0 Entonces        Escribir nombres[posicion], " está en la posición ", posicion, "."    SiNo        Escribir buscado, " no está en la lista."    FinSiFinAlgoritmo

Diagrama de flujo

Cada bloque del diagrama corresponde a una instrucción del código.

Algoritmo BusquedaLinealSíNoSíNoSíNoAlgoritmo BusquedaLinealAlgoritmo BusquedaLinealDefinir nombres, buscado Como CaracterDefinir nombres, buscado ComoCaracterDefinir i, posicion Como EnteroDefinir i, posicion ComoEnteroDimension nombres[6]Dimension nombres[6]nombres[1] <- "Ana"nombres[1] <- "Ana"nombres[2] <- "Bruno"nombres[2] <- "Bruno"nombres[3] <- "Carla"nombres[3] <- "Carla"nombres[4] <- "Diego"nombres[4] <- "Diego"nombres[5] <- "Luis"nombres[5] <- "Luis"nombres[6] <- "Sofía"nombres[6] <- "Sofía"Escribir "¿A quién buscas?"Escribir "¿A quién buscas?"Leer buscadoLeer buscadoposicion <- 0posicion <- 0i <- 1i <- 1Mientras i <= 6 Y posicion = 0 Haceri <= 6 Y posicion =0Si Mayusculas(nombres[i]) = Mayusculas(buscado) EntoncesMayusculas(nombres[i]) =Mayusculas(buscado)posicion <- iposicion <- ii <- i + 1i <- i + 1Si posicion > 0 Entoncesposicion > 0Escribir nombres[posicion], " está en la posición ", posicion, "."Escribir nombres[posicion], "está en la posición ",posicion, "."Escribir buscado, " no está en la lista."Escribir buscado, " no está enla lista."FinAlgoritmoFinAlgoritmo

Ejemplo de ejecución

Esto muestra el programa al ejecutarlo. Las respuestas escritas por el usuario aparecen resaltadas.

¿A quién buscas?Respuesta del usuario: luisLuis está en la posición 5.

Complejidad

Cuánto trabajo y memoria necesita según la cantidad de datos (n).

Complejidad
CasoCosto
MejorO(1)
PromedioO(n)
PeorO(n)
MemoriaO(1)

Desafío

Si el nombre no está, ofrece agregarlo al final de la lista.

Ver pista

Necesitarás un arreglo más grande con Dimension y una variable que cuente cuántos nombres hay.

Abrir en Codoritmo
  • Números romanos

    Convierte un número entre 1 y 3999 a números romanos.

    Avanzado
  • Juego del ahorcado

    Adivina una palabra secreta letra por letra con seis errores permitidos.

    Avanzado
  • Lista de compras

    Agrega productos a una lista que crece hasta que escribas FIN.

    Avanzado