Está en la página 1de 12

E!

"#$%& M'%'(&) *$ I+,$+'$)-&


Mcal! Antonio "osé de Sucre#
$nidad Académica Santa Cruz

GRUP
GRUPOO : WILL
WILLY
Y CAL
CALVIMO
FERNANDO VIMONTES
NTES PADIL
CARDOZO ADILLA
LA
CASTAÑO
SBTTE. CAB. PABLO MARTINEZ
BRENDA MANSILLA CANIDO
SEMESTRE : 1° SEMESTRE

TEMA : MÉTODOS DE ORDENACIÓN Y


BUSQUEDA DE VECTORES.

DOCENTE : ING. KAREN CORRALES ERGUERO.

Santa Cruz, 06 / 06 / 2013


2 013

MÉTODOS DE ORDENACIÓN Y
Algoritmos y Métodos de Programación
BSQUEDA DE VECTORES
%os métodos de ordenamiento son algoritmos necesarios &ara 'ue luego
de ordenar, se &uedan (uscar datos de una manera muc)o m*s r*&ida y
e+ci
e+cien
ente
te a&
a&li
lica
cand
ndo
o di
dist
stin
inta
tass té
técn
cnic
icas
as!! -
-is
iste
ten
n .ar
.ario
ioss mé
métod
todos
os de
(s'ued
(s'u eda
a y or
orden
denac
ació
ión
n de .e
.ect
ctor
ores
es 'u
'ue
e .a
.ar
ran
an seg
segn
n su gr
grado
ado de
di+cultad y su acilidad de uso, sin em(argo, todos estos son a&licados
en cual'uier caso 2

MÉTODOS DE ORDENACIÓN

%a ordenación de arrays arreglos4 o .ectores, se denomina tam(ién


578AC958 98:8A; ya 'ue se almacena en la memoria interna de la
com&utadora de gran .elocidad y acceso aleatorio! %os métodos de
ordenación se di.iden en dos categoras

O)*$
O)*$+&
+&"'
"'/+
/+ *$ 0$
0$"(
"()$!, ta(
)$! a(llas
as;; este ti&o de ordenac
aciión es
denominado 578AC958 98:8A clasi+cación de los .alores de un
.ector segn el orden de memoria central, r*&ida!

O)*$
O)*$+&
+&"'
"'/+
/+ *$ &)"2
&)"2'0
'0!
!;tam
am(i
(ién
én dedeno
nomi
mina
nado
do 557
78A
8AC
C95
958
8
<:8A clasi+cación de los registros de un arc)i.o situado en un
so&orte e-terno, menos r*&ido!

• O)*$+&"'/+ '+($)+&.
Se lle.a a ca(o com&letamente en memoria &rinci&al, es
decir, todos los o(=etos 'ue se ordenan ca(en en la memoria
&rinci&al de la com&utadora!
• O)*$+&"'/+ $3($)+&.
8o ca
ca(e
(e to
toda
da la in
ino
orm
rmac
ació
ión
n en mem
memor
oria
ia &ri
&rinc
nci&
i&al
al y es
nece
necesar
sario
io oc
ocu&
u&ar
ar me
memo
mori
ria
a sec
secun
unda
dari
ria!
a! l or
orden
denam
amie
ient
nto
o

ocur
ocurre
re tr
tran
ans+
s+ri
rien
endo
do (l
(lo'
o'ue
uess de in
inor
orma
maci
ción
ón a me
memor
moria
ia

Algoritmos y Métodos de Programación


&rinci&al en donde se ordena el (lo'ue y este es regresado,
ya ordenado, a la memoria secundaria!
%os métodos directos de ordenación son
 Método de intercam(io de (ur(u=a!
 Método &or inserción!


Método
Método de
de selección!
S)ell!
 Método de >uic?sort!
 Método de Megasort!
3

• M4(* *$ B#)5#6&: l 5rdenamiento


5rdenamiento de @ur(u=a @u((le Sort en
inglés4 es un sencillo alg
algori
oritmo
tmo de or
ordena
denamie
miento
nto!! un
unci
cion
ona
a
re.isando cada elemento de la lista 'ue .a a ser ordenada con el
sigu
siguie
ient
nte,
e, in
inte
terc
rcam(
am(i*
i*nd
ndol
olos
os de &o
&osi
sici
ción
ón si es
est*
t*n
n en el or
orden
den

e'ui.ocado! s necesario re.isar .arias .eces toda la lista )asta


'ue no se necesiten m*s intercam(ios, lo cual signi+ca 'ue la lista
est* ordenada! ste algoritmo o(tiene su nom(re de la orma con
la 'ue su(en &or la lista los elementos durante los intercam(ios,
como si ueran &e'ueBas (ur(u=as!
7ado 'ue solo usa com&araciones &ara o&erar elementos, se lo
considera un algoritmo de com&aración, siendo el m*s sencillo de
im&
m&llem
emen
enta
tarr! Cons
Consiist
ste
e en com&
com&ar
arar
ar &arres
&a de elem
elemen
enttos
adyacen
adyacente
tess e in
inter
terca
cam(
m(ia
iarl
rlos
os en
entr
tre
e s )a
)ast
sta
a 'u
'ue
e es
estén
tén to
todo
doss
ordenados!

E67:

Se desea clasi+car el orden ascendente la lista o .ector

D0 1D D6 1E 3D 1 12 F

AG1H AG2H AG3H AGEH AGDH AG6H AGIH AGJH

%os &asos a dar son

Algoritmos y Métodos de Programación


1! Co
Com&
m&ar
arar
ar A1 y A2;A2; si est
est*n
*n en or
orde
den,
n, se man
manti
tien
ene
e co
como
mo est
est*n,
*n,
sino se intercam(ian entre s!
2! Se com&a
com&aranran los el
elemento
ementoss 2 y 3, se intercam(i
intercam(ian
an si es nec
necesario
esario!!
3! l &roceso
&roceso con
continua
tinua )a
)asta
sta 'ue cad
cadaa element
elementoo del .ect
.ector
or )aya sid
sidoo
com&arado con sus elementos adyacentes y se )ayan realizado los

intercam(ios necesarios!
ste método e-&resado en &seudocódigo seria as

7esde 9  )asta I )acer E

Si elemento G9H K elemento G9L1H entonces

9ntercam(iar elemento G9H, elemento G9L1H4

insi

indesde

Cada
Cada o&er
o&erac
ació
ión
n e-i
-ige
ge como
como mni
mnimo
mo nN1
nN1 co
com&
m&rro(
o(ac
acio
ione
ness y co
como
mo
m*-imo nN1 intercam(ios! %a o&eración total e-igir* nN14OnN14nN14Q2
intercam(ios de elementos!

M4(* *$ I+!$)"'/+: n este método lo 'ue se )ace es tener


una su(lista ordenada de elementos del arreglo e ir insertando el
resto en el lugar adecuado &ara 'ue la su(lista no &ierda el orden!
%a su(lista ordenada se .a )aciendo cada .ez mayor, de modo
'ue al +nal la lista entera 'ueda ordenada! Se lo conoce tam(ién
como el método de la (ara=a! ste método se (asa en
com&
com&ara
araci
cion
ones
es y de
des&
s&la
laza
zami
mien
ento
toss suc
suces
esi.
i.os
os!! l al
algo
gori
ritm
tmo
o de
clasi+cación
clasi+cac ión de un .ector
.ector - &ara 8 elem
elementos
entos se realiza
realiza con un
recorri
rido
do de todo el .ector y la inse serrción del elemenentto
corres&ondiente en el lugar adecuado! l recorrido se realiza desde
el segundo elemento al nNésimo!

Algoritmos y Métodos de Programación


l &seudocódigo de algoritmos se re&resentara de la siguiente
manera

7esde i )asta n )acer


//insertar - GiH en el lugar


//adecuado entre - G1H R - GiN1H
indesde
M4(
4(
* *$ S$
S$%$
%$"
""'
"'/+ ste
/+:: ste mé
méto
todo
do co
cons
nsis
iste
te en (u
(usc
scar
ar el
elemento m*s &e'ueBo del arreglo y &onerlo en &rimera &osición;
D
luego, entre los restantes, se (usca el elemento m*s &e'ueBo y se
coloca en segundo lugar, y as sucesi.amente )asta colocar el
ltimo elemento! %os &asos sucesi.os a dar son
1. Seleccionar el elemento menor de n elementos!
8. 9ntercam(iar dic)o elemento con el &rimero!
9. e&etir
e&etir est
estas
as o&eraci
o&eraciones
ones con los nN1 elemen
elementos
tos restan
restantes,
tes,

selecc
seleccio
ionan
nando
do el seg
segun
undo
do elem
element
ento,
o, cont
contin
inua
uarr co
con
n los
los nN2
nN2
elementos restantes )asta 'ue solo 'uede el mayor!

E67:

9nicio

7esde 9  1 )asta nN1 )acer

@uscar el elemento menor de - G9H, ! ! ! , - GnH e


intercam(iar con - G9H

indesde

in

%a (s'ueda e intercam(io se realiza n  1 .eces, ya 'ue 9 se incrementa


al +nal del (ucle! :am(ién se &ueden a&lizar als estructuras re&etiti.as
mientras y re&etir mientras en este método!

M4(*
M4(*
 S2$%%: s una me=ora del método de inserción directa,
S2$%%:

utilizado cuando el arreglo tiene un gran nmero de elementos,

Algoritmos y Métodos de Programación


llamado as &or su in.entor 7onald S)ell! n este método no se
com&ara a cada elemento con el de su iz'uierda, como en el de
inserción, sino con el 'ue est* a un cierto nmero de lugares
llamado salto4 a su iz'uierda! ste salto es constante, y su .alor
inicial es 8/2 siendo 8 el nmero de elementos, y siendo di.isión
entera4! Se .an dando &asadas )asta 'ue en una &asada no se
intercam(ie ningn elemento de sitio! ntonces el salto se reduce
a la mitad, y se .uel.e6n a dar &asadas )asta 'ue no se
intercam(ie ningn elemento, y as sucesi.amente )asta 'ue el
salto .ale 1!

M4(* Q#'"S)( ; *$ O)*$+&"'/+ R<='*&: $na técnica muy


&oderosa &ara el diseBo de algoritmos es 7i.idir &ara con'uistar!
ste método se le de(e estrictamente a Toare !%os algoritmos de
est
ste
e ti&o se carac actterizan &or estar diseB
eBad
ado
os siguiendo
estrictamente las siguientes ases

D'0'*') Se di.ide el &ro(lema en &artes m*s &e'ueBas!


C+>#'!(&) Se re
resuel
suel.en
.en re
recur
cursi.
si.amen
amente
te los &r
&ro(l
o(lema
emass
m*s c)icos!
C75'+&) %os &ro(lemas m*s c)icos de com(inan &ara
resol.er el grande!

%os algoritmos
algoritmos 'ue utili
utilizan
zan este &rinci&io son en la mayora de los
casos netamente recursi.os como es el caso de mergesort!

l algoritmo de Mergesort es un e=em&lo cl*sico de algoritmo 'ue


utiliza el &rinci&io de di.idir &ara con'uistar! Si el .ector tiene m*s
de dos elelem
eme
entos se lo di.ide en dos mitades, se in.oca
recursi.amente al algoritmo y luego se )ace una intercalación de
las dos mitades ordenadas!

Algoritmos y Métodos de Programación


l &rimer &aso es di.idir las listas en dos su(listas o su(.ectores y
un .alor de se&aración, siend o el .ector di.idido en 3 &artes
1! Su(.ec
Su(.ector
tor U9, 'ue
'ue contiene
contiene los .alores
.alores ineros
ineros o iguale
iguales!
s!
2! l elem
element
entoo de se&ar
se&araci
ación!
ón!
3! Su
Su(.
(.ec
ecto
torr U7
U7,, 'u
'uee co
cont
ntie
iene
ne lo
loss el
elem
emenento
toss su
su&e
&eri
rior
ores
es o
iguales!

%os su(.ectores U9 y U7 no est*n ordenados, &ero se &ueden


ordena
ordenarr ind
inde&en
e&endie
diente
ntement
mente
e (as
(asado
adoss en la &ri
&rimera
mera &ar
&artic
tición
ión,,
consis
consiste
tent
nte
e en or
orde
denar
nar lo
losIs .ec
.ecto
torres en (a
(ase
se al el
elem
ement
ento
o de
se&a
se&arac
ració
ión,
n, or
orde
denan
nando
do lo
loss .al
.alor
ores
es mamayor
yores
es al
ala
a der
derec
ec)a
)a y lo
loss
.alores menores a la iz'uierda!

M4(* M$),$S)(: ste método se (asa en la t*ctica di.ide y


.encer*s, 'ue consiste en ir su(di.idiendo el arreglo en arreglos
m*s &e'ueBos, y ordenar éstos! Para )acer esta di.isión, se toma
un .alor del arreglo como &i.ote, y se mue.en todos los elementos
meno
menorres 'u
'ue
e es
este
te &i
&i.o
.ote
te a su iz
iz'u
'uie
ierd
rda,
a, y lo
loss ma
mayo
yorres a su
derec)a! A continuación se a&lica el mismo método a cada una de
las dos &artes en las 'ue 'ueda di.idido el arreglo! 8ormalmente
se toma como &i.ote el &rimer elemento de arreglo, y se realizan
doss (
do (s'
s'ue
ueda
das
s un
una
a de iz'
z'ui
uier
erda
da a de
derrec
ec)a
)a,, (u
(usc
scan
ando
do un
elemento mayor 'ue el &i.ote, y otra de derec)a a iz'uierda,

(uscan
(uscando
do un el elem
emen
ento
to me
meno
norr 'u
'uee el &i
&i.o
.ote
te!! Cu
Cuan
ando
do se )a
)ann
enco
encont
ntrad
radoo lo
loss do
dos,
s, se ininte
terc
rcam
am(i
(ian
an,, y se si
sigu
gue
e re
real
aliz
izan
ando
do la
(s'ueda
(s'ue da )asta 'ue las
la s dos (s'uedas
(s'u edas se encuentr
en cuentran!
an!

METODOS DE BSQUEDA

la (
(s'
s'ue
ueda
da de in
ino
orm
rmac
ació
ión
n es
est*
t* rel
elac
acio
iona
nada
da co
con
n la
lass ta
ta(l
(las
as &a
&ara
ra
cons
consul
ulta
tass 'u
'ue
e co
cont
ntie
ienen
nen in
ino
orm
rmac
ació
ión
n 'u
'ue
e se al
alma
mace
cena
na en or
orma
ma de
listas
listas de &a
&arre=
e=as
as de da
dato
tos!
s! $n
$naa .ez
.ez se enencu
cuen
entr
tra
a el el
elem
emen
ento
to,, la
identi+cación de su inormación es un &ro(lema menor! %a (s'ueda se
&uede clasi+car en 

Algoritmos y Métodos de Programación


@s'ueda e-terna es cuando la inormación es almacenada en disceos o
citnas uera del ordenador!
ordenador!

@s'ueda interna es cuando los registros 'ue se (uscan se almacenan


&or com&leto dentro de la memoria del ordenador
ordenador!!

%os métodos m*s usuales de (us'ue da son 

•@s'ueda secuencial o lineal!


•@s'ueda (inaria! J
•@s'ueda &or transormación de cla.es )as)4!
• M4(*
M4(*
 *$ B?!>#$
B?!>#$*& *& !$"
!$"#$+
#$+"'& %: n una lista de elementos
"'&%:
almacenada en un .ector, el método m*s sencillo es e-&lorar
secuencialmente el .ector, en otras &ala(ras recor
recorrer
rer el .ector!
.ector ! %a
(s'ueda secuencial com&ara cada elemento del .ector con el

.alor deseado, )asta 'ue este termina


termina de leer el .ector com&leto!
com&leto!
sta (s'ueda no re'uiere de ningn registro &or &arte del .ector
y no necesita estar ordenado! l recorrido del .ector normalmente
se realiza con estructuras re&etiti.as Para, Mientras controlado
&or un centinela, Mientras controlado &or un contador4!

=m

//declaraciones

9nicio
%lenar a,n4

%eer t

// recorrido del .ector

7esde 9  1 )asta n )acer

Si A G9H  t entonces

Mostrar elemento encontrado#4

Algoritmos y Métodos de Programación


Mostrar en &osición # , 14

insi

indesde

in
B?!>#$*& !$"#$+"'&% "+ "$+('+$%&
F
sta es una manera muy e+caz siem&re con é-ito en la (s'ueda
del registro en el .ector utilizando un centinela, elemento 'ue se agrega
al .ector al +nal del mismo!
mismo! Para el é-ito en la (s'ueda se le asigna el
.alor de t antes de iniciar la (s'ueda!

=m

//declaraciones

9nicio

%lenar a,n4

%eer t

i  1

Mientras a GnL1H VK t )acer

iiL1

+nmientras

si i  n L 1 entonces

mostrar no se )a encontrado el elemento#4

+nsi

sino

Algoritmos y Métodos de Programación


mostrar se )a encontrado el elemento#4

+nsino

in

• M4(* *$ B?!>#$*& 5'+&)'&: s


sta
ta (
(s'u
s'ued
eda
a se
secu
cuen
enci
cial
al
em&ieza con el &rimer elemento
10 del .ector y se (usca en el )asta
'ue se encuentra el elemento deseado o se alcanza el .alor +nal
del .ector! Se llama as de(ido a 'ue los datos a (uscar est*n
orde
ordena
nado
dos!
s! Se (a
(asa
sa en el le
lema
ma 79
79U9
U97
7 W U
U8C
8C
XS
XS## &a
&ara
ra
localizar el .alor deseado! Con este método se e-amina &rimero el
elem
elemen
ento
to ce
cent
ntra
rall de la li
list
sta,
a, si es
este
te es el el
elem
emen
ento
to (u
(usc
scad
ado
o
entonces la (s'ueda llega a su +n; si no se determina si el
elemento (uscado est* en la &rimera o la segunda mitad de la
lista y a continuación se re&ite el &roceso utilizando el elemento
central de las su(listas! n la (s'ueda (inaria se utilizan .ectores
orden
ordenad
ados
os y se (a(asasa en la coconst
nstan
ante
te di
di.i
.isi
sión
ón de
dell es
es&a
&aci
cio
o de
(s'
(s'ue
ueda
da!! l &r
&roc
oces
eso
o de (
(s'
s'ue
ueda
da de
de(e
(e ter
ermi
mina
narr co
con
n los
resultados de la (s'ueda, si )a tenido é-ito; caso contrario no )a
tenido é-ito, y normalmente se de.uel.e la &osición del elemento

(uscad
(uscado
o den
dentr
tro
o de
dell .ec
.ecto
torr! s
sta
ta (
(s'
s'ued
ueda
a (i
(ina
nari
ria
a es si
siem&
em&re
re
e+ciente cuando el .ector esta ordenado! Para &oder medir la
.elocidad del c*lculo del algoritmo se de(e o(tener el numero de
com&ar
com& arac
acio
ione
ness 'u
'uee rea
eali
liza
za el al
algo
gori
ritm
tmo,
o, gen
genér
éric
icam
amen
ente
te se
re&resenta de la siguiente manera

nY de com&araciones  log 24 n L 14

?  log 24 n L 14

Algoritmos y Métodos de Programación


%os inc
nco
on.
n.en
eniien
ente
tess de la ((s'
s'ue
uedda (i
(ina
nari
ria
a so
son
n  el .ect
.ector
or
&re.i
&re.iame
amentnte
e de
de(e
(e est
estar
ar or
orde
denad
nadoo y el al
almac
macenenami
amient
ento
o de un
.ector ordenado suele ocasionar &ro(lemas en las inserciones y
eliminaciones de elementos!

11

M4(*
M4(*
 *$ B?!
B?!>#$
>#$*&
*& 7$
7$*'&
*'&+($
+($ ()&
()&+!@
+!@)7
)7&"'
&"'/+
/+ *$ "%&
"%&0$!
0$!
ASING: ste método e-ige 'ue los datos en el .ector estén
ordenados! ste método consiste en transormar una cla.e dada
numérica o ala(ética4 en una dirección un ndice4 dentro del
.ector array4! %a corres&ondencia entre las cla.es y la dirección
en el medio de almacenamiento o en el .ector se esta(lece &or
una
una uunc
nciión de con
on.e
.ers
rsió
ión!
n! -
-iist
sten
en di
di.e
.ers
rso
os mététod
odos
os de
transormac
transormación
ión de cla.e
cla.es,
s, cada uno con la necesi
necesidad
dad de con.er
con.ertir
tir
las cla.es en dir
direccio
ecciones;
nes; la unció
unción
n de con.ersión e'ui.ale
e'ui.ale a una
ca=a negra llamada calculador de direcciones, el cual indica la
dirección el elemento a encontrar dentro del .ector; algunos de
estos métodos son
T)#+"&7'$+(.
ste método ignora &arte de la cla.e y se utiliza &arte de ella
como ndice, este es un método r*&ido, &ero alla al distri(uir
las cla.es de modo uniorme! :oma solo una determinada
cantidad de dgitos y de determinadas &osiciones de la cla.e
&ara tomarla como ndice!
P%$,&7'$+(.
Consiste en la &artición de la cla.e en distintas &artes y la
com(in
com(inac
ació
ión
n de es
esta
tass de momodo
do co
con.
n.en
enie
ient
ntee u
usa
sand
ndo
o a
menudo suma o multi&licación4 &ara o(tener el ndice!

Algoritmos y Métodos de Programación


T -4  -1 L -2 L ! ! ! L -n
A)'(74('"& 7*#%&)
7*#%&)..
Cons
Consis
iste
te en co
con.
n.er
erti
tirr la cl
cla.e
a.e aun enente
tero
ro,, di
di.i
.idi
dirr &o
&orr el
tamaBo del rango del ndice y tomar el resto como resultado;
la unción utilizada es mod modulo4!
T -4  - 7* m
mtamaBo del .ector
.ector!!
M'(&* *$% "#&*)&*.

Consiste en calcular el cuadrado de la cla.e -! %a unción de


12
con.ersión de de+ne como

T -4  C

c s o(tiene eliminando los dgitos de los e-tremos de -Q2!

Se de(en utilizar las mismas &osiciones &ara -Q2 &ara todas


las cla.es!

BIBLIOGRAFIA:

2((=:&(2&5$(!&5$.5%,!=(
2((=:&(2&5$(!&5$.5%,!=(."7817
."7817$(*!*$
$(*!*$
)*$+&7'$+(*$0$"()$!.2(7%

2((=:&)($7'!&.#+'"&#"&.$*#."H+$*
2((=:&)($7'!&.#+'"&#"&.$*#."H+$*'&EDDI"&=9.2
'&EDDI"&=9.2(7
(7

2((=:JJJ8.'+,.=#"."%H''"11817&
2((=:JJJ8.'+,.=#"."%H''"11817&($)'&"&=1.2(7
($)'&"&=1.2(7

FUNDAMENTOS DE PROGRAMACION ; L#'! &+$! A,#'%&)  °


E*'"'/+

Algoritmos y Métodos de Programación

También podría gustarte