Está en la página 1de 16

Escu$l& Mili(&) *$ I+g$+i$)-&

Mcal! Antonio José de Sucre#


$nidad Académica Santa Cruz

GRUPO : WFIELRLYN ACNADLVOI


MCOARNDTEOSZ OPA CDAISLLTAÑ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

MÉTODOS DE ORDENACIÓN Y
Algoritmos y Métodos de Programación
BSQUEDA DE VECTORES
Los métodos de ordenamiento son algoritmos necesarios &ara que
luego de ordenar, se &uedan (uscar datos de una manera muc)o m*s
r*&ida y e+ciente a&licando distintas técnicas! xisten varios
métodos de (squeda y ordenación de vectores que varan segn
su grado de di+cultad y su acilidad de uso, sin em(argo, todos estos
son a&licados
en cualquier caso 2

MÉTODOS DE ORDENACIÓN

La ordenación de arrays arreglos4 o vectores, se denomina tam(ién


578AC958 98:8A; ya que se almacena en la memoria interna de la
com&utadora de gran velocidad y acceso aleatorio! Los métodos de
ordenación se dividen en dos categoras

O) *$+&ci/+ *$ 0$c()$s, ta(las; este ti&o de ordenación


es denominado 578AC958 98:8A clasi+cación de los valores de un
vector segn el orden de memoria central, r*&ida!

O)*$+&ci/+ *$ &)c2i0s; tam(ién denominado


578AC958
<:8A clasi+cación de los registros de un arc)ivo situado en
un so&orte externo, menos r*&ido!

• O)*$+&ci/+ i+($)+&.
Se lleva a ca(o com&letamente en memoria &rinci&al, es
decir, todos los o(=etos que se ordenan ca(en en la memoria
&rinci&al de la com&utadora!
• O)*$+&ci/+ $3($)+&.
8o ca(e toda la inormación en memoria &rinci&al y
es necesario ocu&ar memoria secundaria! l
ordenamiento

ocurre trans+riendo (loques de inormación a memoria


Algoritmos y Métodos de Programación
&rinci&al en donde se ordena el (loque y este es regresado,
ya ordenado, a la memoria secundaria!
Los métodos directos de ordenación son
Método de intercam(io de (ur(u=a!

Método &or inserción!


Método de sSe)leelcl!ción!

 Método de >uicksort!
 Método de Megasort!
3

• M4(* *$ Bu)5u6&: l 5rdenamiento de @ur(u=a @u((le Sort en


inglés4 es un sencillo algoritmo de ordenamiento!
unciona revisando cada elemento de la lista que va a ser
ordenada con el siguiente, intercam(i*ndolos de &osición si
est*n en el orden

equivocado! s necesario revisar varias veces toda la lista )asta


que no se necesiten m*s intercam(ios, lo cual signi+ca que la lista
est* ordenada! ste algoritmo o(tiene su nom(re de la orma con
la que su(en &or la lista los elementos durante los intercam(ios,
como si ueran &equeñas (ur(u=as!
7ado que solo usa com&araciones &ara o&erar elementos, se lo
considera un algoritmo de com&aración, siendo el m*s sencillo
de im&lementar! Consiste en com&arar &ares de elementos
adyacentes e intercam(iarlos entre s )asta que estén
todos ordenados!

E67:

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

D0 1D D6 1E 3D 1 12 F

AG1H AG2H AG3H AGEH AGDH AG6H AGIH AGJH

Los &asos a dar son

Algoritmos y Métodos de Programación


1! Com&arar A1 y A2; si est*n en orden, se mantiene como est*n,
sino se intercam(ian entre s!
2! Se com&aran los elementos 2 y 3, se intercam(ian si es
necesario! 3! l &roceso continua )asta que cada elemento del vector
)aya sido
com&arado con sus elementos adyacentes y se )ayan realizado
los

intercam(ios necesarios!
ste método ex&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 o&eración exige como mnimo nN1 com&ro(aciones y


como m*ximo nN1 intercam(ios! La o&eración total exigir*
nN14OnN14nN14Q2 intercam(ios de elementos!

M4(* *$ I+s$)ci/+: n este método lo que se )ace es tener


una su(lista ordenada de elementos del arreglo e ir insertando el
resto en el lugar adecuado &ara que la su(lista no &ierda el
orden! La su(lista ordenada se va )aciendo cada vez mayor,
de modo que al +nal la lista entera queda ordenada! Se lo
conoce tam(ién como el método de la (ara=a! ste
método se (asa en com&araciones y des&lazamientos
sucesivos! l algoritmo de clasi+cación de un vector x &ara 8
elementos se realiza con un recorrido de todo el vector y la
inserción del elemento 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 x GiH en el lugar


//adecuado entre x G1H R x GiN1H
indesde
M4(* *$ S$l$cci/+: ste método consiste en (uscar el
elemento m*s &equeño del arreglo y &onerlo en &rimera &osición;
D
luego, entre los restantes, se (usca el elemento m*s &equeño y
se
coloca en segundo lugar, y as sucesivamente )asta colocar el
ltimo elemento ! Los &asos sucesivos a dar son
1. Seleccionar el elemento menor de n elementos!
8. 9ntercam(iar dic)o elemento con el &rimero!
9. e&etir estas o&eraciones con los nN1 elementos restantes,

seleccionando el segundo elemento, continuar con los


nN2 elementos restantes )asta que solo quede el mayor!

E67:

9nicio

7esde 9  1 )asta nN1 )acer

@uscar el elemento menor de x G9H, ! ! ! , x


GnH e intercam(iar con x G9H

indesde

in

La (squeda e intercam(io se realiza n  1 veces, ya que 9 se incrementa


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

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

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

Algoritmos y Métodos de Programación


llamado as &or su inventor 7onald S)ell! n este método no se
com&ara a cada elemento con el de su izquierda, como en el de
inserción, sino con el que est* a un cierto nmero de lugares
llamado salto4 a su izquierda! ste salto es constante, y su valor
inicial es 8/2 siendo 8 el nmero de elementos, y siendo división
entera4! Se van dando &asadas )asta que en una &asada no se
intercam(ie ningn elemento de sitio! ntonces el salto se reduce
a la mitad, y se vuelve6n a dar &asadas )asta que no
se
intercam(ie ningn elemento, y as sucesivamente )asta que el
salto vale 1!

M4(* QuicS)( ; *$ O)*$+&ci/+ R<=i*&: $na técnica muy


&oderosa &ara el diseño de algoritmos es 7ividir &ara conquistar!
ste método se le de(e estrictamente a Toare !Los algoritmos de
este ti&o se caracterizan &or estar diseñados siguiendo
estrictamente las siguientes ases

Di0i*i) Se divide el &ro(lema en &artes m*s


&equeñas! C+>uis(&) Se resuelven recursivamente los
&ro(lemas m*s c)icos!
C75i+&) Los &ro(lemas m*s c)icos de com(inan
&ara resolver el grande!

Los algoritmos que utilizan este &rinci&io son en la mayora de los


casos netamente recursivos como es el caso de mergesort!

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


utiliza el &rinci&io de dividir &ara conquistar! Si el vector tiene m*s
de dos elementos se lo divide en dos mitades, se invoca
recursivamente 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 dividir las listas en dos su(listas o su(vectores y
un valor de se&aración, siend o el vector dividido en 3 &artes
1! Su(vector U9, que contiene los valores ineros o iguales!
2! l elemento de se&aración!
3! Su(vector U7, que contiene los elementos su&eriores o
iguales!

Los su(vectores U9 y U7 no est*n ordenados, &ero se &ueden


ordenar inde&endientemente (asados en la &rimera &artición,
I
consistente en ordenar lo s vectores en (ase al elemento
de
se&aración, ordenando los valores mayores ala derec)a y los
valores menores a la izquierda!

M4(* M$)g$S)(: ste método se (asa en la t*ctica divide y


vencer*s, que consiste en ir su(dividiendo el arreglo en arreglos
m*s &equeños, y ordenar éstos! Para )acer esta división, se toma
un valor del arreglo como &ivote, y se mueven todos los elementos
menores que este &ivote a su izquierda, y los mayores a su
derec)a! A continuación se a&lica el mismo método a cada una
de las dos &artes en las que queda dividido el arreglo!
8ormalmente se toma como &ivote el &rimer elemento de arreglo,
y se realizan dos (squedas una de izquierda a derec)a,
(uscando un elemento mayor que el &ivote, y otra de
derec)a a izquierda,

(uscando un elemento menor que el &ivote! Cuando se )an


encontrado los dos, se intercam(ian, y se sigue realizando
la
(squeda )asta que las dos (squedas se encuentran!

METODOS DE BSQUEDA

la (squeda de inormación est* relacionada con las ta(las


&ara consultas que contienen inormación que se almacena en
orma de listas de &are=as de datos! $na vez se encuentra el
elemento, la identi+cación de su inormación es un &ro(lema menor! La
(squeda se &uede clasi+car en 
Algoritmos y Métodos de Programación
@squeda externa es cuando la inormación es almacenada en disceos o
citnas uera del ordenador!

@squeda interna es cuando los registros que se (uscan se almacenan


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

Los métodos m*s usuales de (usque da son 

@squeda secuencial o lineal!


@squeda (inaria!
• J
@squeda &or transormación de claves )as)4!

• M4(* *$ Bús>u$*& s$cu$+ci&l: n una lista de elementos


almacenada en un vector, el método m*s sencillo es ex&lorar
secuencialmente el vector, en otras &ala(ras recorrer el vector! La
(squeda secuencial com&ara cada elemento del vector con el

valor deseado, )asta que este termina de leer el vector com&leto!


sta (squeda no requiere de ningn registro &or &arte del vector
y no necesita estar ordenado! l recorrido del vector normalmente
se realiza con estructuras re&etitivas Para, Mientras
controlado &or un centinela, Mientras controlado &or un
contador4!

=m

//declaraciones

9nicio
Llenar a,n4

Leer t

// recorrido del vector

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ús>u$*& s$cu$+ci&l c+ c$+(i+$l&

sta es una manera muy e+Fcaz siem&re con éxito en la (squeda


del registro en el vector utilizando un centinela, elemento que se agrega
al vector al +nal del mismo! Para el éxito en la (squeda se le asigna el
valor de t antes de iniciar la (squeda!

=m

//declaraciones

9nicio

Llenar a,n4

Leer 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ús>u$*& 5i+&)i&: sta (squeda secuencial


em&ieza con el &rimer elem1e0nto del vector y se (usca en el
)asta
que se encuentra el elemento deseado o se alcanza el valor +nal
del vector! Se llama as de(ido a que los datos a (uscar est*n
ordenados! Se (asa en el lema 79U97 W U8CÁS# &ara
localizar el valor deseado! Con este método se examina &rimero el
elemento central de la lista, si este es el elemento (uscado
entonces la (squeda 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 (squeda (inaria se utilizan vectores
ordenados y se (asa en la constante división del es&acio de
(squeda! l &roceso de (squeda de(e terminar con
los resultados de la (squeda, si )a tenido éxito; caso contrario no
)a tenido éxito, y normalmente se devuelve la &osición del
elemento

(uscado dentro del vector! sta (squeda (inaria es siem&re


e+ciente cuando el vector esta ordenado! Para &oder medir la
velocidad del c*lculo del algoritmo se de(e o(tener el numero de
com&araciones que realiza el algoritmo, genéricamente se
re&resenta de la siguiente manera

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

k  log 24 n L 14
Algoritmos y Métodos de Programación
Los inconvenientes de la (squeda (inaria son  el
vector &reviamente de(e estar ordenado y el almacenamiento
de un vector ordenado suele ocasionar &ro(lemas en las
inserciones y eliminaciones de elementos!

11

M4(* *$ Bús>u$*& 7$*i&+($ ()&+s@)7&ci/+ *$ cl&0$s


ASING: ste método exige que los datos en el vector estén
ordenados! ste método consiste en transormar una clave dada
numérica o ala(ética4 en una dirección un ndice4 dentro del
vector array4! La corres&ondencia entre las claves y la dirección
en el medio de almacenamiento o en el vector se esta(lece &or
una unción de conversión! xisten diversos métodos
de transormación de claves, cada uno con la necesidad de
convertir las claves en direcciones; la unción de conversión
equivale a una ca=a negra llamada calculador de direcciones,
el cual indica la dirección el elemento a encontrar dentro del
vector; algunos de
estos métodos son
T)u+c&7i$+(.
ste método ignora &arte de la clave y se utiliza &arte de ella
como ndice, este es un método r*&ido, &ero alla al distri(uir
las claves de modo uniorme! :oma solo una determinada
cantidad de dgitos y de determinadas &osiciones de la clave
&ara tomarla como ndice!
Pl$g&7i$+(.
Consiste en la &artición de la clave en distintas &artes y la
com(inación de estas de modo conveniente usando
a menudo suma o multi&licación4 &ara o(tener el ndice!

Algoritmos y Métodos de Programación


T x4  x1 L x2 L ! ! ! L xn
A)i(74(ic& 7*ul&).
Consiste en convertir la clave aun entero, dividir &or el
tamaño del rango del ndice y tomar el resto como resultado;
la unción utilizada es mod modulo4!
T x4  x 7* m
mtamaño del vector!
Mi(&* *$l cu&*)&*.
Consiste en calcular el cuadrado de la clave x! La unción de
12
conversión de de+ne como

T x4  C

c s o(tiene eliminando los dgitos de los extremos de xQ2!

Se de(en utilizar las mismas &osiciones &ara xQ2 &ara


todas las claves!

BIBLIOGRAFIA:

2((=:&(2&5$(s&5$.5lgs=(.c7817$(*s*$
)*$+&7i$+(*$0$c()$s.2(7l 2((=:&)($7is&.u+ic&uc&.$*u.cH+

$*i&EDDIc&=9.2(7

2((=:JJJ8.i+g.=uc.clHiic11817&($)i&c&=1.2(7

FUNDAMENTOS DE PROGRAMACION ; Luis &+$s Aguil&)  °


E*ici/+

Algoritmos y Métodos de Programación

También podría gustarte