Universidad Central del Ecuador Ingeniería, Ingeniería, Ciencias Físicas y Matemáticas Matemáticas
Tema: Tema: Algoritmos Algoritmos de búsueda
Integrantes: !essica Flores Edison Mendo"a $yron Macas !enni%er !urado Mario &uintana Ale(and Ale(andra ra )uerr )uerrer ero o
Investigadora #igitador #igitador Investigadora 'rogramador Coord Coordina inador dora a
*
INDICE Introducc Introducción. ión........... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ......................................... .............................. 2 Objetivos........................................................................................................................3 General: General:........... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ..................... .......................... ................ 3 Especificos:....................................................................................................................3 Desarroll Desarrollo:..... o:............... ..................... ..................... ..................... ..................... ..................... ..................... ..................... ....................................... ............................ 4 Búsqueda secuencial.....................................................................................................4 !ejoras en la eficiencia de la búsqueda secuencial......................................................4 Eje"plo de búsqueda secuencial:.................................................................................# Búsqueda secuencial con centinela...............................................................................# Búsqueda secuencial en $............................................................................................% Búsqueda secuencial en &isual Basic..........................................................................'' Búsqueda secuencial en ()&).....................................................................................'4 *erra"ienta de video !irilliss )ction...........................................................................'% $onclusi $onclusiones: ones:........... ..................... ..................... ..................... ..................... ..................... ..................... ..................... .................................... .......................... '+ ,eco"endaciones:......................................................................................................'Biblioraf/a:..................................................................................................................20
+
INTRODUCCIÓN 1a recuperación de la infor"ación es una de las aplicaciones "s i"portantes de las co"putadoras est relacionada con las tablas para consultas loo5up6. Estas tablas contienen una cantidad de infor"ación que se al"acena en for"a de listas de parejas de datos por eje"plo un diccionario con una lista de palabras 7 definiciones un catloo con una lista de libros de infor"tica una lista de estudiantes 7 sus notas etc8 en todos estos casos es necesario con frecuencia buscar un ele"ento en una lista.
9no 9no de los los "to "todo dos s para para real reali; i;ar ar esta esta búsq búsque ueda da tene tene"o "os s el alo alori rit" t"o o secuencial su estructura es aquella en la que una acción instrucción6 siue a otra en secuencia las tareas se suceden de tal "odo que la salida de una es la entrada de la siuiente 7 as/ sucesiva"ente
OBJETIVOS GENERAL: ' $ono onocer sobre bre los los alo lorit rit"os "os de búsq úsqued ueda para ara "ejo "ejora rarr nues uestro tro desarrollo "ejora"iento en la prora"ación 7 facilitar la vida del ser
ESPECIFICOS: ' De"ostrar De"ostrar de de una "anera "anera "u7 sencilla sencilla la búsqueda búsqueda en secuen secuenciale ciales s por vectores nu"ricos o de otro tipo. 2 9tili;ar 9tili;ar esta esta clase clase de alorit alorit"o "o de búsque búsqueda da secuen secuencial cial para para la soluci solución ón de proble"as. 3 ,eali; ,eali;ar ar las presen presentac tacion iones es de )lo )lorit rit"os "os de búsque búsqueda da en pre;i pre;i 7 en po>erpoint para una "ejor co"prensión del te"a. 4 Grab Grabar ar un vide video o del del alo alori rit" t"o o de búsq búsque ueda da secu secuen enci cial al en $ para para conocer el funciona"ientodel prora"a.
-
DESARROLLO:
Búsqueda secuencia ?upo ?upon na" a"os os una una list lista a de ele" ele"en ento tos s al"a al"ace cena nado dos s en un vect vector or arr arra7 a7 unidi"ensional6. El "todo "s sencillo de buscar buscar un ele"ento en un vector es e=plorar secuencial"ente el vector o dic
?i se encu encuen entra tra el ele" ele"en ento to
buscado visuali;ar un "ensaje si"ilar a @Ain de búsquedaC en caso contrario visuali;ar @Ele"ento no e=iste en la lista. li sta. En otras palabras la búsqueda búsqueda secuencial secuencial co"para cada ele"ento del vector con el valor deseado
!e"#$as en a e%iciencia de a &úsqueda secuencia secuencia '( !ues)$e# de acces# Este "todo consiste en observar que tan frecuente"ente se solicita cada reistro 7 ordenarlos de acuerdo a las probabilidades de acceso detectadas.
*( !#+i,ien)# -acia e %$en)e Este Este esq esque"a ue"a consi onsist ste e en que la lis lista de reis eistr tro os se reor reor anic anice en din"ica"ente. $on este "todo cada ve; que búsqueda de una llave sea e=itosa el reistro correspondiente se "ueve a la pri"era posición de la lista 7 se recorren una posición
.( T$ans/#sici0n Este es otro esque"a de reorani;ación din"ica que consiste en que cada ve; que se lleve a cabo una búsqueda e=itosa el reistro correspondiente se interca"bia con el anterior. $on este procedi"iento entre "s accesos tena el reistro "s rpida"ente avan;ara
.
transposición es que no per"ite que el requeri"iento aislado de un reistro ca"bie de posición todo el conjunto de reistros. De
1( O$dena,ien)# 9na for"a de reducir el nú"ero de co"paraciones esperadas cuando
E"e,/# de &úsqueda secuencia:
?e
tiene
un
vector
)que
contiene
n
ele"entos
nu"ricos
( n ) >¿ 1 ( A [ 1 ] , A [ 2 ] , A [ 3 ] , … , A [ n ] ) 7 se desea buscar un ele"ento dado t. ?i el ele"ento t se encuentra visuali;ar un "ensaje FEle"ento encontradoF 7 otro que dia osición:. ?i e=iste e=iste n ele"en ele"entos tos se requer requerirn irn co"o co"o "edia "edia nH2 co"par co"parac acion iones es para para encontrar un deter"inado ele"ento. En el caso "s desfavorable se necesitaran n co"paraciones.
Búsqueda secuencia c#n cen)inea 9na "anera "anera "u7 efica; efica; de reali;a reali;arr una búsque búsqueda da secuen secuencia ciall consis consiste te en "odific "odificar ar los alori alorit"o t"os s anteri anteriore ores s utili;a utili;ando ndo un ele"en ele"ento to centin centinela ela.. Este Este ele"ento se area al vector vector final del "is"o. "is"o. El valor del ele"ento centinela centinela es el del del aru"e aru"ento nto.. El propós propósito ito de este este ele"en ele"ento to centin centinela ela ) n'6 es sinificar que la búsqueda sie"pre tendr =ito el ele"ento ) n'6 sirve co"o centinela 7 se asina el valor de t antes de iniciar búsqueda . en cada
/
paso se evita la co"paración de i con J 7 por consiuiente este alorit"o sea preferible a los "todos anteriores concreta"ente el "todo 4 si el /ndice alcan;a el valor n' supondr/a que el aru"ento no pertenece al vector oriinal 7 en consecuencia la búsqueda no tiene =ito K
?i el vecto ectorr est est ord orden enad ado o no no es es nec neces esar ario io reco recorr rrer erlo lo co"p co"ple leta ta"e "ent nte. e.
K
En cuan cuanto to el el valo valorr busc buscad ado o es es enc encon ontr trad ado o se se pue puede de fina finali li;a ;arr el rec recor orri rido do
7 en el "o"ento en que aparece un valor "a7or que el buscado ta"bin se puede detener la ejecución. K
)l aplicar esto al alorit"o de búsqueda secuencial se obtiene el
alorit"o de búsqueda con centinela.
S2n)esis ,3)#d# secuencia cen)inea K
$o"o se puede apreciar la bús búsqueda secuencial con centinela no
precisa recorrer el vector por co"pleto. K
El caso caso "ejo "ejorr se se pro produ duc ce cua cuand ndo o el el ele ele"e "ent nto o a busc buscar ar es el pri" pri"er ero o del del
vector o "enor que todos los ele"entos del vector. Entonces la co"plejidad es O'6. K
El caso caso peor peor se da cuan cuando do el ele" ele"en ento to a bus busca carr es es el el últ últi" i"o o del del vect vector or o
"a7or que todos los ele"entos del vector. Entonces la co"plejidad es On6. K
or or tr tr"i "ino no "edi "edio o el alo alori rit" t"o o e"p e"ple lea a del del orde orden n de de nH2 nH2 iter iterac acio ione nes s por por
lo cual la co"plejidad del caso "edio ta"bin ser/a On6.
0
Búsqueda secuencia en C 11Ingresamos 2ibrerías 3include4stdio567 3include4conio567 11#eclaramos variables globales ue van a servir en todo el c8digo intnumero, vector9**, dimension, i, ;osiciones9**, au<= 11Funci8n ;ara generar los valores de la lista void valores >?@ ;rint%>Ingrese ;rint%>Ingrese el número de elementos de la lista: ?= scan%>Bd, dimension?= 112a dimensi8n sirve ;ara delimitar cuantos elementos va a tener la lista ;rint%>Dn?= %or >i*=i4dimension=i? 11Usamos este loo; ;ara ingresar los valores de cada elemento del vector @ ;rint%>GIngrese ;rint%>GIngrese el elemento Bd de la l a lista: , i+?= scan%>Bd, vector9i?= H ;rint%>Dn?= H 11Funci8n de búsueda e im;resi8n voidbusueda >?@ au<*=11Iniciali"amos la variable %or >i*=i4dimension=i?@ 11Usamos este loo; ;ara reali"ar la búsueda i% >numerovector9i?@ >numerovector9i?@ 11e reali"a una com;araci8n de un valor con cada elemento del vector, cuando se encuentra el número se reali"a una acci8n en este caso ue im;rima la ;osici8n del valor5 valor5 ;rint%>El número se encuentra en la ;osici8n: ?= 11Im;rimimos la ;osici8n del vector5 vector5 ;rint%>BdDn, i+?= H else@ au<au<+= 11Este else lo usamos como un acumulador ue ;osteriormente usaremos usaremos ;ara reali"ar una com;araci8n H H i% >dimensionau@ 11Con la variable au< dada un valor ;odemos 6acer una com;araci8n ;ara reali"ar una acci8n en el caso de ue no eDnEl número no está en lista5?= H H 11Funci8n ;rinci;al intmain>?@ J
11Encabe"ado ;rint%>DtAlgoritmos de $usueda ecuencialDnDn?= ;rint%>2a busueda secuencial se reali"a com;arando uno ;or unoDncada elemento de una lista5DnDn?= ;rint%>E(em;loDnDn?= ;rint%>GKeali"ar ;rint%>GKeali"ar un ;rograma en el cual se veriLue la ;ertenencia de un númeroDna una lista e im;rimir a su ;osici8n en ella5DnDn?= 112lamamos a la %unci8n valores valores>?= ;rint%>Ingrese ;rint%>Ingrese el número a buscar: ?=11Ingresamos el número ue vamos a buscar scan%>Bd, numero?= 112lamamos a la %unci8n búsueda búsueda>?= ;rint%>DtDtDnDn)KACIADnDn?= 11acemos ue el ;rograma se detenga system>;ause?= 11damos el valor de retorno de la %unci8n main ;ara acabar return *= H
Esta Esta es la pri" pri"er era a pant pantal alla la que que nos nos apar aparec ece e al abri abrirr el pro prora ra"a "a est est esperando que inrese"os la di"ensión del vector o ele"entos de la lista
9na ve; inresada la di"ensión nos va a pedir que inrese"os los valores de cada ele"ento del vector o lista.
N
inresa"os todos los ele"entos de la lista el prora"a nos pide que $uando inresa"os inrese"os el nú"ero que desea"os buscar.
Despus de inresar el ele"ento que se desea buscar
O
2
Lue el nú"ero nú"ero este este vari varias as veces veces en lista. lista.
3
Lue el nú"ero nú"ero no se se encue encuentr ntre e en la list lista. a.
+*
Búsqueda secuencia en Visua Basic ub $usueda>? PAlgoritmo de busueda secuencialP P#eclaramos variablesP #imnumero, vector>**?, dimension, i, ;osiciones>**?, au< As Integer PEncabe"adoP Msg$o< >Algoritmos de $usueda ecuencial vbCr2% 2a busueda secuencial se reali"a com;arando uno ;or uno cada elemento de una lista5?
Msg$o< >E(em;lo vbCr2% GKeali"ar GKeali"ar un ;rograma en el cual se veriLue la ;ertenencia de un númeroDna una lista e im;rimir a su ;osici8n en ella5?
++
P)eneramos los valores de la listaP dimension In;ut$o<>Ingrese In;ut$o<>Ingrese el numero de elementos de la lista: li sta: ?
i * For i * To dimension G + vector>i? In;ut$o<>GIngrese In;ut$o<>GIngrese el elemento de la lista: ? Qe
PIngresamos el numero ue vamos a buscarP numero In;ut$o<>Ingrese el número a buscar: ?
PIniciali"amos la variableP au< * P$usueda e im;resi8nP +
PUsamos este loo; ;ara reali"ar la busuedaP For i * Todimension G + Pe reali"a una com;araci8n de un valor con cada elemento del vector, cuando se encuentra el número se reali"a una acci8n en este caso ue im;rima la ;osici8n del valor5P I% numero vector>i? T6en PIm;rimimos la ;osici8n del vectorP Msg$o< >El numero numero se encuentra en la ;osici8n: >i +??
Else PEste else lo usamos como un acumulador ue ;osteriormente usaremos usaremos ;ara reali"ar una com;araci8nP au< au< + End I% QeEl numero numero no está en lista5?
EndI% Msg$o< >)KACIA?
End ub
Búsqueda secuencia en JAVA
+-
11Algoritmosdebusuedasecuencial 11!ava esunlengua(eorientado a ob(etos;orlouetenemosuecrearuno;araus ob(etos;orlouetenemo suecrearuno;arausarlasdi%erentescla arlasdi%erentesclases ses 11Im;ortamosunaclaseuenossirve;araingres 11Im;ortamosunaclase uenossirve;araingresardatos;orteclad ardatos;orteclados os import (ava5util5canner= AlgoritmosRdeRbusuedaRsecuencial cuencial @ publicclassAlgoritmosRdeRbusuedaRse arg?@ ?@ publicstaticvoid main >tring9 arg 11#eclaramoslosatributos, ueen C o en Sbsellaman variables 11#eclaramoslosatributos, numero,, dimension dimension,, i, au< au<== intnumero 11#eclaramosvectores vector newint9**= int9 vector 11Creamosunob(eto;arausarlaclase 11Creamosunob(eto;arausarlaclas e canner y todossusmetodos canner scan scan newcanner>ystem5in?= 11Encabe"ado ystem5out 5;rintln>DtAlgoritmos 5;rintln>DtAlgoritmos de $usueda ecuencialDn?= ecuencialDn ?= ystem5out 5;rintln>2a 5;rintln>2a busueda secuencial se reali"a com;arando uno ;or unoDncada elemento de una lista5DnDn?= lista5DnDn?= ystem5out 5;rintln>E(em;loDnDn 5;rintln>E(em;loDnDn?= ?= ystem5out 5;rintln>GKeali"a 5;rintln>GKeali"arr un ;rograma en el cual se veriLue la ;ertenencia de un númeroDna una lista e im;rimir a su ;osici8n en ella5DnDn ella5DnDn?= ?= ystem5out 5;rintln>Ingrese 5;rintln>Ingrese el numero de elementos de la lista: ?= ?= 112adimensi8nsirve;aradelimitarcuantoselementosva 112adimensi8nsirve;aradelimitarcuantosel ementosva a tenerlalista dimension dimension scan scan5ne?= 5ne?=
11Usamosesteloo;;araingresarlosvaloresdecad 11Usamosesteloo;;araingresa rlosvaloresdecadaelementodel aelementodel vector >i* = i4dimension dimension = = i+?@ for >i ystem5out 5;rintln>GIngrese 5;rintln>GIngrese el elemento > >ii+? +? de la lista: ?= ?= vector99iscan vector scan5ne?= 5ne?= H
+.
11Ingresamos el numerouevamos a buscar ystem5out 5;rintln>Ingrese 5;rintln>Ingrese el número a buscar: ?= ?= numero numero scan scan5ne?= 5ne?=
11Iniciali"amosla variable au<*= au< *= 11Usamosesteloo;;arareali"arlabusueda >i*=i *=i4dimension dimension==i+?@ for >i 11ereali"aunacom;araci8ndeun valor concadaelementodel vector, 11ereali"aunacom;araci8ndeun cuandoseencuentra el número se 11reali"a una accion en este caso ue im;rima la ;osicion del valor valor55 >numero vector vector99i?@ if >numero 11Im;rimimos la ;osici8n del vector5 vector5 ystem5out 5;rintln>El 5;rintln>El numero se escuentra en la ;osicion: >i+??= H
+/
else@
11Este else lo usamos como un acumulador ue ;osteriormente usaremos ;ara reali"ar una com;araci8n au<+= au< += H H 11Con la variable au< dada un valor ;odemos 6acer una com;araci8n ;ara reali"ar una acci8n en el caso de ue no edimension au< au@ ?@ if >dimension ystem5out 5;rintln>DnElnumero 5;rintln>DnElnumero no esta en lista5?= lista5?= H
ystem5out 5;rint>DtDtDnDn)KACIADnDn 5;rint>DtDtDnDn)KACIADnDn?= ?= H H
+0
4e$$a,ien)a de +ide# !i$iissAc)i#n
1a
Ven)a"as: o o o o o o o
Acil instalación Graba v/deo audio 7 saca capturas $ódec propio de alto rendi"iento E=portación a Aaceboo5 MouNube etc. Benc<"ar5in de rendi"iento A?6 !odo de rabación erfect &ideo !atc< )celeración de v/deo v/a v/a G9
Des+en)a"a: o
1a versión de prueba aade una "arca de aua
Esta
C#ncusi#nes:
+J
'. Este "todo de búsqueda es "u7 lento. ?i los valores del vector no son únicos para encontrar todos los valores con un valor particular se requiere buscar en todo el arrelo para encontrar todas las coincidencias. 2. ?i el ele"ento buscado con frecuencia no est al principio del arrelo la cantida cantidad d pro"ed pro"edio io de co"pa co"parac racion iones es au"ent au"enta a notabl notable"e e"ente nte dado dado que que se requerir "s tie"po para encontrar el ele"ento. 3. Defini Definitiv tiva"e a"ente nte la búsque búsqueda da secuen secuencia ciall es el "todo "todo "enos "enos eficie eficiente nte porque se basa en co"parar el valor que se desea buscar con cada uno de los valores del arrelo. 4. 1a búsqueda secuencial es de ran utilidad cuando se tienen datos no ordenados #. Esta búsqueda es sencilla de i"ple"entar e intuitiva 7a que consiste en buscar buscar de "anera secuenci secuencial al un ele"ento ele"ento es decir preuntar preuntar si el ele"ento ele"ento buscad buscado o es iual iual al pri"er pri"ero o seund seundo o tercer tercero o 7 as/ as/ suces sucesiva iva"en "ente te
Rec#,endaci#nes:
+N
'. Es el "ejor "todo de búsqueda para reistros desordenados 7 revisa nodo posición6 por nodoposición6 nodoposición6 sin brincar ninuno ninuno es "u7 seuro6. 2. Jo es reco"endable usar este "todo cuando se tiene una ran cantidad de datos. 3. ?e reco"ienda que si se encuentra encuentra el ele"ento buscado buscado se debe debe visuali;ar un "ensaje si"ilar a Ain de Búsqueda o Ele"ento encontrado 7 otro que dia posiciónP en caso contrario visuali;ar un "ensaje si"ilar a Ele"ento no e=is e=iste te en la 1ist 1ista. a. Esto Esto para para que que se ten tena a una una "ejo "ejorr apar aparie ienc ncia ia del del prora"a reali;ado.
Bi&i#5$a%2a:
+O
'. (o7anes 1. 200+6. Aunda"entos de prora"ación )lorit"os estructura de datos 7 objetos. Espaa: !cGra> Q *ill. 2. Deitel . 7 Deitel *. 20'26. $o"o prora"ar en (ava. 3. (o7anes )uilar 1. 20'06. rora"ación en $ $ (ava 7 9!1. !=ico: !cGra> Q *ill.
*