Programación en C++ #12 | Búsqueda Secuencial o Lineal

Programaccion by Miraby
6 Oct 202010:48

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

00:00

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

05:05

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

10:08

🚀 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

La búsqueda lineal, también conocida como secuencial, es el método que se utiliza para encontrar un valor objetivo dentro de una lista. Se trata de una técnica sencilla que consiste en comparar secuencialmente cada elemento de la lista con el valor objetivo hasta que se encuentra o se revisan todos los elementos. En el video, este concepto es central ya que se utiliza para demostrar cómo funciona el algoritmo de búsqueda en un arreglo.

💡Algoritmo

Un algoritmo es una serie de pasos o procedimientos para resolver un problema o ejecutar una tarea. En el contexto del video, el algoritmo de búsqueda lineal es el procedimiento que se sigue para encontrar un elemento específico dentro de un arreglo, mostrando su importancia en la programación y la computación.

💡Arreglo

Un arreglo en programación es una estructura de datos que almacena una colección de elementos, usualmente del mismo tipo. En el video, el arreglo es el lugar donde se buscan elementos y es a través de este que se ilustra cómo funciona la búsqueda lineal.

💡Condición

En programación, una condición es una instrucción que verifica si una cierta afirmación es verdadera o falsa para controlar el flujo del programa. En el script, la condición se usa para verificar si el elemento en la posición actual del arreglo es el valor objetivo deseado.

💡Bucle

Un bucle es una estructura de control de flujo que permite repetir un bloque de código hasta que cierta condición se cumpla. En el video, el bucle se utiliza para recorrer cada elemento del arreglo en la búsqueda lineal hasta que se encuentra el valor objetivo o se revisan todos los elementos.

💡Puntero

Un puntero es una variable que almacena la dirección de memoria de otra variable. En el script, el puntero se utiliza para acceder a los elementos del arreglo durante la búsqueda, lo cual es fundamental para el funcionamiento del algoritmo de búsqueda lineal.

💡Bandera

Una bandera en programación es una variable que se utiliza para indicar el estado de algo, como si se ha encontrado un elemento o no. En el video, la bandera se enciende cuando se encuentra el elemento buscado, lo que permite salir del bucle y optimizar el algoritmo.

💡Optimización

La optimización es el proceso de mejorar el rendimiento o la eficiencia de un algoritmo o programa. En el script, se menciona la importancia de optimizar el algoritmo de búsqueda lineal para que no consuma tantos recursos, como el procesador o la RAM, especialmente cuando se trabaja con grandes cantidades de datos.

💡Palabra reservada

Las palabras reservadas son términos que tienen un significado especial en un lenguaje de programación y no pueden ser utilizados como nombres de variables o funciones. En el video, se hace referencia a 'break' como una palabra reservada que, aunque podría usarse para salir del bucle, el presentador sugiere evitar su uso para fortalecer el algoritmo propio.

💡Comentarios

Los comentarios en programación son líneas de código que no se ejecutan y se utilizan para explicar el código o para dejar anotaciones. Aunque no directamente relacionado con la funcionalidad del algoritmo, en el script se menciona la importancia de dejar comentarios para que otros puedan entender el código y para futura referencia.

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

play00:00

[Música]

play00:06

la búsqueda lineal o secuencial ok vamos

play00:09

a ver qué dice wikipedia sobre la

play00:11

búsqueda lineal o secuencial

play00:14

mira la búsqueda lineal o secuencial

play00:16

según wikipedia es un método para

play00:18

encontrar un valor objetivo dentro de

play00:19

una lista está compuesto secuencialmente

play00:22

cada elemento de la lista por el valor

play00:24

objetivo hasta que se encontrado hasta

play00:26

que todos los elementos hayan sido

play00:27

comparados qué quiere decir esto y

play00:29

resumido o dicho en tu lenguaje que es

play00:33

una búsqueda bueno es cuando tú quieres

play00:36

encontrar algo lo buscas no y qué

play00:39

secuencial es muy sencillo de explicar

play00:42

mira

play00:44

tenemos un arreglo

play00:46

y book y queremos encontrar un elemento

play00:49

de ese arreglo empezamos por la posición

play00:51

cero y decimos es este elemento que está

play00:56

en la posición cero en el elemento que

play00:59

estoy buscando si es si lo encontraste

play01:01

si es no seguimos a la siguiente

play01:03

posición repetimos la misma consulta la

play01:07

misma condición el mismo if oye el

play01:10

elemento que está en la posición 1 es el

play01:13

elemento que estoy buscando si es si lo

play01:16

encontraste si no continúa la siguiente

play01:19

y así sucesivamente hasta que encuentres

play01:21

el valor o simplemente acabe el arreglo

play01:24

me entiendes por ejemplo en el tutorial

play01:28

pasado que fue hace ocho meses sin

play01:32

disculpen por eso pusimos el ejemplo de

play01:35

los zapatos y las cajas por ejemplo

play01:37

vamos a suponer que yo quiero encontrar

play01:39

el par de zapatos azules que como vemos

play01:42

está en la posición 3 no en la caja 3

play01:45

entonces cómo se comportaría en la

play01:47

búsqueda secuencial muy sencillo

play01:49

diríamos

play01:51

el zapato azul está en la caja 1 como

play01:55

vemos no es cierto entonces no está

play01:57

pasamos a la siguiente caja está el

play02:00

zapato azul en la caja 2 no está pasamos

play02:04

a la siguiente está el zapato azul en la

play02:08

caja 3 pues sí está entonces finalizamos

play02:11

el algoritmo ahora para verlo mucho

play02:15

mejor vamos a pasar a la práctica como

play02:17

ya sabemos

play02:18

esta es la estructura que se debe tener

play02:20

para empezar un programa en c + + no eso

play02:24

ya está explicado en los antiguos tituto

play02:26

viales que como repito fueron subido

play02:28

hace 8 meses pero eso lo de menos lo

play02:30

vuelves a ver en listo ok primero vamos

play02:33

a empezar declarando el arreglo en donde

play02:35

vamos a poner todos los elementos que

play02:37

también ya lo explicamos en los

play02:39

tutoriales pasados entonces empezamos a

play02:41

aclarar los números

play02:43

arreglo el arreglo

play02:46

vamos a poner solamente 10 elementos

play02:50

para no hacerlo muy grande entonces

play02:52

vamos a empezar a llenar

play02:55

el arreglo vamos a empezar con la

play02:57

posición 0 igual a 0 y menor que 10 y

play03:03

más más

play03:07

pedimos ingresé

play03:10

número

play03:12

lo concatenados con allí para que sea

play03:14

mucho más bonito

play03:19

y doble se lee con el seguir ok número

play03:24

arreglo en la posición y hasta ahora no

play03:29

estamos viendo absolutamente nada sobre

play03:31

el algoritmo de búsqueda lineal primero

play03:34

estamos llenando el arreglo porque no

play03:36

vamos a buscar algo en ningún arreglo

play03:38

vacío no tiene mucho sentido no entonces

play03:41

con esto estamos llegando a la reunión y

play03:44

recordando el tutorial pasado

play03:46

así se llenaba un arreglo ahora cómo

play03:49

vemos los elementos de ese arreglo es

play03:52

muy sencillo copiamos de nuevo el bucle

play03:56

con la diferencia que aquí ya no va a

play03:59

haber un sillín sino lo vamos a mostrar

play04:01

directamente en el segundo

play04:06

el número i

play04:11

y lo vamos a mostrar vamos a poner un en

play04:14

el para que salga mucho más ordenado

play04:17

vamos a compilar tuve un pequeño

play04:20

problema con el antivirus pero vamos a

play04:22

cumplir

play04:23

el individuo que uso salta por todo y

play04:27

cuando llega un vídeo de verdad se queda

play04:28

callado

play04:30

ahí está llenamos el arreglo y abajo lo

play04:32

mostramos hasta ahí estamos recordando

play04:35

lo de la clase pasada ahora vamos a ver

play04:37

cómo se comporta el algoritmo y vamos a

play04:39

implementar el algoritmo vamos a empezar

play04:42

primero si queremos buscar un elemento

play04:44

dentro del arreglo tenemos que saber qué

play04:46

elemento buscar entonces vamos a

play04:48

declarar al elemento a buscar y en este

play04:51

número a buscar lo vamos a inicializar

play04:56

en cero y vamos a pedir el número

play04:59

ingrese número a buscar

play05:04

vamos a leer el número que vamos a

play05:07

buscar número a buscar y empieza lo

play05:11

divertido

play05:13

este es el bucle que recorre nuestro

play05:17

arreglo no lo vamos a copiar nuevamente

play05:20

y empezamos como dije si no si el número

play05:24

no está en la posición 1 debe estar en

play05:27

en la 2 si no ven a 3 en la 4 y así

play05:30

sucesivamente entonces lo que

play05:31

necesitamos es capturar el valor que

play05:35

tiene el arreglo en esa posición como

play05:38

hacemos eso muy sencillo

play05:41

hacemos esto en la posición y porque

play05:45

estamos recorriendo el arreglo con

play05:47

puntero y lo comparamos con el número a

play05:50

gustar y listo y aquí hay un tema

play05:55

bastante importante digamos podemos

play05:58

podemos hacer

play06:01

que nos muestra un arreglo entonces nos

play06:03

dice elementos encontrados porque porque

play06:06

si entra esta condición quiere decir que

play06:07

realmente existe

play06:09

pero puede ser que solamente querramos

play06:12

identificar decir oye aquí está entonces

play06:17

vamos a utilizar una bandera que es una

play06:19

bandera pues una bandera de simplemente

play06:20

es una variable que nos indica algún

play06:22

estado por ejemplo vamos a declarar la

play06:25

bandera y la bandera la vamos a pagar es

play06:28

decir va a inicializar en cero está

play06:30

apagada y si la bandera se enciende

play06:33

quiere decir que se encontró el arreglo

play06:39

en el número vocal perdón entonces

play06:42

decimos si la bandera se mantuvo apagada

play06:44

quiere decir que el elemento no existió

play06:47

dentro del arreglo ok el elemento no

play06:54

existe caso contrario quiere decir que

play06:59

el elemento fue encontrado

play07:03

ah

play07:06

fue encontrado

play07:10

a ver vamos a probar

play07:13

a esta cosa

play07:15

los ojos un poquito posiblemente van a

play07:19

cerrar y vamos a compilar ok a ver por

play07:22

ejemplo 56 89

play07:27

ah

play07:29

por ejemplo vamos a buscar el número 8

play07:33

el elemento fue encontrado en pocas

play07:37

palabras entro a esta condición pero que

play07:39

hay un tema digamos que podemos

play07:41

perfeccionar este algoritmo que pasa

play07:45

llegamos que en este caso 10 elementos

play07:48

pues no se nota mucho la diferencia pero

play07:50

imagínense que no son 10 son 10.000

play07:53

20.000 30.000 40.000 empresas que

play07:57

trabajan con miles de mil con miles de

play07:59

usuarios miles de información en donde

play08:01

tenemos que buscar a un elemento dentro

play08:05

de esos miles de información entonces

play08:08

acá hay un punto importante que es

play08:10

cuánto consume tu algoritmo vamos a

play08:13

tratar de optimizar lo vamos a tratar de

play08:15

optimizar el proceso para que digamos no

play08:19

consuma tantos recursos de tu

play08:20

computadora no de tu procesador de tu

play08:22

ram de todo eso

play08:24

entonces cuando lo encuentre dice que

play08:28

nuestra bandera se enciende no se

play08:31

enciende acá lo podemos ver entonces

play08:33

vamos a añadir una condición más para

play08:36

que una vez que esa bandera se encienda

play08:38

simplemente ya no se ejecuta el bucle

play08:41

digamos que la condición ya no ya no nos

play08:44

deje entrar de nuevo al bucle porque ya

play08:47

lo encontró o sea ya no tenemos que

play08:49

buscar más ya lo encontró entonces

play08:51

simplemente ponemos esto qué quiere

play08:56

decir qué

play08:59

perdón 0 que quiere decir que únicamente

play09:01

para entrar al bucle si no se recorre la

play09:04

arcilla aún no se recorre todo el

play09:06

arreglo o si la bandera es igual a cero

play09:08

es decir que si la bandera está en uno

play09:10

que se encuentra el elemento pues la

play09:14

bandera va a ser 1 y la condición dice

play09:16

que bandera es igual a 0 entonces ya no

play09:18

va a cumplir con la condición y

play09:20

simplemente va a terminar también

play09:22

podemos utilizar la palabra reservada

play09:25

break pero como consejo les digo que

play09:29

utilicen sus propios algoritmos

play09:31

porque porque no sabemos que hay detrás

play09:33

de break entonces

play09:36

ustedes mismos fortalezcan su producto

play09:39

su propio algoritmo por buenas prácticas

play09:42

ok entonces como dije no se va a notar

play09:46

mucho porque son 10 elementos pero

play09:48

imaginen que son 10 mil 30 mil ahí si

play09:49

van a notar la diferencia

play09:56

entonces vamos a buscar el 5 por ejemplo

play09:59

el 5 está en la posición 1 entonces ya

play10:02

no tiene sentido que busquemos las 8

play10:03

restantes para eso está esta condición

play10:07

ok ahora en resumido que es la búsqueda

play10:12

de secuencial pues en tu propio lenguaje

play10:17

es que si no está la posición uno está

play10:19

en dos sino en la tres y no cuatro sino

play10:21

y así sucesivamente hasta que encuentres

play10:23

al elemento o simplemente ya no haya más

play10:26

que recorrer ok y bueno a lo que siempre

play10:29

como siempre y por siempre digo te

play10:33

pareció complicado pues yo creo que no

play10:35

pero igual házmelo saber en la cajita de

play10:37

comentarios ya saben que yo soy mirad y

play10:39

esto es programa acción en donde

play10:40

hablamos de programación en tu lenguaje

play10:42

hasta la próxima que pero no sea en ocho

play10:45

meses

play10:45

hasta la próxima

Rate This

5.0 / 5 (0 votes)

Étiquettes Connexes
Búsqueda SecuencialProgramaciónAlgoritmosOptimizaciónEjemplo PrácticoTutorial C++Desarrollo de SoftwareEducación TécnicaCódigo OptimizadoBucles en ProgramaciónEstrategias de Búsqueda
Besoin d'un résumé en anglais ?