53. Programación en C++ || Búsquedas || Búsqueda Secuencial en un arreglo

Programación ATS
31 May 201608:15

Summary

TLDREste video del curso de C++ introduce el bloque de búsquedas en arreglos, comenzando con la búsqueda secuencial. Se explica cómo funciona la búsqueda secuencial en arreglos desordenados, mostrando un ejemplo práctico con un arreglo de números enteros. Luego, se implementa el algoritmo en C++, utilizando un iterador y una variable de bandera para determinar si un dato está presente en el arreglo. El video también ilustra cómo la búsqueda secuencial es aplicable no solo a números sino también a caracteres, demostrando con un ejemplo de un arreglo de vocales. Finalmente, se menciona que la búsqueda secuencial es independiente del orden del arreglo y se alude al próximo video sobre la búsqueda binaria, que sí requiere un arreglo ordenado.

Takeaways

  • 😀 El video comienza con una introducción a un nuevo bloque del curso de C++, enfocado en técnicas de búsqueda en arreglos.
  • 🔍 Se presenta la búsqueda secuencial como el tema principal del primer video, una técnica de búsqueda sencilla y directa.
  • 📚 Se describe que la búsqueda secuencial implica recorrer un arreglo desordenado elemento por elemento para encontrar un dato específico.
  • 💡 Se ilustra cómo se utiliza un arreglo de números desordenados y cómo se busca un elemento específico, como el número cuatro, dentro de él.
  • 📝 Se menciona la necesidad de utilizar la biblioteca estándar de C++ y el espacio de nombres 'std' para implementar la búsqueda secuencial.
  • 🔑 Se introduce la variable 'bandera' para determinar si un dato se encuentra o no en el arreglo, inicializada en 'falso'.
  • 🔄 Se describe el uso de un bucle 'while' para iterar a través del arreglo, comparando cada elemento con el dato deseado.
  • 📌 Se aclara que si el dato se encuentra, la variable 'bandera' cambia a 'verdadero', y se interrumpe la búsqueda.
  • 📊 Se muestra cómo se utiliza la variable 'i - 1' para reportar la posición correcta del elemento encontrado en el arreglo.
  • 🚫 Se señala que si la 'bandera' sigue siendo 'falso' al final del bucle, significa que el dato no se encontró en el arreglo.
  • 🔠 Se demuestra que la búsqueda secuencial no solo se aplica a arreglos de números enteros sino también a arreglos de caracteres.
  • 🔄 Se ejemplifica la búsqueda de un carácter específico, como la vocal 'o', dentro de un arreglo de caracteres y cómo se reporta su posición.

Q & A

  • ¿Qué es la búsqueda secuencial y cómo funciona?

    -La búsqueda secuencial es un método de búsqueda en una lista desordenada donde se recorre cada elemento uno por uno hasta encontrar el dato deseado o hasta llegar al final de la lista. Funciona iniciando desde la posición cero y comparando cada elemento con el dato a buscar.

  • ¿Por qué se utiliza la variable 'bandera' en el algoritmo de búsqueda secuencial?

    -La variable 'bandera' se utiliza para indicar si el elemento buscado ha sido encontrado o no en el arreglo. Se inicializa en falso y se cambia a verdadero cuando se encuentra el dato.

  • ¿Cómo se declara y rellena un arreglo de tipo entero en el ejemplo del script?

    -Se declara un arreglo de tipo entero con el nombre 'a' y se rellena directamente en la declaración con los elementos 3, 4, 5, 1 y 5.

  • ¿Cuál es el propósito de la variable 'i' en el algoritmo de búsqueda secuencial?

    -La variable 'i' actúa como un iterador que recorre el arreglo de forma secuencial, accesando cada posición del arreglo para comparar con el dato a buscar.

  • ¿Cómo se implementa la condición de parada en el bucle while del algoritmo de búsqueda secuencial?

    -El bucle while se ejecuta mientras 'bandera' sea falso (es decir, mientras no se haya encontrado el elemento) y 'i' sea menor al número de elementos en el arreglo (en este caso, 5).

  • ¿Qué hace el condicional dentro del bucle while en el algoritmo de búsqueda secuencial?

    -El condicional dentro del bucle while verifica si el elemento actual en la posición 'i' es igual al dato a buscar. Si es cierto, cambia el valor de 'bandera' a verdadero y continua la iteración.

  • ¿Cómo se determina si el dato buscado no está en el arreglo?

    -Si después de recorrer todo el arreglo la 'bandera' sigue siendo falsa, significa que el dato no ha sido encontrado y se indica que el número a buscar no existe en el arreglo.

  • ¿Por qué se utiliza 'i - 1' para mostrar la posición del elemento encontrado en el arreglo?

    -Se utiliza 'i - 1' porque el iterador 'i' aumenta después de encontrar el elemento, por lo que al restar uno se obtiene la posición correcta del elemento encontrado en el arreglo.

  • ¿La búsqueda secuencial solo se puede utilizar con arreglos de números enteros?

    -No, la búsqueda secuencial no está limitada a arreglos de números enteros. También se puede utilizar con arreglos de caracteres, como se muestra al buscar una vocal en el arreglo de caracteres.

  • ¿Qué se aprenderá en el próximo video del curso según el script?

    -En el próximo video del curso se aprenderá sobre la búsqueda binaria, la cual requiere que el arreglo esté ordenado.

Outlines

00:00

🔍 Introducción a la Búsqueda Secuencial

El primer párrafo presenta el inicio de un nuevo bloque de lecciones sobre la búsqueda secuencial, una técnica utilizada para encontrar un elemento en un arreglo desordenado. Se describe cómo funciona la búsqueda secuencial, que consiste en revisar cada posición del arreglo desde la primera hasta encontrar el elemento deseado o determinar que no está presente. Se menciona la necesidad de un iterador para recorrer el arreglo y una variable 'bandera' para indicar si el elemento fue encontrado o no. El script incluye un ejemplo práctico donde se busca el número cuatro en un arreglo de números enteros y se detalla el proceso de implementación del algoritmo en C++, incluyendo la declaración de variables y la estructura del bucle while que se utiliza para la búsqueda.

05:01

📚 Explicación y Ejemplo de Búsqueda Secuencial

El segundo párrafo profundiza en el concepto de búsqueda secuencial, explicando la lógica detrás de la técnica y cómo se aplica en diferentes situaciones. Se ilustra con un ejemplo donde se busca el número uno en un arreglo, mostrando cómo el algoritmo funciona y cómo se puede adaptar para buscar diferentes tipos de datos, como números o caracteres. Además, se menciona el uso de la variable 'i - 1' para determinar la posición exacta del elemento encontrado en el arreglo. Se incluyen ejemplos de cómo se presenta el resultado al usuario, ya sea que el elemento se encuentra o no en el arreglo, y se enfatiza la flexibilidad de la búsqueda secuencial para arreglos ordenados o desordenados. Finalmente, se hace una referencia a la próxima lección, donde se abordará la búsqueda binaria, que requiere que el arreglo esté ordenado.

Mindmap

Keywords

💡Búsqueda secuencial

La búsqueda secuencial es un método de búsqueda en informática que implica recorrer un arreglo elemento por elemento desde el inicio hasta encontrar el dato deseado o hasta alcanzar el final del arreglo. Es una técnica sencilla y utilizada para arreglos desordenados. En el video, se utiliza para demostrar cómo encontrar un número dentro de un arreglo de números enteros desordenados, como el ejemplo donde se busca el número cuatro en el arreglo [3, 4, 5, 1, 5].

💡Algoritmo

Un algoritmo es un conjunto de pasos ordenados para resolver un problema o realizar una tarea. En el contexto del video, el algoritmo de búsqueda secuencial es implementado en C++ para encontrar un elemento en un arreglo. Se muestra cómo se estructura el código para llevar a cabo esta tarea, incluyendo la inicialización de variables y el uso de bucles y condiciones.

💡Arreglo

Un arreglo en programación es una estructura de datos que almacena una colección de elementos, usualmente del mismo tipo, en una secuencia lineal. En el video, se utiliza un arreglo desordenado de enteros para ilustrar cómo funciona la búsqueda secuencial, y también se menciona la posibilidad de buscar en arreglos de caracteres, como en el ejemplo de buscar una vocal en un arreglo de letras.

💡Iterador

Un iterador es una variable que se utiliza para recorrer los elementos de un arreglo o una colección de datos. En el script, la variable 'i' actúa como iterador para acceder a cada posición del arreglo durante la búsqueda secuencial, y se utiliza en el bucle while para determinar cuándo se ha encontrado el elemento o se ha revisado todo el arreglo.

💡Condicional

Un condicional en programación es una estructura que permite tomar decisiones basándose en si una cierta condición es verdadera o falsa. En el video, se utilizan condicionales para verificar si el elemento actual en la posición 'i' del arreglo es igual al dato buscado y para determinar si el dato se encontró o no al final del bucle de búsqueda.

💡Variable

Una variable es un contenedor que almacena información en un programa. En el video, se mencionan varias variables, como el arreglo 'A', el iterador 'i', la variable 'dato' que contiene el valor a buscar y la variable 'bandera' que indica si el dato se encontró o no en el arreglo.

💡Bucle While

Un bucle while es una estructura de repetición que ejecuta un bloque de código mientras una condición especificada se mantenga verdadera. En el script, el bucle while se utiliza para realizar la búsqueda secuencial, recorriendo el arreglo hasta que se encuentra el dato o se verifica que no está presente.

💡C++

C++ es un lenguaje de programación de propósito general, conocido por su eficiencia y capacidad para trabajar a nivel de bajo nivel. En el video, se utiliza C++ para implementar el algoritmo de búsqueda secuencial, mostrando cómo se declaran variables, se utilizan bucles y se manejan condiciones para encontrar un elemento en un arreglo.

💡Función main

La función main es el punto de entrada de un programa en C++ y es donde se inicia la ejecución del código. En el script, se menciona la función main como el lugar donde se escribe el código para la búsqueda secuencial, incluyendo la declaración de variables, el bucle de búsqueda y las condiciones de salida.

💡Búsqueda binaria

La búsqueda binaria es un algoritmo de búsqueda más eficiente que la búsqueda secuencial, especialmente para arreglos grandes y ordenados. A diferencia de la búsqueda secuencial, que recorre el arreglo de manera lineal, la búsqueda binaria divide la búsqueda en mitades. Aunque no se explica en detalle en el script, se menciona como un tema para un próximo video, sugiriendo que es una técnica diferente que requiere el arreglo esté ordenado.

Highlights

Introducción al nuevo bloque del curso de C++ centrado en técnicas de búsqueda secuencial y binaria.

Explicación de la búsqueda secuencial como la técnica más sencilla para encontrar un elemento en un arreglo desordenado.

Descripción de cómo funciona la búsqueda secuencial: comienza en la posición cero y avanza secuencialmente hasta encontrar el dato o el final del arreglo.

Implementación del algoritmo de búsqueda secuencial en C++ utilizando la librería estándar y el espacio de nombres std.

Declaración de un arreglo de tipo entero con elementos específicos para demostrar la búsqueda secuencial.

Uso de una variable iteradora para recorrer el arreglo y una variable 'dato' para almacenar el elemento a buscar.

Introducción de una variable 'bandera' de tipo carácter para indicar si el dato se encontró o no en el arreglo.

Estructura del bucle while para iterar el arreglo hasta encontrar el dato o determinar que no está presente.

Condicional dentro del bucle para comparar cada elemento del arreglo con el dato a buscar y actualizar la bandera.

Explicación del uso de 'i - 1' para indicar la posición correcta del elemento encontrado en el arreglo.

Compilación y ejecución del código de búsqueda secuencial, mostrando cómo se encuentra el número 4 en la posición 1 del arreglo.

Prueba de la búsqueda secuencial con un número que no se encuentra en el arreglo, como el número 10, y la confirmación de que no es encontrado.

Demostración de la búsqueda secuencial con un arreglo de caracteres, como vocales, y la búsqueda de la vocal 'o'.

Corrección de un pequeño error en el código y la compilación exitosa que muestra que la vocal 'o' se encuentra en la posición 2.

Prueba con una letra que no está en el arreglo, como la letra 'p', y la confirmación de que no se encuentra en el arreglo de caracteres.

Conclusión sobre la sencillez y utilidad de la búsqueda secuencial para arreglos desordenados y su aplicación con tipos de datos distintos a enteros.

Anuncio del próximo video que tratará sobre la búsqueda binaria, que requiere un arreglo ordenado.

Transcripts

play00:00

[Música]

play00:07

Hola y bienvenidos a este nuevo video

play00:08

del curso de c+ más bien en este video

play00:11

vamos a empezar un nuevo bloque que va a

play00:13

ser un bloque muy cortito nada más vamos

play00:14

a ver dos videos búsqueda secuencial y

play00:17

búsqueda binaria bien búsquedas en

play00:19

arreglos en este video vamos a comenzar

play00:21

por la búsqueda secuencial es la más

play00:23

sencilla y De qué trata esto más o menos

play00:25

de la búsqueda secuencial bien Nosotros

play00:28

hemos estado poniendo o viendo lo que

play00:30

son los arreglos verdad arreglos enteros

play00:32

arreglos de flotantes y arreglos de

play00:34

caracteres ahora qué tal si tenemos un

play00:36

arreglo A supongamos que tenga cinco

play00:38

elementos y este arreglo va a tener

play00:40

cinco números totalmente desordenados

play00:42

voy a poner a ver el tres el 4 el do el

play00:45

1o y el cinco perfecto Este es mi

play00:47

arreglo bien Ahora qué pasa si yo tengo

play00:50

una variable supongamos voy a llamarla

play00:52

dato y este dato va a almacenar el

play00:54

número cuatro por ejemplo y yo quiero

play00:57

darme cuenta si el número cuatro

play00:59

realmente pertenece a mi arreglo Cómo

play01:02

podría hacerlo bueno pues gracias a eso

play01:04

está la búsqueda secuencial bien la

play01:07

búsqueda secuencial lo que va a hacer es

play01:08

que va a buscar secuencialmente

play01:10

iniciando desde la posición cer0 la

play01:12

posición uno en adelante va a buscar

play01:14

todas las posiciones de Mi arreglo para

play01:16

ver si encuentra el dato que yo quiero

play01:18

ver si existe si lo encuentra Pues me va

play01:20

a salir perfecto y si no me encuentra

play01:22

también me va a decir que el dato no

play01:24

existe muy bien así de fácil es la

play01:26

búsqueda secuencial vamos a implementar

play01:28

ahora el algoritmo de esta en c+ bien lo

play01:30

primero que vamos a necesitar por

play01:32

supuesto como ya sabes es la librería

play01:33

eam Además vamos a utilizar la otra

play01:36

librería que hemos estado viendo que es

play01:38

la con. bien vamos a poner el usim

play01:41

namespace std y ahora el

play01:43

inain perfecto le pongo acá in Main y

play01:47

listo voy a poner acá además el gch que

play01:50

es la función que hemos estado poniendo

play01:51

para que el ejecutable no se cierre y el

play01:53

r return cer que termina con la función

play01:55

Main muy bien lo primero que necesitamos

play01:58

Entonces es un arreglo cierto voy a

play02:00

poner acá voy a declarar un arreglo de

play02:02

tipo entero y lo voy a poner de nombre a

play02:05

y voy a poner aquí mismo los elementos

play02:07

Bien voy a poner los mismos elementos

play02:09

que he puesto aquí Perfecto entonces ya

play02:12

está ese es mi arreglo de números además

play02:14

también yo necesito una variable I que

play02:18

va a ser el iterador que va a ir

play02:19

recorriendo poco a poco Mi arreglo

play02:21

además también necesito una variable

play02:22

dato que es donde voy a almacenar el

play02:25

dato o elemento que quiero buscar y

play02:27

además necesito de tipo carácter una

play02:29

variable llamada bandera bien que la voy

play02:31

a inicializar en falso es decir F muy

play02:34

bien y por qué estoy poniendo esta

play02:36

variable bandera bueno Esto me va a

play02:38

servir para darme cuenta si el número

play02:39

existe o no en el arreglo ya más o menos

play02:42

vamos dándonos cuenta cómo vamos a

play02:44

utilizarla una vez que estemos ya en el

play02:45

bucle que va a ir iterando bien bien lo

play02:48

primero que vamos a necesitar entonces

play02:50

voy a poner acá búsqueda secuencial

play02:52

porque vamos a comenzar con el algoritmo

play02:54

búsqueda secuencial lo primero que vamos

play02:56

a necesitar por supuesto es comenzar o

play02:59

inicializar mi iterador voy a

play03:01

inicializar lo en cero Y por qué lo

play03:03

inicializo porque voy a utilizar el

play03:04

bucle While bien en el cual yo lo

play03:07

primero que tengo que darme cuenta es

play03:09

que si bandera sigue siendo igual a

play03:12

falso Pues eso significa que no he

play03:15

encontrado el elemento todavía porque

play03:16

cuando lo encuentro voy a cambiar la

play03:18

verdadera o Entonces si sigue siendo

play03:19

falso Pues que se sigue ejecutando y

play03:22

además yo tengo que darme cuenta que el

play03:23

iterador tiene que ser menor a cinco que

play03:25

es el número de elementos ya que

play03:27

comienza desde cero Pues debe llegar

play03:28

hasta cuatro si cierto muy bien Ahora

play03:31

aquí adentro voy a poner El pequeño

play03:32

condicional que me va a ayudar a darme

play03:34

cuenta que si un determinado elemento es

play03:37

igual al dato Pero bueno Me está

play03:39

faltando el dato no lo había puesto acá

play03:40

voy a poner bien dato va a ser igual y

play03:44

le voy a poner a ver 4atro Perfecto

play03:46

entonces yo voy a darme cuenta aquí en

play03:48

el condicional que si a i es igual a

play03:52

dato si esto es igual entonces la

play03:54

bandera Pues cambia a verdadero Okay

play03:58

perfecto y nada más me faltaría un y más

play04:00

más para que mi contador vaya siguiendo

play04:02

iterando con todas las posiciones de Mi

play04:04

arreglo Perfecto entonces eso estaría

play04:06

toda la búsqueda secuencial muy bien

play04:09

perfecto lo siguiente que vamos a hacer

play04:11

aquí es poner un condicional en el cual

play04:14

Vamos a darnos cuenta que si bandera

play04:16

sigue siendo pues falso eso significaría

play04:19

que nunca entró en este condicional por

play04:21

lo tanto dato no ha sido encontrado en

play04:23

el arreglo bien Así que eso es lo que le

play04:25

vamos a decir aquí vamos a decir que el

play04:28

número a buscar no existe en el arreglo

play04:31

en el arreglo perfecto ahora en el caso

play04:35

no sea falso sino que sea verdadero

play04:40

bien significa que el dato ha sido

play04:43

encontrado en tal posición del arreglo

play04:46

cosa que vamos a decirle aquí mismo voy

play04:48

a decirle que el número ha sido

play04:52

encontrado encontrado en la posición en

play04:56

la posición del arreglo i -1 perfecto y

play05:00

por qué le pongo I - 1 me estarás

play05:03

preguntando aquí Alejandro por favor

play05:04

dime por qué le pones I - 1 muy bien Voy

play05:07

a explicarlo exactamente ahora el I -1

play05:10

lo pongo porque si te darás cuenta

play05:12

cuando comienza a buscar vamos a ver más

play05:14

o menos lo que va haciendo el algoritmo

play05:16

bien empieza valiendo cer0 por lo tanto

play05:19

a sub 0 es = a 3 esto es igual a dato

play05:24

pues no verdad no es igual a dato por lo

play05:27

tanto aumenta uno má más ahora está en

play05:30

esta parte a sub I es igual a dato por

play05:34

supuesto es cuatro Entonces lo he

play05:36

encontrado cambia verdadero pero Ey

play05:38

sigue con el I + más y sale a buscar los

play05:41

condicionales por lo tanto al ponerle I

play05:44

-1 lo que estoy haciendo es que estoy

play05:46

quitando el último iterador que acabo de

play05:48

aumentar para que solamente me salga la

play05:50

posición en la que se encuentra Recuerda

play05:52

que está en la posición uno pero aquí

play05:53

estaría aumentando dos veces bien al

play05:55

quitarle uno pues me saldría correcta la

play05:57

posición donde se encuentra mi elemento

play05:59

que estoy buscando muy bien Vamos a

play06:01

compilar a ver si no hay ningún tipo de

play06:02

error guardamos en el escritorio Y esto

play06:04

es búsqueda secuencial búsqueda

play06:07

secuencial y como ves me sale perfecto y

play06:09

me dice que el número ha sido encontrado

play06:11

en la posición número uno vamos a ver el

play06:13

número cuatro estaba posición cero

play06:15

posición uno bien muy bien perfecto

play06:18

Ahora sí vamos a bajar esto rápidamente

play06:21

vamos a dejarlo Aquí bien bien bien

play06:23

vamos a poner otro dato supongamos el

play06:25

número uno bien Vamos a compilar de

play06:27

nuevo y compila y me dice que el número

play06:29

ha sido encontrado en la posición número

play06:30

tres veamos 0 1 2 3 correcto ha sido

play06:34

encontrado en la posición número tres

play06:35

Ahora qué pasa si yo le pongo 10 Bueno

play06:38

pues no debe encontrarlo como V me sale

play06:40

que el número a buscar no existe en el

play06:42

arreglo Pues por supuesto porque está

play06:43

recorriendo todo el arreglo y se está

play06:45

dando cuenta que el número pues no

play06:46

existe muy bien así de sencillo es la

play06:49

búsqueda secuencial además esta búsqueda

play06:51

secuencial no solamente sirve para

play06:52

entero sino que además también sirve

play06:54

para buscar caracteres vamos a ver un

play06:55

pequeño ejemplo rápidamente Aquí voy a

play06:57

cambiar aquí esto a tipo char y voy a

play07:00

poner a ver las vocales la e la i la

play07:05

o la a y la u perfecto ahora el dato a

play07:11

buscar pues ya no va a ser de tipo

play07:14

entero sino que va a ser de tipo

play07:15

carácter perfecto y acá en el dato le

play07:18

voy a poner Pues a ver voy a buscar la

play07:21

vocal o perfecto bien Vamos a buscarla a

play07:24

ver si la encuentra compilamos y me sale

play07:27

un pequeño error simplemente me faltaba

play07:28

una coma listo compilamos de nuevo y

play07:30

bien me sale que el número bueno en este

play07:32

caso es la vocal ha sido encontrada en

play07:34

la posición dos bien Vamos a ver 0 1 2

play07:37

perfecto lo he encontrado bien Vamos a

play07:38

probar con una letra que no esté en este

play07:41

arreglo por ejemplo la letra p vamos a

play07:43

compilar y me sale que la letra a buscar

play07:46

no existe en el arreglo por supuesto la

play07:48

letra p no existe en mi arreglo de

play07:50

caracteres muy bien así de sencillo es

play07:52

la búsqueda secuencial esto nos sirve

play07:54

para buscar determinados elementos

play07:56

dentro de un arreglo de números Okay el

play07:58

arreglo puede estar ordenado o

play08:00

desordenado como tú quieras muy bien

play08:02

entonces en el siguiente video vamos a

play08:04

ver lo que es la búsqueda binaria en el

play08:05

cual Sí necesitas que la arreglo esté

play08:07

ordenado bien nos vemos en el próximo

play08:09

video entonces Pero recuerda que si

play08:11

puedes imaginarlo puedes programarlo

play08:13

hasta luego

Rate This

5.0 / 5 (0 votes)

Related Tags
Búsqueda SecuencialC++AlgoritmosProgramaciónArreglosDesordenadosTutorialEjemplosVariablesCondicionalesBinaria
Do you need a summary in English?