Programación en C++ #12 | Búsqueda Secuencial o Lineal
Summary
TLDREl guion del video explica el concepto de búsqueda lineal o secuencial, un método para encontrar un valor dentro de una lista comparando secuencialmente cada elemento. Se ilustra con un ejemplo práctico de buscar un par de zapatos, y luego se implementa en C++, mostrando cómo llenar y recorrer un arreglo para encontrar un elemento específico. Se discuten técnicas para optimizar el proceso, como usar una bandera para detener la búsqueda una vez que se encuentra el elemento, mejorando así la eficiencia del algoritmo.
Takeaways
- 🔍 La búsqueda lineal o secuencial es un método para encontrar un valor dentro de una lista, comparando secuencialmente cada elemento hasta encontrar el objetivo o finalizar la lista.
- 📝 Se describe la búsqueda secuencial como un proceso sencillo de entender, donde se inicia la búsqueda en la posición cero del arreglo y se avanza hasta encontrar el elemento o el final del arreglo.
- 👢 Se da un ejemplo práctico con zapatos y cajas para ilustrar cómo se llevaría a cabo la búsqueda secuencial, encontrando los zapatos azules en la posición 3.
- 💻 Se menciona la importancia de tener una estructura de programa en C++ y se sugiere revisar tutoriales anteriores para entender cómo se llena un arreglo.
- 🔢 Se describe el proceso de llenado del arreglo con 10 elementos para no hacerlo muy grande y se detalla cómo se solicita la entrada de números para rellenar el arreglo.
- 🔑 Se destaca la necesidad de declarar y solicitar el número a buscar dentro del arreglo antes de iniciar el proceso de búsqueda.
- 🔄 Se implementa un bucle que recorre el arreglo, capturando y comparando cada posición con el número a buscar, utilizando una bandera para indicar si se encontró el elemento.
- 🚦 Se discute la importancia de optimizar el algoritmo para reducir el consumo de recursos, sugiriendo la utilización de una bandera para detener la búsqueda una vez que se encuentra el elemento.
- 🛑 Se sugiere la posibilidad de utilizar la palabra reservada 'break' para salir del bucle una vez encontrado el elemento, pero se recomienda fortalecer el propio algoritmo para mejores prácticas.
- 📉 Se enfatiza que la optimización es crucial especialmente cuando se trata de grandes conjuntos de datos, donde la diferencia en rendimiento se nota significativamente.
- 🗣️ El script finaliza con una invitación a los espectadores a dejar sus comentarios y una promesa de futuras entregas del programa.
Q & A
¿Qué es la búsqueda lineal o secuencial según Wikipedia?
-La búsqueda lineal o secuencial es un método para encontrar un valor objetivo dentro de una lista, comparando secuencialmente cada elemento de la lista con el valor objetivo hasta que se encuentra o todos los elementos han sido comparados.
¿Cómo se describe el proceso de búsqueda secuencial en el script?
-El proceso de búsqueda secuencial se describe como comenzar desde la posición cero del arreglo y comparar cada elemento con el valor objetivo, moviendose secuencialmente a través del arreglo hasta encontrar el elemento o hasta el final del mismo.
¿Cuál es el ejemplo dado en el script para ilustrar la búsqueda secuencial?
-El ejemplo dado es buscar un par de zapatos azules que están en la posición 3 de un arreglo de cajas, donde se va comparando cada caja hasta encontrar el par de zapatos.
¿Cómo se implementa la búsqueda secuencial en un programa de C++ según el script?
-Se implementa declarando un arreglo, llenándolo con elementos, mostrando los elementos del arreglo y luego utilizando un bucle para recorrer el arreglo, comparando cada posición con el elemento a buscar y utilizando una bandera para indicar si el elemento fue encontrado.
¿Por qué es importante optimizar el algoritmo de búsqueda secuencial cuando se trabaja con grandes conjuntos de datos?
-Es importante optimizar el algoritmo de búsqueda secuencial para reducir el consumo de recursos como la CPU y la RAM, ya que en grandes conjuntos de datos, la búsqueda puede volverse muy costosa en términos de rendimiento.
¿Qué es una 'bandera' en el contexto del script y cómo se utiliza?
-Una 'bandera' es una variable que indica un estado específico en el algoritmo. En este caso, se utiliza para indicar si el elemento buscado se encontró en el arreglo; si la bandera se enciende, significa que el elemento fue encontrado.
¿Cómo se puede mejorar la eficiencia del algoritmo de búsqueda secuencial una vez que se encuentra el elemento?
-Se puede mejorar la eficiencia del algoritmo agregando una condición que detenga la ejecución del bucle una vez que se encuentre el elemento, evitando así la búsqueda innecesaria de elementos restantes en el arreglo.
¿Qué alternativa se menciona en el script para salir del bucle una vez que se encuentra el elemento?
-Se menciona la posibilidad de utilizar la palabra reservada 'break' para salir del bucle, pero se sugiere fortalecer el propio algoritmo para no depender de 'break' y mejorar las prácticas de programación.
¿Cuál es la estructura básica del bucle que se utiliza para la búsqueda secuencial en el script?
-La estructura básica del bucle es un ciclo 'for' que recorre el arreglo, capturando el valor de cada posición y comparándolo con el elemento a buscar, con la condición de que la bandera esté apagada, lo que indica que no se ha encontrado el elemento aún.
¿Por qué el script enfatiza la importancia de entender y mejorar el propio algoritmo de búsqueda secuencial?
-El script enfatiza la importancia de entender y mejorar el propio algoritmo para que los programadores puedan adaptarlo a sus necesidades específicas y optimizar su rendimiento, especialmente en situaciones donde se manejan grandes volúmenes de datos.
Outlines
🔍 Introducción a la Búsqueda Lineal
El primer párrafo presenta la técnica de búsqueda lineal, explicando que es un método para encontrar un valor dentro de una lista secuencial. Se describe el proceso de comparación de cada elemento de la lista con el valor objetivo hasta que se encuentra o se revisan todos los elementos. Se hace un llamado a la simplicidad de este método, comparando con el ejemplo de buscar un par de zapatos azules en una serie de cajas, ilustrando cómo se comportaría la búsqueda secuencial en esa situación.
📝 Implementación del Algoritmo de Búsqueda Lineal
El segundo párrafo se enfoca en la implementación práctica del algoritmo de búsqueda lineal en C++. Se describe el proceso de declaración e inicialización de un arreglo con 10 elementos y cómo se llenaría con valores. Luego, se introduce el concepto de bandera para indicar si el elemento buscado se ha encontrado o no, y se explica cómo se utiliza para optimizar el proceso de búsqueda, evitando la revisión de elementos una vez que se ha encontrado el objetivo. Se sugiere la mejora del algoritmo mediante la condición de parada temprana con la bandera, en lugar de recorrer todo el arreglo innecesariamente.
🚀 Optimización y Consideraciones Finales
El tercer párrafo concluye el tema de la búsqueda lineal enfocándose en su optimización y la importancia de su eficiencia, especialmente en contextos con grandes volúmenes de datos. Se resalta la diferencia que puede representar la optimización en situaciones de búsqueda en grandes conjuntos de información. El autor anima a los espectadores a reflexionar sobre la complejidad del tema y a compartir sus pensamientos en los comentarios, cerrando el video con un mensaje de despedida y un llamado a la próxima entrega del programa.
Mindmap
Keywords
💡Búsqueda lineal
💡Algoritmo
💡Arreglo
💡Condición
💡Bucle
💡Puntero
💡Bandera
💡Optimización
💡Palabra reservada
💡Comentarios
Highlights
La búsqueda lineal o secuencial es un método para encontrar un valor objetivo dentro de una lista.
El proceso de búsqueda lineal consiste en comparar secuencialmente cada elemento de la lista hasta encontrar el valor objetivo.
La explicación de cómo funciona la búsqueda secuencial con el ejemplo de buscar un par de zapatos azules en una serie de cajas.
La importancia de entender el concepto de búsqueda secuencial antes de implementar un algoritmo.
El proceso de llenar un arreglo con elementos para poder realizar una búsqueda secuencial.
La demostración de cómo mostrar los elementos de un arreglo en un programa de C++.
La declaración de un elemento a buscar y la inicialización de este con un valor para poder compararlo con los elementos del arreglo.
La implementación del bucle que recorre el arreglo para buscar el elemento deseado.
La utilización de una bandera (variable) para indicar si el elemento ha sido encontrado o no durante la búsqueda.
La importancia de optimizar el algoritmo de búsqueda para reducir el consumo de recursos de la computadora.
La adición de una condición para evitar que el bucle siga ejecutándose una vez que se ha encontrado el elemento.
El uso de la palabra reservada 'break' como una alternativa para salir del bucle una vez encontrado el elemento.
La discusión sobre la eficiencia del algoritmo de búsqueda secuencial en arreglos grandes y cómo la optimización afecta la performance.
La demostración práctica del algoritmo de búsqueda secuencial con un ejemplo de buscar el número 8 en un arreglo.
La importancia de entender y mejorar los algoritmos propios en lugar de depender de funciones predefinidas como 'break'.
El consejo de practicar y mejorar la implementación de algoritmos para fortalecer las habilidades de programación.
La reflexión final sobre la simplicidad del concepto de búsqueda secuencial y la invitación a los espectadores a compartir sus opiniones en los comentarios.
Transcripts
[Música]
la búsqueda lineal o secuencial ok vamos
a ver qué dice wikipedia sobre la
búsqueda lineal o secuencial
mira la búsqueda lineal o secuencial
según wikipedia es un método para
encontrar un valor objetivo dentro de
una lista está compuesto secuencialmente
cada elemento de la lista por el valor
objetivo hasta que se encontrado hasta
que todos los elementos hayan sido
comparados qué quiere decir esto y
resumido o dicho en tu lenguaje que es
una búsqueda bueno es cuando tú quieres
encontrar algo lo buscas no y qué
secuencial es muy sencillo de explicar
mira
tenemos un arreglo
y book y queremos encontrar un elemento
de ese arreglo empezamos por la posición
cero y decimos es este elemento que está
en la posición cero en el elemento que
estoy buscando si es si lo encontraste
si es no seguimos a la siguiente
posición repetimos la misma consulta la
misma condición el mismo if oye el
elemento que está en la posición 1 es el
elemento que estoy buscando si es si lo
encontraste si no continúa la siguiente
y así sucesivamente hasta que encuentres
el valor o simplemente acabe el arreglo
me entiendes por ejemplo en el tutorial
pasado que fue hace ocho meses sin
disculpen por eso pusimos el ejemplo de
los zapatos y las cajas por ejemplo
vamos a suponer que yo quiero encontrar
el par de zapatos azules que como vemos
está en la posición 3 no en la caja 3
entonces cómo se comportaría en la
búsqueda secuencial muy sencillo
diríamos
el zapato azul está en la caja 1 como
vemos no es cierto entonces no está
pasamos a la siguiente caja está el
zapato azul en la caja 2 no está pasamos
a la siguiente está el zapato azul en la
caja 3 pues sí está entonces finalizamos
el algoritmo ahora para verlo mucho
mejor vamos a pasar a la práctica como
ya sabemos
esta es la estructura que se debe tener
para empezar un programa en c + + no eso
ya está explicado en los antiguos tituto
viales que como repito fueron subido
hace 8 meses pero eso lo de menos lo
vuelves a ver en listo ok primero vamos
a empezar declarando el arreglo en donde
vamos a poner todos los elementos que
también ya lo explicamos en los
tutoriales pasados entonces empezamos a
aclarar los números
arreglo el arreglo
vamos a poner solamente 10 elementos
para no hacerlo muy grande entonces
vamos a empezar a llenar
el arreglo vamos a empezar con la
posición 0 igual a 0 y menor que 10 y
más más
pedimos ingresé
número
lo concatenados con allí para que sea
mucho más bonito
y doble se lee con el seguir ok número
arreglo en la posición y hasta ahora no
estamos viendo absolutamente nada sobre
el algoritmo de búsqueda lineal primero
estamos llenando el arreglo porque no
vamos a buscar algo en ningún arreglo
vacío no tiene mucho sentido no entonces
con esto estamos llegando a la reunión y
recordando el tutorial pasado
así se llenaba un arreglo ahora cómo
vemos los elementos de ese arreglo es
muy sencillo copiamos de nuevo el bucle
con la diferencia que aquí ya no va a
haber un sillín sino lo vamos a mostrar
directamente en el segundo
el número i
y lo vamos a mostrar vamos a poner un en
el para que salga mucho más ordenado
vamos a compilar tuve un pequeño
problema con el antivirus pero vamos a
cumplir
el individuo que uso salta por todo y
cuando llega un vídeo de verdad se queda
callado
ahí está llenamos el arreglo y abajo lo
mostramos hasta ahí estamos recordando
lo de la clase pasada ahora vamos a ver
cómo se comporta el algoritmo y vamos a
implementar el algoritmo vamos a empezar
primero si queremos buscar un elemento
dentro del arreglo tenemos que saber qué
elemento buscar entonces vamos a
declarar al elemento a buscar y en este
número a buscar lo vamos a inicializar
en cero y vamos a pedir el número
ingrese número a buscar
vamos a leer el número que vamos a
buscar número a buscar y empieza lo
divertido
este es el bucle que recorre nuestro
arreglo no lo vamos a copiar nuevamente
y empezamos como dije si no si el número
no está en la posición 1 debe estar en
en la 2 si no ven a 3 en la 4 y así
sucesivamente entonces lo que
necesitamos es capturar el valor que
tiene el arreglo en esa posición como
hacemos eso muy sencillo
hacemos esto en la posición y porque
estamos recorriendo el arreglo con
puntero y lo comparamos con el número a
gustar y listo y aquí hay un tema
bastante importante digamos podemos
podemos hacer
que nos muestra un arreglo entonces nos
dice elementos encontrados porque porque
si entra esta condición quiere decir que
realmente existe
pero puede ser que solamente querramos
identificar decir oye aquí está entonces
vamos a utilizar una bandera que es una
bandera pues una bandera de simplemente
es una variable que nos indica algún
estado por ejemplo vamos a declarar la
bandera y la bandera la vamos a pagar es
decir va a inicializar en cero está
apagada y si la bandera se enciende
quiere decir que se encontró el arreglo
en el número vocal perdón entonces
decimos si la bandera se mantuvo apagada
quiere decir que el elemento no existió
dentro del arreglo ok el elemento no
existe caso contrario quiere decir que
el elemento fue encontrado
ah
fue encontrado
a ver vamos a probar
a esta cosa
los ojos un poquito posiblemente van a
cerrar y vamos a compilar ok a ver por
ejemplo 56 89
ah
por ejemplo vamos a buscar el número 8
el elemento fue encontrado en pocas
palabras entro a esta condición pero que
hay un tema digamos que podemos
perfeccionar este algoritmo que pasa
llegamos que en este caso 10 elementos
pues no se nota mucho la diferencia pero
imagínense que no son 10 son 10.000
20.000 30.000 40.000 empresas que
trabajan con miles de mil con miles de
usuarios miles de información en donde
tenemos que buscar a un elemento dentro
de esos miles de información entonces
acá hay un punto importante que es
cuánto consume tu algoritmo vamos a
tratar de optimizar lo vamos a tratar de
optimizar el proceso para que digamos no
consuma tantos recursos de tu
computadora no de tu procesador de tu
ram de todo eso
entonces cuando lo encuentre dice que
nuestra bandera se enciende no se
enciende acá lo podemos ver entonces
vamos a añadir una condición más para
que una vez que esa bandera se encienda
simplemente ya no se ejecuta el bucle
digamos que la condición ya no ya no nos
deje entrar de nuevo al bucle porque ya
lo encontró o sea ya no tenemos que
buscar más ya lo encontró entonces
simplemente ponemos esto qué quiere
decir qué
perdón 0 que quiere decir que únicamente
para entrar al bucle si no se recorre la
arcilla aún no se recorre todo el
arreglo o si la bandera es igual a cero
es decir que si la bandera está en uno
que se encuentra el elemento pues la
bandera va a ser 1 y la condición dice
que bandera es igual a 0 entonces ya no
va a cumplir con la condición y
simplemente va a terminar también
podemos utilizar la palabra reservada
break pero como consejo les digo que
utilicen sus propios algoritmos
porque porque no sabemos que hay detrás
de break entonces
ustedes mismos fortalezcan su producto
su propio algoritmo por buenas prácticas
ok entonces como dije no se va a notar
mucho porque son 10 elementos pero
imaginen que son 10 mil 30 mil ahí si
van a notar la diferencia
entonces vamos a buscar el 5 por ejemplo
el 5 está en la posición 1 entonces ya
no tiene sentido que busquemos las 8
restantes para eso está esta condición
ok ahora en resumido que es la búsqueda
de secuencial pues en tu propio lenguaje
es que si no está la posición uno está
en dos sino en la tres y no cuatro sino
y así sucesivamente hasta que encuentres
al elemento o simplemente ya no haya más
que recorrer ok y bueno a lo que siempre
como siempre y por siempre digo te
pareció complicado pues yo creo que no
pero igual házmelo saber en la cajita de
comentarios ya saben que yo soy mirad y
esto es programa acción en donde
hablamos de programación en tu lenguaje
hasta la próxima que pero no sea en ocho
meses
hasta la próxima
Voir Plus de Vidéos Connexes
5.0 / 5 (0 votes)