7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 1/143
,,.
ALGORI:fMICA Y
ESTRUCTURA DE
DATOS
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 2/143
Universidad Privada
Algorítmica y Estructura de Página
ÍNDICE DE CO NTENIDOI. PREFACIO 3II. DESARROLLO DE LOS CONTENIDOS 04 -
UNIDAD DE APRENDIZAJE 1: INTRODUCCIÓN A LA ESTRUCTURA DE DATOS 04–401. Introdu!"n
#. Pr$%$nt#!"n &ont$'tu#(!)#!"n *. Co+,$t$n!#(oro/. C#,#!d#d$%d. At!tud$%$. Id$#% *%!#% & ont$n!do
. D$%#rro((o d$ (o% t$+#%#. T$+# 01: A(or2t+!# & $%trutur# d$d#to%. *. T$+# 0: E%trutur# ond!!on#(.. T$+# 03: E%trutur#% r$,$t!t!#%.d. T$+# 04: C(#%!!#!"n d$ (#% $%trutur#% d$ (o% d#to%.
3. L$tur#% r$o+$nd#d#%4. At!!d#d$% & $5$r!!o%6. Auto$#(u#!"n
05
05
05
05
05
05
06 – 35
06
14
22
29
36
36
37
39
UNIDAD DE APRENDIZAJE : OPERACIONES CON ARRE8LOS UNIDI9ENSIONALES 40-71. Introdu!"n
#. Pr$%$nt#!"n &ont$'tu#(!)#!"n *. Co+,$t$n!#(oro/. C#,#!d#d$%d. At!tud$%$. Id$#% *%!#% & ont$n!do
. D$%#rro((o d$ (o% t$+#%#. T$+# 01: O,$r#!on$% #(or2t+!#% on #rr$(o%un!d!+$n%!on#($% *. T$+# 0: 9;todo% d$ r$o($!"n d$ d#to%. T$+# 03: O,$r#!on$% on $tor$%*. T$+# 04: R$ur%!!d#d
3. L$tur#% r$o+$nd#d#%4. At!!d#d$% & $5$r!!o%6. Auto$#(u#!"n
41
41
41
41
41
41
42-64
43
49
53
59
64
64
65
67
UNIDAD DE APRENDIZAJE 3: 9ETODOS DE ORDENACION < =US>UEDA 7?-@1. Introdu!"n
#. Pr$%$nt#!"n &ont$'tu#(!)#!"n *. Co+,$t$n!#(oro/. C#,#!d#d$%d. At!tud$%$. Id$#% *%!#% & ont$n!do
. D$%#rro((o d$ (o% t$+#%#. T$+# 01: 9;todo% d$ ord$n#!"n*. T$+# 0: 9;todo% d$ ord$n#!"n ,or %$($!"n. T$+# 03: 9;todo% d$ *%Bu$d#d. T$+# 04: O,$r#!on$% on #rr$(o% +u(t!d!+$n%!on#($%
3. L$tur#% r$o+$nd#d#%4. At!!d#d$% & $5$r!!o%6. Auto$#(u#!"n
69
70
70
70
70
70
71-95
71
79
83
88
94
94
94
97
UNIDAD DE APRENDIZAJE 4: INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOS DIN9ICAS ?-1331. Introdu!"n
#. Pr$%$nt#!"n &
ont$'tu#(!)#!"n*. Co+,$t$n!#. C#,#!d#d$%d. At!tud$%$. Id$#% *%!#% &ont$n!do
. D$%#rro((o d$ (o% t$+#%#. T$+# 01: L!%t# %!+,($. L!%t# do*($+$nt$$n(#)#d#*. T$+# 0: P!(#% & o(#%. T$+# 03: r*o($%d. T$+# 04: 8r#o%
3. L$tur#% r$o+$nd#d#%
99
99
99
99
99
99
100-131
101
107
113
119
125
125
126
128
III. 8LOSARIO 1I. FUENTES DE INFOR9ACIÓN 1. SOLUCIONARIO 130
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 3/143
I. PREFACIO
El curso es de naturaleza teórico-práctico y pertenece al área de or!ación
proesional" capacita e introduce al estudiante en los conceptos y ele!entos
unda!entales para acilitar la introducción a la pro#ra!ación y e$ercitar el
razona!iento" conociendo las t%cnicas &ásicas e!pleadas durante el proceso de
#eneración inter!edio" opti!ización y #eneración de códi#o a!pliando las t%cnicas de
pro#ra!ación'
(o!prende cuatro unidades de aprendiza$e) *' *ntroducción a las estructuras de datos'
**' +peraciones con arre#los unidi!ensionales ***' ,%todos de ordenación y &s.ueda
y */' *ntroducción a las estructuras diná!icas de datos'
ESTRUCTURA DE LOS CONTENIDOS
UNIDAD DE APRENDIZAJE I: INTRODUCCION A LA ESTRUCTURA DE DATOSAlgorítmica y Estructura de
datosEstructura condicional
Estructuras repetitivasClasificacin de las
estructuras de datos
UNIDAD DE APRENDIZAJE II: OPERACIONES CON ARREGLOSUNIDIMENSIONALES
!peracionesalgorítmicas conarreglosunidimensionales
"#todos de $ecoleccin dedatos
!peraciones con vectores$ecursividad
UNIDAD DE APRENDIZA III: 9ETODOS DE ORDENACIÓN < =US>UEDA
"#todos de"#todos deordenacin
ordenamientopor
seleccin
"#todos de %&s'ueda!peraciones con
arreglos
multidimensionales
UNIDAD DE APRENDIZAJE I: INTRODUCCIÓN A LAS ESTRUCTURAS DE DATOSDIN9ICAS
Lista Simple( ListaDo%lemente Enla)adas
Pilas y colas *r%oles+rafos
a co!petencia .ue el alu!no de&e lo#rar al inal de la asi#natura es) aplicar a&ilidades &ásicas y co!ple$as para el !ane$o de las t%cnicas y !%todos de la
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 4/143
pro#ra!ación para resolución de pro&le!as' ,ane$ar t%cnicas de dia#ra!ación ló#ica
de al#orit!o y codiicación y estructura de un pro#ra!a'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 5/143
UNIDADDEAPRENDIZA
JE
niversidad Privada TELESUP
INTRODUCCIÓN A LA ESTRUCTURA DEDATOS
OMPETEN IA:
Al finalizar esta unidad usted será capaz
de
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 6/143
“Conocer e identificar la terminología para construir
resol!er algoritmos con las estructuras de
datos
más
adecuadas
"#
Página ,
U
Algorítmica y Estructura de Datos
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 7/143
Universidad Privada
$# INT%O&' I(N
#/ Pr$ %$ nt# !"n & ont$' tu#(!)# !"n
El alu!no desarrolla una actitud analtica y crtica .ue le per!ita alorar yconocer la i!portancia para la construcción de al#orit!os y conocer las
estructuras de datos'
*/ Co+,$t$ n !# %
(onoce e identiica la ter!inolo#a para construir y resoler al#orit!os con las
estructuras de datos !ás adecuadas'
/ C# ,# !d# d$ %
naliza y critica la i!portancia de la al#ort!ica y la estructura de
datos dentro del !undo actual'
ierencia los distintos casos de uso y unda!entos de pro#ra!ación'
(o!prende la dierencia entre las dierentes estructuras condicionales'
ierencia los distintos casos de uso y unda!entos de pro#ra!ación'
(o!prende la dierencia entre las estructuras repetitias'
naliza y critica las t%cnicas de estudio de las estructuras de datos'
d/ A t !tud$ %
esarrolla una actitud e!prendedora !ediante la to!a de iniciatias'
cta con responsa&ilidad personal" al cu!plir con los orarios
esta&lecidos'
espeto a las nor!as de coniencia'
(u!ple con la presentación de los tra&a$os enco!endados de !anera
indiidual y en e.uipo'
$/ Pr$ %$ nt# !"n d$ !d$# % * %!# % & ont$ n!do $ %$ n!# ($ % d$ (# Un!d# d
L# un!d#d d$ A,r$nd!)#5$ 1: Introdu!"n # 9!ro%ot E'$( o+,r$nd$ $(d$%#rro((o d$ (o% %!u!$nt$% t$+#%:
A(or2t+!# & E%trutur# d$ d#to%.
E%trutur# ond!!on#(.
E%trutur# r$,$t!t!#.
C(#%!!#!"n d$ (#% $%trutur#% d$ d#to%.
Algorítmica y Estructura de DatosPágina -
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 8/143
TEMA
Algorítmica y
Estrctra!"
Dato
sAlgorítmica y Estructura de Datos
Universidad Privada TELESUP
Página .
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 9/143
Algorítmica y Estructura de Página /
)# &E*A%%O++O &E ONTENI&O*
T"ma #$ Algorítmica y
Estrctra !" !atos%
>UG ES UN AL8ORIT9OH
n al#orit!o es una serie de pasos !%todos or#anizados .ue per!ite dar solución a
un pro&le!a especico'
a pala&ra al#orit!o se deria de la traducción al latn de la pala&ra ára&e#(oK#r!)+!" no!&re de un !ate!ático y astróno!o ára&e .ue escri&ió un tratado
so&re !anipulación de n!eros y ecuaciones en el si#lo *:'
TIPOS DE AL8ORIT9OS
Cu#(!t#t!o%: ;on a.uellos .ue
descri&en los pasos utilizando
pala&ras'
Cu#nt!t#t!o%: ;on a.uellos .ue
utilizan cálculos nu!%ricos para
deinir los pasos del proceso'
LEN8UAJES AL8ORT9ICOS
*ndican una serie de s!&olos y re#las .ue se utilizan para descri&ir de !anerae<plcita un proceso' =ueden ser)
8r!o% o D!#r#+# d$ F(u5o: Es la representación #ráica de las operaciones.ue realiza un al#orit!o'
No 8r!o% o P%$udo"d!o: Es la representación en or!a descriptia de las
operaciones .ue de&e realizar un al#orit!o'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 10/143
CARACTERSTICAS DE UN AL8ORIT9O
F!n!to: ;i se si#ue un al#orit!o" se de&e ter!inar en un n!ero inito de pasos'
D$!n!*($) n al#orit!o de&e ser preciso e indicar el orden de realizaciónde cada paso' ;i se si#ue un al#orit!o dos eces" se de&e o&tener el !is!o
resultado cada ez'
Entr#d#%: El al#orit!o de&e tener cero o !ás entradas" es decir cantidades
dadas antes de e!pezar'
S#(!d#%: el al#orit!o tiene una o !ás salidas en relación con las entradas'
>UG SON LAS ESTRUCTURAS DE DATOSH
Es una colección datos .ue pueden ser caracterizados por su or#anización y
las operaciones .ue se deinen en ella'
E$e!plo de Estructura de datos) rre#los" rcios" (adenas y istas'
CLASIFICACIÓN DE LAS ESTRUCTURAS DE
DATOS ESTTICAS: ;u ta!a>o en !e!oria es
i$o' E$e!plo" arre#los" con$untos"
cadenas'
DIN9ICAS: ;u ta!a>o en !e!oria es
aria&le' E$e!plo" pilas" colas" listas"
ár&oles" #raos" etc' Estas a su ez se
diiden en)
LINEALES: ;on a.uellas estructuras
donde los datos se al!acenan en zonas
continuas sucesias o adyacentes" una
detrás de otra' E$e!plo) pilas" colas"
listas'
NO LINEALES: ;on a.uellas estructuras
donde los datos no se encuentra en
or!a continua" es decir ay ?&iurcación@'
E$e!plo ár&oles" #raos'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 11/143
9ETODOLO8A PARA CONSTRUIR UN AL8ORIT9O
=ara .ue la la&or de pro#ra!ación sea una tarea ácil de&e!os se#uir una!etodolo#a la cual co!prende los si#uientes pasos)
#/ einición del pro&le!a Enunciado*/ einición de la solución nálisis del pro&le!a/ ise>o del al#orit!od/ esarrollo del pro&le!a (odiicación$/ epuración y prue&as E$ecución – Ealuación de esultados/ ocu!entación
DESARROLLO DE UN CASO PRCTICO
I/ DEFINICION DEL PRO=LE9A: ;e de&e esta&lecer clara!ente elenunciado del pro&le!a .ue se está planteando'E$e!plo) calcular el área de un rectán#ulo' En unción a la si#uienteór!ula)#M*/
II/ DEFINICION DE LA SOLUCIÓN: ;e de&e identiicar clara!ente losi#uiente)
a' os datos .ue de&en ser in#resados para dar solución al pro&le!a
&' Esta&lecer e<acta!ente los procesos a llearse a ca&o a in de dar con la solución del pro&le!a'
c' eter!inar con e<actitud .u% alores son los .ue se de&e isualizar co!o resultado o solución del pro&le!a" se de&e satisacer loso&$etios del pro&le!a'
E$e!plo)
+ABEC*/+ E =+AE,) (( E DE E E(CDF+
Entr#d# d$ D#to% Pro$%o R$%u(t#do o S#(!d#
A(tur# /=#%$ */
#M* r$# #/
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 12/143
I/ DISEO DEL AL8ORIT9O
einidos e<acta!ente los procesos tendre!os .ue pro#ra!ar y conocidos los datos
.ue estarán siendo entre#ados y la inor!ación .ue de&e!os #enerar co!oresultado del proceso" esta!os en condiciones de dise>ar nuestra solución'
=ara construir al#orit!os se utilizan !etodolo#as co!o) El ia#ra!a de Glu$o y=seudocódi#os'
D!#r#+# D$ F(u5o: ,etodolo#a #ráica .ue per!ite construir
isual!ente el recorrido del lu$o de un pro#ra!a y estructurar el al#orit!opara una solución deter!inada'
S!+*o(o2# u%#d# $n un D!#r#+# d$ F(u5o:
S2+*o(o Lo Bu$ %!n!!#
In!!o o !n de un ia#ra!a de Glu$o'
Entr#d# o S#(!d#: epresenta una operación de
entrada de datos o salida de inor!ación'
Pro$%o: epresenta una operación de
procesa!iento de datos'
D$!%!"n: Aiurca el lu$o del al#orit!o" dependiendodel resultado de la e<presión ló#ica'
Con$tor: Este s!&olo se usa para conectar entre s
dos o !ás puntos relacionados al dia#ra!a de lu$o'
D!r$!"n: as lecas indican la dirección del lu$o
de control en la secuencia del al#orit!o'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 13/143
E5$+,(o d$ un D!#r#+# d$ (u5o:
El si#uiente dia#ra!a de lu$o constituye el al#orit!o .ue da solución al caso propuesto'
**(*+
0eer)
&"1
aH&I1
Escri&ir
a
G*
PSE U D O C Ó D I8 O :
Es un len#ua$e de especiicación descripción de al#orit!os'
Feneral!ente %$ $%r!*$ $n $( !d!o+# n#tur#( d$( u%u#r!o "
es !uy se!e$ante al códi#o uente de un pro#ra!a'
;e considera un pri!er &orrador" dado .ue el pseudocódi#o
tiene .ue traducirse posterior!ente a un len#ua$e de
pro#ra!ación' El pseudocódi#o no puede ser e$ecutado por el
co!putador'
E5$+,(o d$ un P%$udo"d!o: P#r# $( d$%#rro((o d$( #%o ,ro,u$%to/
**(*+
eer &"
aH&I
Escri&ir
a
G*
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 14/143
II/ DESARROLLO DEL PRO=LE9A Cod!!#!"n/:
(onsiste en la codiicación del pro#ra!a' =artiendo del al#orit!o desarrollado en
el paso anterior" para este in se de&erá utilizar un len#ua$e de pro#ra!ación" para
nuestro caso Baa'
Cod!!#!"n $n J## d$( #(or!t+o #nt$r!or
i!port$aa<'sJin#'IK
pu&lic class (alculadora L
pu&lic static oid !ain;trin# ar#sMN
L
DECLARACION DE ARIA=LES
int&""aK
IN8RESO DE DATOS-E%to% d#to% %on #,tur#do% o+o Str!n
;trin# &&HB+ption=ane'soJ*nputialo#O*n#resa &ase ) OK
;trin#HB+ption=ane'soJ*nputialo#O*n#resa altura ) OK
LOS DATOS RECEPCIONADOS DE=ERAN SER CONERTIDOS A( TIPO >UECORRESPONDEN
&H*nte#er'parse*nt&&K
H*nte#er'parse*ntK
PROCESO DE DATOS
aH&IK
SALIDA DE INFOR9ACION
;yste!'out'printlnOEl área es) O P aK
Q
Q
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 15/143
Not#: ;trin# no es un tipo de dato pri!itio" sino corresponde a una clase de Baadesde la cual instancia es decir se crea todos los tipos de cadenas de te<to' =or otra parte" Baa s ace dierencia entre las !aysculas y !insculas" por lo .ue
de&e!os ser cuidadosos al escri&ir el códi#o uente" por lo #eneral los no!&res delas clases sie!pre e!piezan con !aysculas'
III/ DEPURACION < PRUE=A: (onsiste en la e$ecución" depuración y soluciónde errores' os errores .ue podran presentarse pueden ser)
Error$% d$ S!nt#'!%: ;on errores de escritura de códi#o" el co!pilador no los puedeinterpretar y por lo tanto cuando e$ecuta!os el pro#ra!a los se>ala co!o un error
indicándose la lnea y ele!ento desconocidos" !ientras no arre#le!os todos estoserrores el pro#ra!a no podrá e$ecutarse'
Error d$ E5$u!"n: El pro#ra!a puede e$ecutarse" pero por un !al !ane$o delpro#ra!a o un in#reso inde&ido" el pro#ra!a colapsa o cierra repentina!ente" estostipos de errores de&en eitarse y de&e ser el pro#ra!a .uien pueda controlarlos'
Error d$ L"!# o ,ro$d!+!$nto: Este tipo de error es perci&ido cuando nosda!os cuenta .ue los resultados de los procesos no son los correctos'
Codos estos tipos de errores de&en e<a!inarse antes de dar por concluido elproceso de desarrollo del pro#ra!a' e presentarse un error de ló#ica se de&erealizar un eed&acR etroali!entación y de&e!os oler al =;+ ro' 1
I/ DOCU9ENTACION:
En esta etapa de&e recopilarse toda la docu!entación #enerada en las etapasanteriores" la cual a a serir co!o &ase para la ela&oración del !anual t%cnico'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 16/143
TEMA
Estrctra
Co&!icio&al
Algorítmica y Estructura de Datos Página 0,
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 17/143
Algorítmica y Estructura de Página
T"ma '$ Estrctra Co&!icio&al
na instrucción de decisión o selección eala una condición y en unción del resultado
de esa condición se &iurcará a un deter!inado punto'
E5 $ + , (o :
- D$%$o !r #( !n$.
S! #n +!% #+!o% $nton$%
Ir; #( !n$
S!no9$ Bu$do $n #%#
C(#%!!#!"n d$ (#% E%trutur#% S$($t!#%:
Estructura ;electia ;i!ple
Estructura ;electia o&le
Estructura ;electia nidada
Estructura ;electia ,ltiple
A% ESTRUCTURA SELECTI(A SISIMPLE
D E F IN IC IÓ N : Es una estructura .ue eala
una e<presión ló#ica y dependiendo del
resultado esco#e entre realizar uno u otro
&lo.ue de códi#o'
En nuestra ida cotidiana a diario to!a!osuna serie de decisiones y todas tienen .ue
er con) $#(u#r un# ,r$+!%# y de acuerdo a
su resultado pode!os to!ar una u otra
decisión'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 18/143
Universidad Privada
SU REPRESENTACIÓN EN EL DIA8RA9A DE FLUJO:
SU REPRESENTACIÓN EN EL PSEUDOCÓDI8O:
;i ScondiciónT entonces
Sacción 1T
Sacción 2T
in si
Sacción nT
SU REPRESENTACIÓN EN LA CODIFICACION:
* !ontoTH300
L dH!ontoI0'30K Q
else
L dH0K Q
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 19/143
Universidad Privada
)% ESTRUCTURA SELECTI(A SIDO)LE
Este tipo de estructura presenta de i#ual or!a una condición o e<presión ló#ica" deser erdadera esta condición" se e$ecuta un &lo.ue de instrucciones y en caso
contrario se e$ecuta otro &lo.ue distinto'
;e utiliza en la solución de pro&le!as donde las alternatias se &iurcan en dos
posi&ilidades dependiendo de la condición ealuada'
SU REPRESENTACIÓN EN EL DIA8RA9A DE FLUJO:
SU REPRESENTACIÓN EN PSEUDOCÓDI8O:;i ScondiciónT entonces
Sacción aT
Sacción &T
sino
in si
Sacción <T
Sacción yT
SU REPRESENTACIÓN EN LA CODIFICACIÓN:
iScondiciónT
L Sacción aTK
Sacción &TK Q
elseL Sacción <TK
Sacción yTK Q
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 20/143
C% ESTRUCTURA SIANIDADA
Este tipo de estructura está or!ada por una serie de estructuras selectias .ue se
encuentran in!ersas unas dentro de otras' ;e utiliza para esta&lecer una serie decondiciones $erár.uicas desde las !ás #en%ricas asta las !ás especicas" sino se
cu!plen las pri!eras condiciones" no se ealan las si#uientes'
SU REPRESENTACIÓN EN EL DIA8RA9A DE FLUJO:
SU REPRESENTACIÓN EN EL PSEUDOCÓDI8O:
;i Scond1T entoncesSacción aTSacción &T
;ino;i Scond2T entoncesSacción cTSacción dTsino
;i Scond3T entoncesSacción eTSacción TsinoSacción #TSacción Tin si
Si Co&!# es verdadero se reali)a laaccin a y la accin % y luego el flu1o delprograma sale de la estructura selectiva(
Si no se cumple la Cond0 el flu1o delprograma se dirigirá a evaluar la Cond2 si#sta se cumple slo se reali)ará la accin cy la accin d y luego el flu1o del programasaldrá de la estructura selectiva(
SiCond0 y la Cond2 no se cumple el flu1odel programa se dirigirá a evaluar laCond3 si #sta se cumple slo se reali)arála accin e y accin f y luego el flu1o delprograma saldrá de la estructura selectiva(
En el caso de no cumplirse Cond0 Cond2y Cond3 slo en ese caso se reali)ará laaccin g y la accin 4(
in siin si
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 21/143
SU REPRESENTACIÓN EN LA CODIFICACIÓN:
* !ontoTH1000
L
dH!ontoI0'30KQ
else
L
* !ontoS1000 UU!ontoTH500
L dH!ontoI0'20K
Q
else
L * !ontoS500 UU!ontoTH200L dH!ontoI0'10K Q
else
L dH0K Q
Q
Q
El !is!o caso anterior se puede representar de un !odo !ás si!pliicado usando el
$(%$! )
Cond!!on!n!!#(
* !ontoTH1000
L dH!ontoI0'30K Q
else i !ontoS1000 UU!ontoTH500
S$und# ond!!"n %!no %$ u+,($ $( #nt$r!or
L dH!ontoI0'20K Q
else * !ontoS500 UU!ontoTH200
T$r$r# ond!!"n %!no %$ u+,($n (#% #nt$r!or$%
L dH!ontoI0'10K Q
else
En $( #%o d$ u+,(!r%$ n!nun# d$ (#% #nt$r!or$%
L dH0K Q
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 22/143
D% ESTRUCTURA SELECTI(A MULTIPLES
a estructura eala una e<presión .ue podrá to!ar n alores distintos"
1"2"3"4"V"n' ;e#n .ue eli$a uno de estos alores en la condición" se realizará una
de las n acciones" el lu$o del al#orit!o se#uirá un deter!inado ca!ino entre los nposi&les'
REPRESENTACIÓN EN EL DIA8RA9A DE FLUJO
Cond!!"n
11 22 33 44
nn
A!"n
S1
A!"n
S
A!"n
S3
A!"n
S4
A!"n
Sn
SU REPRESENTACIÓN EN EL PSEUDOCÓDI8O:
#%oQd$E #$r
E1: #!"n S11
#!"n S1
E: #!"n S1
#!"n S
E3: #!"n S31
#!"n S3
%!no
#!"n S41
#!"n S4
!nQ#$r
l in#resar a esta estructura se ealuará el
alor de E" si E ale E1" entonces se
realizarán las acciones ;11 y ;12 y lue#o el
lu$o saldrá de la estructura'
;i E ale E2" entonces se realizarán las
acciones ;21 y ;22 y lue#o el lu$o saldrá dela estructura'
;i E ale E2" entonces se realizarán las
acciones ;21 y ;22 y lue#o el lu$o saldrá de
la estructura'
;i no se cu!plieron las alternatias
anteriores" entonces se realizará las acciones
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 23/143
SU PRESENTACIÓN EN LA CODIFICACION
sJitcaria&le
L casealor1 ) L
*(oBu$ d$ !n%tru!on$% u#ndo $( #(or d$ #r!#*($ $% 1
Q &reaRK
casealor2 ) L
*(oBu$ d$ !n%tru!on$% u#ndo $( #(or d$ #r!#*($ $%
Q &reaRK
deault )
L
*(oBu$ d$ !n%tru!on$% u#ndo $( #(or no $% n!nuno d$ (o% #(or$% #nt$r!or$%
Q &reaRK
Q
EJE9PLO: ealizar un al#orit!o .ue lea el n!ero .ue representa el da de lase!ana y di#a .ue da es" teniendo en cuenta unesH1" ,artes 2V"o!in#oH7
(aseWdediaacer
1) escri&ir ?unes@
2) escri&ir ?,artes@
3) escri&ir ?,i%rcoles@
4) escri&ir ?Buees@
5) escri&ir ?/iernes@
6) escri&ir ?;á&ado@
7) escri&ir ?o!in#o@
Gin' Xacer
d$ #r!#*($
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 24/143
TEMA
Estrctr
asR"*"titi+as
Universidad Privada TELESUP
Algorítmica y Estructura de Datos Página 22
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 25/143
Algorítmica y Estructura de Página
T"ma ,$ Estrctras R"*"titi+as
PRO8RA9ACION 9ODULAR
os su&pro&le!as o !ódulos se dise>an con su&pro#ra!as" .ue a su ez se
clasiican en procedi!ientos y unciones' os procedi!ientos y las unciones
son unidades de pro#ra!as dise>ados para e$ecutar una tarea especica' El
proceso de desco!posición de un pro&le!a en !ódulos se conoce co!o
!odulación y a la pro#ra!ación relatia a ellos" pro#ra!ación !odular'
ESTRUCTURA REPETITIA
En un al#orit!o es necesario repetir una o arias acciones" un n!ero deter!inado
de eces' as estructuras .ue repiten una secuencia de instrucciones" un n!ero
deter!inado de eces" se deno!inan *u($%" y se lla!a !t$r#!"n al eco de repetir
la e$ecución de una secuencia de acciones'
REPRESENTACIÓN DE LA ESTRUCTURA FOR/ EN EL DIA8RA9A DE FLUJO
PARA I d$ 1 # N
*nstrucción
Esta estructura per!ite repetir el &ucle de instrucciones" de 1a eces" lue#o de cu!plirselas n ueltas" se procederá ae$ecutarse las instrucciones.ue se encuentran despu%sdel &ucle'
*nstrucción A
*nstrucción a aria&le * a
incre!entando sus aloresauto!ática!ente" siendo
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 26/143
PARA I de Na 1
Instrucció
n A
Instrucció
n B
Instrucció
n N
Esta estructura per!ite repetir el &ucle deinstrucciones" de a 1 eces" lue#o decu!plirse la n-si!a uelta" se procederáa e$ecutarse las instrucciones .ue seencuentran despu%s del &ucle'
a aria&le * a decre!entado susalores auto!ática!ente" siendo estos)"V'" 3"2"1
PARA I de 2 a N
paso 2
Instrucción A
Instrucción BEsta estructura per!ite repetir el &ucle de instrucciones" de 2a eces" donde en cadauelta el alor de * se iráincre!entando de 2 en 2'
a aria&le * a decreciendosus alores auto!ática!ente"siendo estos) 2" 4" 6" 8" V
Instrucción N
B
u c l e
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 27/143
SU REPRESENTACION EN PSEUDOCODI8O
=ara * de 1 a eces
*nstrucción
*nstrucción A
)*nstrucción
Gin =ara
*nstrucción :
*nstrucción Y
ESTRUCTURA REPETITIA K!($
=ara * de a 1 eces
*nstrucción
*nstrucción A)
*nstrucción
Gin =ara
DEFINICIÓN
a estructura repetitia
+!$ntr#% en in#l%s Jile o do
Jile) hacer mientras es
a.uella en .ue el cuerpo del
&ucle se repite !ientras se
cu!ple una deter!inada
(uando se e$ecuta la instrucción ,ientras
la pri!era cosa .ue sucede es .ue se
eala la condición una e<presión
ló#ica' ;i se eala #(%#" nin#una
acción se to!a y el pro#ra!a prosi#ue
con las instrucciones .ue se encuentran
uera del &ucle' ;i la e<presión es
$rd#d$r#" entonces se e$ecuta el cuerpo
del &ucle" despu%s de lo cual se eala
de nueo la e<presión ló#ica' Esteproceso se repite una y otra ez !ientras
la e<presión ló#ica condición sea
erdadera'
Este tipo de estructura es utilizada cuando se necesita la
estructura repetitia" !as no se conoce con e<actitud lacantidad de iteraciones del &ucle" pues la cantidad de
repeticiones dependerá de si se si#ue cu!pliendo la condición
principal del &ucle'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 28/143
REPRESENTACIÓN EN EL DIA8RA9A DE FLUJO
Cond!!"n
*nstrucción
*nstrucción :
*nstrucción A*nstrucción Y
*nstrucción
,ientras Cond!!"n
*nstrucción
*nstrucción A
'
'
'
*nstrucción
Gin ,ientras*nstrucción :
*nstrucción Y
SU REPRESENTACIÓN EN LA CODIFICACIÓN
Jile condición
L instrucción K
instrucción AK
instrucción K
Q
*nstrucción :K
*nstrucción YK
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 29/143
CONT ADORE S < ACU9 UL ADORE S
CONTADORES
os procesos repetitios son la &ase del uso de los co!putadores' En estosprocesos se necesita nor!al!ente contar los sucesos o acciones internas del&ucle' na !anera de controlar un &ucle es !ediante un contador' n contador es una aria&le cuyo alor se incre!enta o decrece en una cantidad constanteen cada iteración'
INICIO
CONTM1
a aria&le contador se inicializa
NOCONTM6
,uestra el alor de
(+C
SI
Cu$r,o d$( =u($,ostrar (+C
CONTMCONT1 FIN
a aria&le contador sencre!enta en 1 por cadauelta'
i
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 30/143
ACUMULADOR
n acu!ulador o totalizador es una aria&le cuya !isión es al!acenar
cantidades aria&les resultantes de su!as sucesias' ealiza la !is!a
unción .ue un contador" con la dierencia de .ue el incre!ento o decre!ento
de cada su!a es aria&le en lu#ar de constante" co!o en el caso delcontador'
;e representa por la instrucción ;H;P" donde es una aria&le y no una
constante'
INICIO
CONTM1
SU9AM0
NOCONTRM6
SI
eer /alor FIN
CONTMCONT1
SU9AMSU9A#(or
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 31/143
TEMA
Clasi-caci.&!"
lasEstrctras!" los Datos
Algorítmica y Estructura de Datos Página 25
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 32/143
Algorítmica y Estructura de Página
T"ma /$ Clasi0icaci.& !" las Estrctras !"Datos
INTRODUCCIÓN
Codas las aria&les .ue se an considerado
asta el !o!ento son de tipo si!ple' na
aria&le de tipo si!ple consiste de una sola
ca$a de !e!oria y sólo puede contener un
alor cada ez' na aria&le de tipo
estructurado consiste en toda una colección
de casillas de !e!oria'
os tipos de datos estudiados) entero" real" ala&%tico son considerados co!o datos
de tipo si!ple" puesto .ue una aria&le .ue se deine con al#uno de estos tipos
sólo puede al!acenar un alor a la ez" es decir e<iste una relación de uno a uno
entre la aria&le y el n!ero de ele!entos alores .ue es capaz de al!acenar'
En ca!&io un dato de tipo estructurado" co!o el arre#lo" puede al!acenar !ás de un
ele!ento alor a la ez" con la condición de .ue todos los ele!entos de&en ser del
!is!o tipo" es decir" .ue se puede tener un con$unto de datos enteros" reales" etc'
CLASIFICACION DE LOS DATOS SI9PLES
D#to% Nu+;r!o%: =er!iten representar alores escalares de or!a nu!%rica" esto
incluye a los n!eros enteros y reales' Estos tipos de datos per!iten realizar
operaciones arit!%ticas co!unes'
D#to% L"!o%: ;on a.uellos .ue solo pueden tener dos alores cierto o also ya
.ue representan el resultado de una co!paración entre otros datos nu!%ricos o
alanu!%ricos'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 33/143
D#to% A(#nu+;r!o% Str!n/: ;on una secuencia de caracteres alanu!%ricos .ue
per!iten representar alores identiica&les de or!a descriptia" esto incluye no!&res
de personas" direcciones" etc' Es posi&le representar n!eros co!o alanu!%ricos"pero estos pierden su propiedad !ate!ática" es decir no es posi&le acer operaciones
con ellos' Este tipo de datos se representan encerrados entre co!illas'
DEFINICION DE EPRESIÓN: as e<presiones son co!&inaciones de
constantes" aria&les" s!&olos de operación" par%ntesis y no!&res de unciones
especiales'
DEFINICION DE OPERADOR < SUS TIPOS
O,$r#dor$%: ;on ele!entos .ue relacionan de or!a dierente" los alores de una
o !ás aria&les yZo constantes' os operadores per!iten !anipular alores'
TIPOS DE OPERADORES
R$(#!"n#($%: (o!para estos alores entre s y esta co!paración produce un
resultado de certeza o alsedad erdadero o also'
L"!o%: +peradores .ue se utiliza para esta&lecer relaciones entre alores ló#icos'
os operadores relaciónales co!paran alores del !is!o tipo nu!%ricos o
cadenas'
Cene!os los si#uientes operadores
Y
+ +
+ +C
DEFINICIÓN DE CONSTANTE: na constante es un dato nu!%rico oalanu!%rico .ue no ca!&ia durante la e$ecución del pro#ra!a'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 34/143
Universidad Privada
DEFINICIÓN DE ARIA=LE
Es un espacio en la !e!oria de la co!putadora .ue per!ite al!acenar
te!poral!ente un dato durante la e$ecución de un proceso" su contenido puede
ca!&iar durante la e$ecución del pro#ra!a' =ara poder reconocer una aria&le en la!e!oria de la co!putadora" es necesario darle un no!&re con el cual poda!os
identiicarlo dentro de un al#orit!o'
CLASIFICACION DE LAS ARIA=LES POR SUCONTENIDO
#r!#*($% Nu+;r!#%: ;on a.uellas en las cuales se al!acenan alores nu!%ricos"
positios o ne#atios" al!acenan n!eros del 0 al 9" si#nos P y - y el punto deci!al'
E$e!plo) iaH0'15 piH3'1416 costoH2500
#r!#*($% L"!#%: ;on a.uellas .ue solo pueden tener dos alores
CE o G;E + ;; E[*/ECE; ;* - +" estos representan
el resultado de una co!paración entre otros datos'
#r!#*($% A(#nu+;r!#%: Están or!adas por caracteres
alanu!%ricos letras" n!eros y caracteres especiales'
E$e!plo)letraH\a\ apellidoH\lopez\ direccionH\' i&ertad ]190\
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 35/143
CLASIFICACIÓN DE LAS ARIA=LES POR SU USO
#r!#*($% d$ Tr#*#5o: /aria&les .ue reci&en el resultado de una operación
!ate!ática co!pleta y .ue se usan nor!al!ente dentro de un pro#ra!a'E$e!plo) su!a H a P & Z c
Cont#dor$%: ;e utilizan para llear el control del n!ero de ocasiones en .ue se
realiza una operación o se cu!ple una condición' (on los incre!entos
#eneral!ente de uno en uno' ;u uso !ás co!n es dentro de &ucles'
Au+u(#dor$%: Gor!a .ue to!a una aria&le y .ue sire para llear la su!a
acu!ulatia de una serie de alores .ue se an leyendo o calcu
lando pro#resia!ente aHaP3 en un ciclo desde por e$e!plo .ue es donde !ás
se usan'
DATOS ESTRUCTURADOS:
Estructura de atos es una colección de datos .ue se caracteriza por su
or#anización y las operaciones .ue se deinen en ella' os datos de tipo estándar
pueden ser or#anizados en dierentes estructuras de datos) estáticas y diná!icas'
CLASIFICACIÓN DE LAS ESTRUCTURAS DE DATOS
ESTRUCTURA DE DATOS ESTTICAS: Es a.uella en la .ue el espacio
ocupado en !e!oria se deine en tie!po de co!pilación y no puede ser
!odiicado durante la e$ecución del pro#ra!a' (orresponde a este tipo)
#/ rre#los nidi!ensionales arre#los
*/ rre#los ,ultidi!ensionales !atrices
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 36/143
ESTRUCTURAS DE DATOS DIN9ICAS:
;on a.uellas en las .ue el espacio ocupado
en !e!oria puede ser !odiicado en tie!p
de e$ecución' (orresponden a este tipo)
1. istas Enlazadas
. =ilas
3. (olas
4. Dr&oles
6. (on$untos
7. Fraos
@. Ca&las Xas
ARRE8LOS ARRA<S/
n Arreglo es una estructura de datos .ue al!acena &a$o el !is!o no!&re aria&le
a una colección de datos del !is!o tipo'
os arre#los se caracterizan por ser)
Finita: Codo arre#lo tiene un l!iteK se de&e deter!inar cuál será el n!ero !á<i!o
de ele!entos .ue podrán or!ar parte del arre#lo'
Homogénea: Codos los ele!entos del arre#lo de&en ser del !is!o tipo'
Ordenada: ;e puede deter!inar cuál es el pri!er ele!ento" el se#undo" el tercero"'''
y el n-%si!o ele!ento
o
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 37/143
EDAD 1 1? 6 3
NDICE 0 1 2 3 4
lenado de un /ector
=ode!os o&serar un arre#lo unidi!ensional con las si#uientes caractersticas)
- on#itud) 5 Ele!entos
- =ri!era posición) 0
- ^lti!a posición) on#itud-1
- o!&re del rre#lo) EDAD
si#nar datos a las posiciones de un arre#lo) +&tener datos del arre#lo)
EM1N H 18 <HEM2N
EM2N H 22 yHEM3N
EM3N H 25 zHEM4N
os arre#los se clasiican de acuerdo con el n!ero de di!ensiones .ue tienen' s
se tienen los)
- nidi!ensionales ectores
- Aidi!ensionales ta&las o !atrices
- ,ultidi!ensionales tres o !ás di!ensiones
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 38/143
,# +E T'%A* %E OMEN&A&A*
CONCEPTOS =ASICO DE PRO8RA9ACION
tt p) ZZJ J J'! ail < ! a i l'c o ! Zc u rs o -ap rende -p ro# ra ! a rZ c on c epto s -& a s i c o s -
p ro# ra ! a c i o n
ESTRUCTURAS SELECTIAS SI9PLES
tt p) ZZJ J J'! ail < ! a i l'c o ! Zc u rs o -ap rende -p ro# ra ! a rZti p o s -e stru c t u ra s - s e l e c t i a s -
e stru c t u ra -s i ! p l e
-# A TI.I&A&E* / E0E% I IO*
#/ Buan" a.uel y aniel aportan cantidades de dinero para or!ar un capital'
Buan y a.uel aportan en dólares y aniel en soles' ise>e un pro#ra!a .ue
deter!ine el capital total en dólares y .ue porcenta$e de dico capital aporta
cada uno' (onsidere .ue) 1 dólar H 3'25 soles'
Ena a tra%s de la actiidad “Capita! " el ia#ra!a de Glu$o .ue
rele$e el dise>o del pro#ra!a'
*/ un tra&a$ador le descuentan de su sueldo el 10_" si su sueldo es !enor o
i#ual a 1000" si es por enci!a de 1000 y asta 2000 el 5_ del adicional es
decir del !onto .ue so&repasa de 1000" y por enci!a de 2000 el 3_ del
adicional es decir del !oto .ue so&repasa de 2000' (alcular el descuento y
sueldo neto .ue reci&e el tra&a$ador dado su sueldo'
Ena a tra%s de la actiidad “S"edo! " el pseudo-códi#o .ue
utilizaras para el dise>o del pro#ra!a'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 39/143
1# A'TOE.A+'A I(N
1. Un #(or!t+o $%:#/ El resultado del procesa!iento de datos'*/ na serie de pasos or#anizados .ue descri&e el proceso a se#uir" para dar
solución a un pro&le!a especico'/ esarrollado solo para las co!putadoras'd/ n procedi!iento en pasos iteratios en or!a secuencial'$/ n resultado o respuesta si#niicatia con la .ue se puede to!ar decisiones'
. Cu( no $% un# +$todo(o2# ,#r# on%tru!r un orr$to #(or!t+oH
#/ einición del pro&le!a Enunciado*/ einición de la solución nálisis del pro&le!a/ esarrollo del pro&le!a (odiicaciónd/ epuración y prue&as Ealuación de esultados$/ ise>o del pseudocódi#o del al#orit!o
3. Un P%$udo"d!o $%:#/ n len#ua$e .ue solo utiliza la co!putadora'*/ n len#ua$e natural no apropiado para la descripción de al#orit!os'/ na descripción de los al#orit!os" para resoler pro&le!as'
d/ =er!ite descri&ir una secuencia de pasos en particular'$/ n len#ua$e de &a$o niel'
4. Un# $%trutur# ond!!on#( $%:#/ na instrucción de condición !ltiple'*/ na instrucción .ue solo to!a una acción deter!inada'/ na instrucción .ue eala una condición y en unción del resultado de esa
condición se &iurcará a un deter!inado punto'd/ a instrucción solo per!ite seleccionar una acción'$/ ;olo es para co!prar resultados en or!a ló#ica'
6. L#% $%trutur#% d$ ond!!"n +(t!,($ %on:#/ as .ue per!iten co!parar un solo resultado'*/ as .ue co!para una aria&le contra distintos posi&les resultados"
e$ecutando para cada caso una serie de instrucciones especiicas'/ as .ue e$ecutan arias instrucciones para deter!inar arios acciones'd/ as .ue per!ite acer arias co!paraciones en or!a ló#ica'$/ os .ue no son de uso co!n en los len#ua$es de pro#ra!ación'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 40/143
7. L#% $%trutur#% r$,$t!t!#% o 2(!#% %on:#/ as acciones .ue se e$ecutan una sola ez'*/ n con$unto de acciones .ue se puedan e$ecutar una cantidad especica de
eces'/ as .ue per!iten e$ecutar acciones en or!a indeinida'd/ as acciones se deinen y e$ecutan n-1 cantidad de eces'$/ as .ue no son per!itidas en los len#ua$es de pro#ra!ación'
@. L# $%trutur# r$,$t!t!# +!$ntr#% $n !n(;% K!($/ $%:#/ na repetición se .ue utiliza con e<actitud la cantidad de iteraciones*/ (uando se e$ecuta la instrucción !ientras y es also las acciones se e$ecutan'/ na repetición de las acciones !ientras se cu!ple una deter!inada
condición'
d/ (uando la e$ecución de la instrucción solo es e$ecuta una sola ez$/ (uando no es necesario para estructura de repetición'
?. Un ,ro$d!+!$nto $%:#/ n su&pro#ra!a .ue solo per!ite reci&ir un solo alor co!o pará!etro de
entrada'*/ n su&pro#ra!a .ue deuele solo un alor co!o resultado del
procedi!iento'/ n su&pro#ra!a .ue realiza una tarea especica' eci&e y deuele cero o
!ás alores a dico pro#ra!a'
d/ n su&pro#ra!a .ue deine a un al#orit!o'$/ n su&pro#ra!a .ue e$ecuta una cantidad ininita de acciones'
. Un# $%trutur# d$ d#to% $%:#/ na estructura unidi!ensional .ue al!acena alores de distinto tipo'*/ na estructura .ue al!acena una cantidad ininita de alores/ .uello .ue per!ite al!acenar arios alores dierentes en su estructura'd/ /aria&le .ue reci&e el resultado de una operación !ate!ática co!pleta'$/ na colección de datos .ue se caracterizan por su or#anización y las
operaciones .ue se deinen en ella'
10. >u; $% un# #r!#*($H#/ Es un espacio en la !e!oria .ue per!ite al!acenar te!poral!ente un dato
durante la e$ecución de un proceso'*/ ;u contenido no puede ca!&iar durante la e$ecución del pro#ra!a'/ a co!putadora le asi#na un no!&re para identiicarla'd/ o per!ite ser utilizada dentro de un al#orit!o'$/ El alor de la aria&le es nica en la !e!oria de la co!putadora'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 41/143
2# %E*'MEN
UU N NIIDDAADD DDEE AAPPR R EE N NDDIIZZAAJJEE I:I:
n al#orit!o es una serie de pasos or#anizados .ue descri&e el proceso .ue se
de&e se#uir" para dar solución a un pro&le!a especico' =ara desarrollar un
al#orit!o tene!os .ue se#uir los si#uientes pasos) 1 einir el pro&le!a 2
nalizar el caso' 3 ise>ar el al#orit!o 4 (odiicar el pro#ra!a 5 =rue&a y
e$ecución'
En un al#orit!o es necesario tener estructura de decisión o selección .ue eala
una condición y en unción del resultado de esa condición se &iurcará a un
deter!inado punto' as estructuras selectias se utilizan para to!ar decisiones
ló#icas" de a .ue se suelen deno!inar ta!&i%n estructuras de decisión oalternatias
as estructuras .ue repiten una secuencia de instrucciones" un n!ero
deter!inado de eces se deno!inan *u($%" y se lla!a !t$r#!"n al eco de
repetir la e$ecución de una secuencia de acciones'
n arre#lo es una estructura de datos .ue al!acena &a$o el !is!o no!&re
aria&le a una colección de datos del !is!o tipo y se clasiica en arre#los
unidi!ensionales ectores o arre#los !ultidi!ensionales !atrices' os datos
al!acenados en un arre#lo son de carácter te!poral'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 42/143
ersidad Privada TELESUP
UNIDAD
DEAPRENDIZA
JE
OPERACIONES CON ARRE8LOSUNIDI9ENSIONALES
OMPETEN IA:
Univ
Algorítmica y Estructura de Datos
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 43/143
Al finalizar esta unidad usted será capaz
de
“Construiralgoritmos para resol!er
pro3lemas
Página ,6
3asados en estructuras de datos estáticas"#
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 44/143
Universidad Privada
$# INT%O&' I(N
#/ P r $ % $ n t# !"n & o n t$ ' tu # (! ) # !"nEl alu!no desarrolla una actitud analtica .ue le per!ita aplicar las
operaciones &ásicas con los datos nu!%ricos de un arre#lo unidi!ensional"
co!o su!ar" pro!ediar" allar !á<i!o" allar !ni!o '
*/ C o + , $ t$ n !# %
(onstruye al#orit!os para resoler pro&le!as &asados en estructuras de datos
estáticas'
/ C # , # !d # d $ %
• plica las operaciones de su!a" pro!edio" alor !á<i!o y !ni!o de losalores car#ados en el arre#lo unidi!ensional'
• *dentiica y desarrolla a&ilidades &ásicas para la recolección de datos'
*nsertar" ,odiicar" Eli!inar y Auscar ele!entos dentro de un arre#lo'
• *dentiica y desarrolla a&ilidades co!ple$as para unir dos arre#los
unidi!ensionales'
• esarrolla soluciones utilizando recursiidad y reconoce las enta$as y
desenta$as de su uso'
d/ A t !tu d $ % esarrolla una actitud e!prendedora !ediante la to!a de iniciatias'
cta con responsa&ilidad personal" al cu!plir con los orarios
esta&lecidos'
espeto a las nor!as de coniencia'
(u!ple con la presentación de los tra&a$os enco!endados de !anera
indiidual y en e.uipo'
$/ P r$ %$ nt# !"n d$ !d$# % *%!# % & ont$ n!do $ %$ n !# ($ % d$ (# Un!d# d
L# Un!d#d d$ A,r$nd!)#5$ o+,r$nd$ $( d$%#rro((o d$ (o% %!u!$nt$%t$+#%:
1. O,$r#!on$% #(or2t+!#% on #rr$(o% un!d!+$n%!on#($%.
. 9;todo% d$ r$o($!"n d$ d#to%.
3. O,$r#!on$% on $tor$%.
4. R$ur%!!d#d.
Algorítmica y Estructura de DatosPágina ,0
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 45/143
TEMA
O*"racio&"s
algorítmicasco& arr"glos
&i!im"&sio&al"s
Universidad Privada TELESUP
Algorítmica y Estructura de Datos Página ,2
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 46/143
Algorítmica y Estructura de Página
)# &E*A%%O++O &E ONTENI&O*
T$+# 1: O,$r#!on$% A(or2t+!#% on Arr$(o% Un!d!+$n%!on#($%
(o!o sa&e!os un Arr$(o ARRA</ es una estructura de datos en la .ue se
al!acena una colección de datos del !is!o tipo'
E5$+,(o: as notas de los estudiantes' Cienen un nico no+*r$ d$ #r!#*($
NOTAS/" .ue representa todos los ele!entos" los cuales se dierencian por
un 2nd!$ o %u*2nd!$ 0"1" 2" 3Vn" pueden ser enteros" no ne#atios"
aria&les o
e<presiones enteras'
NOTAS 1 1? 0 V 13
NDICE
D E CL A R A C I O N D E UN A RR E G L O .- Lo% #rr$(o% un!d!+$n%!on#($% %$
d$(#r#n d$ (# %!u!$nt$ +#n$r#:
TIPO !d$nt!!#dor M ARRA< Wt!,o-%u* 2nd!$X OF t!,oY
Donde#
!d$nt!!#dor ) es el no!&re del arre#lo'
t!,o-%u*2nd!$) puede ser tipo ordinal &ooleana o car"
tipo enu!erado o tipo su& ran#o' o pueden ser usados los
tipos estándar real o inte#er'
t!,o) se reiere al tipo de los ele!entos y puede ser de
cual.uiera de los tipos estándar o deinido por el usuario'
0
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 47/143
VA RIA BLE STIP OA RRA Y .- se declaran co!o)
AR no+*r$#r: no+*r$#rr#&Y
Donde#
no+*r$#r ) es cual.uier identiicador álido .ue representa el no!&re de
la aria&le'
No+*r$#rr#&) no!&re del arre#lo utilizado en el T<PE.
E$empo#
T<PE ALORESM ARRA<W-10...10XOF INTE8ERY
AR PRECIOS: ALORESY
N O T A S:
as declaraciones de arre#los pueden
aparecer directa!ente en la sección dearia&les" pero es preeri&le no acerlo'
as declaraciones de ndices tipo-ndice no
pueden contener aria&les'
AR 9UESTRA: ARRA<W1VNXOFREALY INCORRECTO" salo .ue
aya sido declarado co!o una constante'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 48/143
OP ERA CION ES CON A RREGL OSUN IDIMENS ION AL ES OV ECT ORES :
=ara leer los ele!entos de un arre#lo de&en utilizarse estructuras de repetición'
E$empo# C*=+ *;C+CHYM1V30N+GEY
/ EG*'+C;)*;C+C)FOR
[ILE
=ara iH1 a 30 acer
EE*;C+CMiN
Gin =ara
iH1,ientrasiSH30 Xacer
EE*;C+CMiNiHiP1
Gin ,ientras
ESCRITURA:
=ara iH1 a 30 acer
EEota
*;C+CMiN H ota
Gin =ara
COPIAR: ;ólo cuando a!&os tienen el !is!o tipo y el !is!o ta!a>o'
=ara iH1 a 30 acer
EG*MiNH*;C+C;MiN o %!+,($+$nt$:
EG*H+C;
Gin =ara
SU9AR LOS DATOS DE UN ARRE8LO UNIDI9ENSIONAL
;e de&erá recorrer todos los datos del arre#lo u%#r (# $%trutur# FOR'
entro de la estructura repetitia" acu!ular cada uno de los datos del arre#lo
en una aria&le acu!ulador nu!%rica'
etornar el alor acu!ulado en la aria&le nu!%rica'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 49/143
M ét odo Su ma r
T!,o d$ d#to Bu$ r$torn# o+o r$%,u$%t#: dou&le
Aru+$nto% Bu$ r$!*$: on#itud del arre#lo n
Fun!onSu+#r /ec)array) realacu!)real eclaración de aria&lesi) entero
acu!H0 inicio del acu!ulador =ara iH1 a 30 acer recorre el arre#lo
acu!H acu! P /ecMiN cu!ulador Gin =ara;,Hacu! si#nación a la unción
Gin uncion
P rome da r ! o" da t o" de u# a rre $! o u# dm e #"o#a !
;e de&erá recorrer todos los datos del arre#lo U%#r (# $%trutur# FOR'
entro de la estructura repetitia" acu!ular cada uno de los datos del arre#lo
en una aria&le acu!ulador nu!%rica'
ue#o de ter!inar la estructura repetitia" diida el alor acu!ulado entre la
cantidad de ele!entos .ue contiene el arre#lo
etornar el alor o&tenido en el paso anterior'
Fun!on Pro+$d!#r /ec)array) real cu!"pro!) real eclaración de aria&lesi) entero
acu!H0 *nicio del acu!ulador =ara iH1 a 30 acer ecorre el arre#lo
acu!H acu! P /ecMiN cu!ulador Gin =ara
=ro!H acu!Z30 iidi!os por lon#itud de alores del arre#lo=+,E*H=ro! si#nación a la unción
Gin Guncion
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 50/143
E L VA LO R M% &IMO DE LOS DA TO S CO NTENIDO S E N UN A RRE GLO
UNIDIME NSIO NA L
1. ;e de&e to!ar ipot%tica!ente .ue el pri!er dato del arre#lo es el !ayor'. ;e de&erá recorrer el arre#lo desde la se#unda posición asta la lti!a
posición' Esto per!itirá ealuar cada uno de los datos del arre#lo' U%#r (#
$%trutur# FOR'
3. entro de la estructura repetitia" pre#untar si el supuesto !ayor es !enor .ue
el dato ealuado'
4. ;i se cu!ple lo anterior" entonces ese dato ealuado se conertirá en el nueo
!ayor" de lo contrario pasa!os a ealuar el si#uiente dato'
6. ue#o de ter!inar la estructura repetitia" retornar el lti!o alor o&tenido en laaria&le !ayor'
Fun!on9#&or /ec)array) entero/al,a<) entero eclaración de aria&lesi) entero
/al,a<HecM1N inicio del alor !á<i!o
=ara iH2 a 30 acer recorre el arre#lo;i /ecMiN T/al,a< entonces/al,a<H /ecMiN
Gin siGin =ara
,Y+H/al,a< si#nación a la unciónGin Guncion
'A LLA R EL VA LO R M(NIMO DE LO S DA TO S CONTENIDO S EN UN ARR EG LO
UNIDIMENSIO NA L
1. ;e de&e to!ar ipot%tica!ente .ue el pri!er dato del arre#lo es el !enor'
. ;e de&erá recorrer el arre#lo desde la se#unda posición asta la lti!a posición'
3. entro de la estructura repetitia" pre#untar si el supuesto !enor es !ayor .ue
el dato ealuado'
4. ;i se cu!ple lo anterior" entonces ese dato ealuado se conertira en el nueo
!enor" de lo contrario pasa!os a ealuar el si#uiente dato'
6. ue#o de ter!inar la estructura repetitia" retornar el lti!o alor o&tenido en la
aria&le !enor'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 51/143
Fun!on9$nor /ec)array) entero/al,in) entero eclaración de aria&lesi) inte#er
/al,inHecM1N inicio del alor !ni!o=ara iH2 a 30 acer recorre el arre#lo;i /ecMiN S/al,in entonces
/al,inH /ecMiNGin si
Gin =ara,Y+H/al,in si#nación a la unción
Gin unción
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 52/143
TEMA
M1to!os!"
R"col"cci.&!"
Dato
s
Universidad Privada TELESUP
Algorítmica y Estructura de Datos Página ,5
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 53/143
Algorítmica y Estructura de Página
T$+# : 9;todo% d$ R$o($!"n d$ D#to%
Ca r$a r ! o" dat o" e # u# a rre$! o u#d me #"o#a !
;e solicitará la posición en donde desee insertar'
*ncre!entar la lon#itud del arre#lo en una posición'
;olicitar el nueo dato y al!acenarlo en la posición se>alada por el usuario'
Aru+$nto% Bu$ r$!*$: =osición" dato y lon#itud'
Pro$d!+!$nto C#r#r / /ec)array" pos)enterodato)entero" i)entero eclaración de aria&les
=ara iH1 a pos acer
/ecMiN H dato Cranserir el ele!ento a la posición correcta
Gin =ara
Gin =rocedi!iento
I#"e rt a r ! o" da t o" e # u# a rre $! o u# dme #"o#a !
;e solicitará la posición en donde desee insertar'
*ncre!entar la lon#itud del arre#lo en una posición'
ue#o se procederá a transerir los ele!entos una posición acia la dereca"
co!enzando desde el lti!o ele!ento asta la posición donde se desea
insertar'
;olicitar el nueo dato y al!acenarlo en la posición se>alada por elusuario'
Pro$d!+!$nto In%$rt#r / /ec)array" pos)entero" dato)entero" i)entero
,ientras iTHpos acer
/ecMiP1N H/ecMiN Cranserir el ele!ento a la posiciónsi#uiente
i H i - 1
Gin ,ientras
/ecMposN H dato =osicionar el nueo dato
Gin =rocedi!iento
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 54/143
M od)*a r ! o" dat o" e # u# a rre$! o u#dme #"o#a !
;e solicitará la posición en donde desee !odiicar'
ue#o se procederá al!acenar el nueo dato en la posición
indicada" so&rescri&iendo al dato anterior'
,ostrar los datos del arre#lo nuea!ente'
Aru+$nto% Bu$ r$!*$: ato y posición
=rocedi!iento !odiicardatos /ar /ec)array" dato)inte#er" pos) inte#er
/ecMposNHdato
Gin =rocedi!iento
E ! m#a r ! o" da t o" e# u# a rre $! o u# dm e #"o#a!
- ;e solicitará la posición del ele!ento .ue se desea eli!inar'
- ecre!entar la lon#itud del arre#lo en una posición'- ue#o se procederá a transerir los ele!entos una posición acia la iz.uierda"
co!enzando desde la posición a eli!inar asta la penlti!a posición'
- /oler a !ostrar los datos del arre#lo'
Aru+$nto% Bu$ r$!*$: =osición y lon#itud
=rocedi!iento Eli!inar / /ec)array" pos)entero" i)entero
/ar $) entero
=ara $Hpos asta i-1 acer
/ecM $ N H/ecM $P1N Cranserir el ele!ento a la posición anterior
Gin =ara
Gin =rocedi!iento
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 55/143
Bu"*a r da t o" e # u# a rre $! o u#dme#"o#a!
- *n#resar el dato .ue se desea &uscar
- (o!parar el dato in#resado con cada uno de los datos del arre#lo'
- ;i el dato a sido allado !ostrar la posición donde se encontró a dico dato'
Aru+$nto% Bu$ r$!*$: dato" lon#itud
=rocedi!iento Auscar /ec)array" dato)inte#er" n)entero
/ar i"a) entero
aH0
iH0
,ientras iSHn acer
;i ecMiNHdato entonces
aHi =ara la posición del alor encontrado
iHn =ara salir de la condición !ientras
Gin ;i
iHiP1
Gin ,ientras;i aH0 entonces
Escri&ir ?o senti!os" el dato no a sido encontrado'''@
;ino
Escri&ir ?El ato se encontró en la posición) ?"a
Gin ;i
Gin procedi!iento
Im+ rmr dat o" e# u# a rre $! o u#d me #"o#a !
9o%tr#+o% $( d#to d$ #d# ,o%!!"n d$( $tor un!d!+$n%!on#(.
Aru+$nto% Bu$ r$!*$: dato" lon#itud'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 56/143
=rocedi!iento *nsertar / /ec)array" pos)entero
dato)entero" i)entero eclaración de aria&les
=ara iH1 a pos acer
*!pri!ir /ecMiN *!pri!e los ele!entos del ector'
Gin =ara
Gin =rocedi!iento
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 57/143
1 1
3 3
4 4TEMA 6
O*"racio&"sco&
("ctor
"s
Universidad Privada TELESUP
Algorítmica y Estructura de Datos Página -,
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 58/143
Universidad Privada
Algorítmica y Estructura de Página
T"ma ,$ O*"racio&"s co& ("ctor"s
M o"t ra r ! o" e !eme #t o" * om u#e" e #t re do" a rre $! o" u# dme #"o#a !e "
ecorrer el pri!er arre#lo
entro de cada posición del arre#lo " recorrer el arre#lo A y pre#untar si el
dato ealuado del arre#lo es i#ual .ue el dato .ue se eala en A" si es si"
al!acenar el dato co!n dentro de una cadena'
l inalizar las estructuras repetitias" !ostrar la cadena .ue acu!uló a los
datos co!unes
;e de&en !ostrar los datos co!unes" sin .ue al#uno de estos se repita'
T!,o d$ d#to Bu$ r$torn# o+o r$%,u$%t#: ;trin#
Aru+$nto% Bu$ r$!*$: lon#itud del pri!er arre#lo y lon#itud del se#undo arre#lo'
=rocedi!iento !ostrar(o!unesnicos /ec)array" n)entero" n&)entero
i" $" nc) entero eclaración de aria&les
ncH0 inicio del alor contador
=ara iH0 a n-1 acer recorre el arre#lo
=ara $ H 0 a n&-1
;i /ecMiN H /ecAM$N entonces
/ecMncNH /ecMiN
ncHncP1
Gin si
Gin =ara
Gin =ara
$(!+!n#rR$,$t!do%C/ si#nar el procedi!iento para eli!inar repetidos
+o%tr#rTodo%(o%D#to%C/ ,ostrar los ele!entos del ector
Gin =rocedi!iento
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 59/143
U#r ! o" dat o" de do" a rre $! o" e# u# ter* e r arre$! o
ecorrer el pri!er arre#lo'
Eniar cada dato del arre#lo acia el arre#lo (" conserando la !is!a
posición ori#inal'
ecorrer el se#undo arre#lo'
Eniar cada dato del arre#lo A acia el arre#lo (" co!enzando desde la
posición ?nPi@'
T!,o d$ d#to Bu$ r$torn# o+o r$%,u$%t#: entero'
Aru+$nto% Bu$ r$!*$: lon#itud del pri!er arre#lo y lon#itud del se#undo arre#lo'
=rocedi!iento unirrre#los /ec)array" n)entero" n&)entero) entero
i" $" nc) entero eclaración de aria&les
ncHn P n& inicio del alor contador
=ara iH0 a n-1 acer recorre el arre#lo
/ecMiNH /ecMiN
Gin =ara
epetir $ H 0 a n&-1/ecM$PnNH /ecM$N
Gin repetir
+o%tr#rTodo%(o%D#to%C/ ,ostrar los ele!entos del ector
Gin =rocedi!iento
M o"t ra r ! o" e !eme #t o" de u# a rre$! o u#dme#"o#a ! , * om+a ra r e! + rome do * o#*a da e! eme #t o
Enun!#do) Dados 50 números enteros, obtener el promedio de ellos. Mostrar por
pantalla dicho promedio y los números ingresados que sean mayores que el
mismo.
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 60/143
Universidad Privada
=ro#ra!a E$e!ploK
const !a< H 50
type
tWnu!eros H arrayM1'' !a<N tipo entero
aria&les
su!a" i ) entero
pro!edio) real
nu!eros ) tWnu!eros
inicio
su!a )H 0K
=ara i)H 1 a !a< acer
leernu!erosMiN
su!a)H su!a Pnu!erosMiN
Gin =ara
=ro!edio)H su!aZ!a<
*!pri!ir `El pro!edio es `"=ro!edio`K
=ara i )H 1 a 50 acer
;i nu!erosMiN T pro!edio entonces
i!pri!ir `El n!ero`" nu!erosMiN" `es !ayor al pro!edio`K
Gin ;i
Gin pro#ra!a'
I#te r*a !a* # de do" a rre $! o" orde#a do" e# u# te r*e r a rre$! o orde#a do
El !%todo se utiliza para #enerar un con$unto ordenado datos a partir de dos
con$untos de datos ordenados' El proceso consiste en seleccionar
sucesia!ente los ele!entos de cada uno de los con$untos pri!itios y or!arotro con$unto .ue tendrá todos sus ele!entos ordenados'
T!,o d$ d#to Bu$ r$torn# o+o r$%,u$%t#: ector entero'
Aru+$nto% Bu$ r$!*$: lon#itud del pri!er arre#lo y lon#itud del se#undo arre#lo'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 61/143
=ro#ra!a *ntercalación
/aria&les) /1" /2 ," /P,) ector de enteros
*" B" " ," " b) enteros
*nicio
* H 1
B H1
H1
,ientras *SH y BSH , acer
%$ o+,#r#n do% $($+$nto% uno d$ #d# $tor & %$ d$t$r+!n# $( +$nor
;i /1* S /2B entonces
/ H /1*
* H* P 1
H P 1
;ino
Gin si
/ H/2B
B HB P 1
H P 1
Gin !ientras
S! %o*r#ron $($+$nto% d$ uno u otro $tor %$ (o% #\#d$ #( !n#(;i * S entonces
=ara b H * asta acer
/ H/1b
H P 1
Gin para
Gin si
;i B S , entonces
=ara b H B asta acer / H/1b
H P 1
Gin para
Gin si
Gin pro#ra!a
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 62/143
TEMA
R"crsi+i!a!
Universidad Privada TELESUP
Algorítmica y Estructura de Datos Página -5
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 63/143
Algorítmica y Estructura de Página
T"ma /$R"crsi+i!a!
DE INICI/ N
n procedi!iento o unción se dice .ue es recursio si durante su e$ecución se
inoca directa o indirecta!ente a s !is!o' Esta inocación depende al !enos de
una condición .ue acta co!o condición de corte .ue prooca la inalización de
la recursión'
Un #(or!t+o r$ur%!o on%t# d$:
1. l !enos un caso triial o &ase" es decir" .ue no uela a inocarse y .ue seactia cuando se cu!ple cierta condición'
. El caso #eneral .ue es el .ue uele a inocar al al#orit!o con
un caso !ás pe.ue>o del !is!o'
os len#ua$es .ue soportan recursiidad" dan al pro#ra!ador
una erra!ienta poderosa para resoler ciertos tipos de
pro&le!as reduciendo la co!ple$idad u ocultando los detalles delpro&le!a' a recursión es un !edio particular!ente poderoso en
las deiniciones !ate!áticas'
E5$+,(o: (alcular el actorial de un n!ero no ne#atio' eini!os el pro&le!a de
la si#uiente !anera)
;i n H 0 C#%o =#%$
F#tor!#( n/ n H n I n - 1 I n - 2 IVI 1 H n I n - 1 " si n T 0
=or deinición G(C 0 H 1 y el actorial de un n!ero ne#atio es indeinido' El
caso &ase en la recursión es el Gactorial 0 el .ue se deine en el caso de n
positio es) G(C n H nI n-1 I n-2 I'''I 1'ado .ue n se asu!e positio"
decre!entando en 1 cada ez .ue se lla!a al actorial se sa&e .ue sie!pre
será alcanzado el caso &ase'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 64/143
An#(!)#ndo $( F#tor!#( M nF#tor!#( n-1/ $%t# %$nt$n!# t!$n$ $( %!u!$nt$
$$to:
;i calcula!os el Gactorial 3" usando esta deinición
Gactorial 3 H 3 I Gactorial 2
Gactorial 2 H 2 I Gactorial 1
Gactorial 1 H 1 I Gactorial 0
Gactorial 0 H 1
a aplicación de la deinición recursia se detiene y la inor!ación o&tenida se
puede usar para responder la pre#unta ori#inal actorial 3
ado .ue)
Gactorial 0 H 1 entonces
Gactorial 1 H 1 I 1 H 1" entonces
Gactorial 2 H 2 I 1 H 2" entonces
Gactorial 3 H 3 I 2 H 6
Gunción Gactorial n) entero) entero
acer
si nH0 entonces Gactorial )H1
sino Gactorial )H n I Gactorial n-1
in si
in acerin unción
C/ M O UNCIO NA N LO S ALGO RITM O S RE CURSIVO S
=ara entender có!o unciona la recursiidad es necesario .ue ten#a!os
presente las re#las y los tipos de pasa$e de pará!etros proistos por el len#ua$e
de pro#ra!ación' tiliza!os el si#uiente !%todo)
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 65/143
M ét odo de !a * a0 a
otular con una letra el lla!ado recursio en el cuerpo del su&pro#ra!a
recursio' En el e$e!plo Gactorial n-1 lo lla!a!os A' os serirá para sa&er
e<acta!ente a dónde se de&e retornar despu%s .ue la lla!ada a la unción se
co!plete'
(ada lla!ada recursia eca al su&pro#ra!a en el
transcurso de la e$ecución a a #enerar una nuea
ca$a" .ue contendrá el a!&iente local del
su&pro#ra!a' Esto es" las aria&les y pará!etros
.ue se crean en el lla!ado y se destruyen cuando
se ter!ina la e$ecución' (ada ca$a contendrá
entonces)
El alor de los pará!etros or!ales'
as aria&les declaradas local!ente no e<isten en el e$e!plo'
n lu#ar para el alor a ser retornado por cada lla!ada
recursia #enerada a partir de la ca$a corriente !arcada con el rótulo'
El alor de la unción !is!a'
(uando se crea una nuea ca$a se di&u$a una leca desde la ca$a donde se
izo la lla!ada acia la nuea' ;o&re la leca se pone el no!&re de la lla!ada
rotulo para indicar a dónde se de&e retornar'
(o!enzar la e$ecución del cuerpo del su&pro#ra!a
con los alores correspondiente al á!&ito local de laca$a corriente' (uando ter!ina la e$ecución de la ca$a
corriente y se uele acia atrás en las ca$as" la
anterior es aora la corriente y el no!&re en la leca
indica el lu#ar a donde se de&e retornar y continuar la
e$ecución del su&pro#ra!a' El alor calculado se
coloca en el te! apropiado en la ca$a corriente'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 66/143
Universidad Privada
E5$+,(o: /a!os a calcular el Gactorial 3
la!ada ori#inal) Gactorial3 co!ienza la e$ecución
otulon H 3
) Gactorialn-1H
En $( ,unto A #$ un# ((#+#d# r$ur%!# & (# nu$# !no#!"n d$ (# un!"n
#tor!#( o+!$n)# %u $5$u!"n #%t# (($#r #( #%o *#%$ $n dond$ t$r+!n#.
n H3 A
4)Gactorialn-1H
n H 2
4)Gactorialn-1H
n H3 A
4)Gactorialn-1H
n H2
4)Gactorialn-1H
A n H1
4)Gactorialn-1H
n H3
4)Gactorialn-1H
A n H2
4)Gactorialn-1H
A n H1
4)Gactorialn-1H
A n H 0
GactorialH 1
;e alcanza el caso &ase' =or lo tanto" la inocación del Gactorial se co!pleto y
puede co!enzar a resolerse las ca$as' ;e uele a la ca$a anterior y se
retorna
el alor pendiente al punto del lla!ado !arcado con el rotulo '
n H3
4)Gactorialn-1H
A n H2
4)Gactorialn-1H
A n H1 A
4)Gactorialn-1H1
n H 0
GactorialH 1
n H3
4)Gactorialn-1H
A n H2
4)Gactorialn-1H1
A n H1
4)Gactorialn-1H1
A n H 0
GactorialH 1
n H3
4)Gactorialn-1H2
A n H2
4)Gactorialn-1H1
A n H1
4)Gactorialn-1H1
A n H 0
GactorialH 1
#(or !n#( r$torn#do #( ,ror#+# ,r!n!,#( $% 7
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 67/143
Universidad Privada
,# +E T'%A* %E OMEN&A&A*
FUNDA9ENTOS DE PRO8RA9ACION
tt p) ZZJ J J's cr i &d'c o !Zdo c Z 8032086Zund a ! entos -de -p ro# ra ! a c i o n -a l #o rit! o s -y-
e stru c t u ra -de -dato s
RECURSIDIDAD
tt p) ZZJ J J'! ite c n o l o# i c o'c o !Z, a i nZ ei n i c i one c u rs i ida d
A L8O R IT 9 O S D E P R O 8 R A 9 A CIÓ N
ttp) ZZJJJdi'u $ aen'esZasi #naturasZ=ro#**C elZpdsZte! a2'pd
-# A TI.I&A&E* / E0E% I IO*
1' E<plicar cada paso del procedi!iento o unción de recursiidad en un
arre#lo" !ediante un códi#o donde se alle la su!a total de sus datos'
Ena el códi#o de esta actiidad a tra%s de “Rec"rsi%idad! '
2' tilizando la !etodolo#a aprendida" construya los !%todos para
resoler los si#uientes re.ueri!ientos e inó.uelos desde la ló#ica de
presentación)
• ,ostrar la cantidad de ele!entos pares'
• ,ostrar la cantidad de ele!entos i!pares'
• lenar el arre#lo entas con los pri!eros n alor de la si#uiente serie)
12" 24" 48" 96"192"V• lenar el arre#lo entas con los pri!eros n alor de la si#uiente serie)
V" 35" 28" 21" 14" 7' S!$+,r$ $( (t!+o #(or d$*$ %$r @.
Ena el códi#o de esta actiidad a tra%s de “Métodos! '
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 68/143
1# A'TOE.A+'A ION
1. E( #rr$(o un!d!+$n%!on#( o #rr#& $%:#/ na estructura unidi!ensional .ue al!acena alores de distinto tipo'
*/ na estructura de datos .ue al!acena &a$o el !is!o no!&re una colecciónde datos del !is!o tipo'/ na estructura de .ue al!acena una cantidad ininita de alores'd/ na estructura .ue no per!ite al!acenar datos de tipo carácter'$/ na estructura .ue tiene !ás de un ndice para acer reerencia'
. E( ,ro$d!+!$nto d$ %u+#r d#to% d$ un #rr$(o un!d!+$n%!on#( orr$%,ond$#:
#/ o se de&erá recorrer todos los datos del arre#lo'*/ o per!ite retornar el alor acu!ulado en la aria&le nu!%rica'/ ;ie!pre se realiza en un procedi!iento de su!a de datos'd/ o ay inor!ación para acer reerencia a los ndices del ector'$/ entro de la estructura repetitia" acu!ular cada uno de los datos del
arre#lo en una aria&le acu!ulador nu!%rica'
3. P#r# #((#r $( #(or +'!+o d$ (o% d#to% ont$n!do% $n un #rr$(oun!d!+$n%!on#(
#/ o se de&erá to!ar el pri!er dato del arre#lo .ue es el !ayor'*/ ;e de&erá recorrer el arre#lo desde la se#unda posición asta la lti!a
posición' =er!itirá ealuar cada uno de los datos del arre#lo'/ entro de la estructura repetitia" no ay un supuesto !ayor" es !enor .ue
el dato ealuado'd/ El dato ealuado se conertira en el nueo !enor" de lo contrario se pasa a
ealuar el si#uiente dato'$/ ;i la estructura condicional se cu!ple se ter!ina el procedi!iento'
4. E( ,ro$d!+!$nto ,#r# !n%$rt#r d#to% $n #rr$(o un!d!+$n%!on#(orr$%,ond$ #:
#/ =er!ite y solicita la posición en donde insertar'*/ o incre!enta la lon#itud del arre#lo en una posición'/ Cransiere los ele!entos una posición acia la dereca" co!enzando
desde el lti!o ele!ento asta la posición donde se desea insertar'd/ a posición en la inserción no está per!itida en el arre#lo'$/ a lon#itud del ector de&e ser inita en el arre#lo'
6. P#r# *u%#r d#to% $n un #rr$(o un!d!+$n%!on#( orr$%,ond$ # :#/ *n#resar el dato .ue no desea &uscar'*/ ;i el dato no a sido allado no !ostrar la posición donde se encontró'/ El dato cuando es encontrado el procedi!iento contina'd/ (o!parar el dato in#resado con cada uno de los datos del arre#lo'$/ El in#reso de los datos es en or!a ordenada'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 69/143
7. 9o%tr#r (o% $($+$nto% o+un$% $ntr$ do% #rr$(o% un!d!+$n%!on#($%orr$%,ond$ #:
#/ ecorrer el pri!er y se#undo arre#los'*/ l inalizar las estructuras repetitias" no se !uestra la cadena .ue
acu!uló a los datos co!unes'/ ;e de&en !ostrar los datos co!unes" y al#unos de estos se repite'd/ Xay ordenación en cada uno de los ectores'$/ e cada posición del arre#lo " recorrer el arre#lo A y pre#untar si el dato
ealuado del arre#lo es i#ual .ue el dato .ue se eala en A" si es s"al!acenar el dato co!n dentro de una cadena'
@. Int$r#(#!"n d$ do% #rr$(o% ord$n#do% $n un t$r$r #rr$(o ord$n#do:#/ El !%todo se utiliza para #enerar un con$unto ordenado datos a partir de
dos con$untos de datos ordenados'
*/ El proceso consiste en seleccionar sucesia!ente los ele!entos de uno delos con$untos pri!itios'/ Gor!ar un con$unto .ue tendrá solo los datos de los ele!entos ordenados'd/ o e<iste el procedi!iento de ordenación de ectores'$/ El procedi!iento se inoca recursia!ente'
?. E( ,ro$d!+!$nto o un!"n d$ R$ur%!!d#d $%:#/ ;i durante su e$ecución se inoca directa o indirecta!ente a s !is!o'*/ Es un procedi!iento .ue deuele !ltiples datos'/ Es una unción .ue deuele un solo alor" a la ez" por unción'd/ euele !ás de un alor en cada unción'$/ E<iste !ás de una condición &ase de inalización'
. E( 9;todo d$ C#5# #d# #5# r$ur%!# ont$ndr:#/ El alor de los pará!etros no son or!ales'*/ as aria&les declaradas local!ente siren para las otras unciones'/ n lu#ar para el alor a ser retornado por cada lla!ada recursia #enerada
a partir de la ca$a corriente'd/ os alores de datos en la !is!a unción son sin caso &ase'$/ o ay inor!ación de datos iteratios'
10. Cu( d$ (#% #(t$rn#t!#% no $% un ,ro$d!+!$nto r$ur%!oH#/ ,ultiplicación entera'*/ E<ponencia entera'/ ,á<i!o co!n diisor'd/ As.ueda directa'$/ Corres de Xanói'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 70/143
2# %E*'MEN
UU NI NIDDAADD DDEE AAPPR R EE N NDDIIZZAAJJEE II:II:
as estructuras de datos son una colección de datos .ue pueden ser
caracterizados por su or#anización y las operaciones .ue se deinen de ella' o
.ue se pretende con las estructuras de datos es acilitar un es.ue!a ló#ico para
!anipular los datos en unción del pro&le!a .ue aya .ue tratar y el al#orit!o
para resolerlo' En al#unos casos la diicultad radica en esco#er las estructuras
de datos adecuadas' En #eneral el al#orit!o y la estructura de datos .ue!anipulará estarán !uy relacionados'
;e#n su co!porta!iento durante la e$ecución del pro#ra!a distin#ui!os
estructura de datos estáticas" su ta!a>o en !e!oria es i$o" tene!os el rre#lo
Y" el cual es una estructura de datos en la .ue se al!acena una
colección de datos del !is!o tipo'
(on la estructura de atos Estáticas rre#los se realiza las si#uientes
operaciones &ásicas .ue son) su!ar" pro!ediar" allar !á<i!o" allar !ni!o de
los alores' Ca!&i%n con las estructuras de datos array e<isten !%todos de
recolección de datos co!o son los procedi!ientos de insertar" !odiicar" eli!inar
y &uscar un ele!ento dentro del array'
esarrollo de soluciones por parte de los al#orit!os" ta!&i%n se utiliza la
recursiidad .ue es un procedi!iento o unción .ue durante su e$ecución seinoca directa o indirecta!ente a s !is!o' Esta inocación depende al !enos de
una condición .ue acta co!o condición de corte .ue prooca la inalización de la
recursión' os len#ua$es .ue soportan recursiidad" dan al pro#ra!ador una
erra!ienta poderosa para resoler ciertos tipos de pro&le!as reduciendo la
co!ple$idad u ocultando los detalles del pro&le!a' El !%todo de escritorio prue&a
y error !ás utilizado es el !%todo de las ca$as'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 71/143
UNIDADDEAPRENDIZA
JE
Universidad Privada TELESUP
M2TODOS DEORDENACIÓN 3
)4S5UEDA
OMPETEN IA:
Algorítmica y Estructura de Datos
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 72/143
Al finalizar esta unidad usted será capaz de
“ onocer aplicar las diferentes formas
algorítmicas para ordenar 3uscar datos dentro
de un arreglo"#
Página .7
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 73/143
Universidad Privada
$# INT%O&' I(N
#. P r$ %$ nt# !"n & ont$' tu# (!)# !"n
El alu!no desarrolla una actitud analtica y critica .ue le per!ita alorar la
i!portancia en el !ane$o de los !%todos de ordena!iento por selección"!%todo ;ell y el !%todo de ordena!iento por [uicR;ort de los !%todos de
&s.ueda secuencial y &inaria'
*. Co+,$ t$ n !# Loro/
(onoce y aplica las dierentes or!as al#ort!icas para ordenar y &uscar
datos dentro de un arre#lo'
. C# ,# !d# d$ %
1. *dentiica y co!prende el !odelo ordenación !ás ópti!o en estructuras
unidi!ensionales'
. *dentiica y co!prende el !odelo ordenación !ás ópti!o para el
ordena!iento por selección en estructuras unidi!ensionales'
3. *dentiica y co!prende el !odelo de &s.ueda !ás ópti!o en estructuras
unidi!ensionales'
4. *dentiica y desarrolla a&ilidades &ásicas para las operaciones con
arre#los !ultidi!ensionales'
d. A t !tud$ %
esarrolla una actitud e!prendedora !ediante la to!a de iniciatias'
cta con responsa&ilidad personal" al cu!plir con los orarios
esta&lecidos'
espeto a las nor!as de coniencia'
(u!ple con la presentación de los tra&a$os enco!endados de !aneraindiidual y en e.uipo'
$. P r$ %$ nt# !"n d$ !d$# % * %!# % & ont$ n!do $ %$ n!# ($ % d$ (# Un!d# d.
L# un!d#d d$ A,r$nd!)#5$ 3 o+,r$nd$ $( d$%#rro((o d$ (o% %!u!$nt$%t$+#%:
1. 9;todo% d$ ord$n#!"n. 9;todo% d$ ord$n#+!$nto ,or %$($!"n3. 9;todo% d$ *%Bu$d#4. O,$r#!on$% on #rr$(o% +u(t!d!+$n%!on#($%
Algorítmica y Estructura de DatosPágina .5
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 74/143
TEMA
M1to!os
!"or!"&aci.&
Algorítmica y Estructura de Datos
Universidad Privada TELESUP
Página /6
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 75/143
Algorítmica y Estructura de Página
$# &E*A%%O++O &E
ONTENI&O*
T"ma 6#$ M1to!os !" or!"&aci.&
¿QUÉ ES ORDENAMIENTO?
Es la operación de arre#lar los re# is t ro s d e una ta&la en al#n orden secuencial de
acuerdo a un criterio de ordena!iento'
El ordena!iento se eecta con &ase en el a lo r de al#n ca!po en unre # is t ro '
El propósito principal de un ordena!iento es el de acilitar las &s.uedas de los!ie!&ros del con$unto ordenado'
E5$+,(o: directorio teleónico" ta&las de
contenido" & i& li o te c a s y d icc io n a rios " etc'
El ordenar un # ru p o de d a to s si#niica !oer los datos o sus reerencias para .ue.ueden en una secuencia tal .ue represente un orden" el cual puede ser nu!%rico"
ala&%tico o incluso alanu!%rico" ascendente o descendente'
¿Cuándo conviene usar un mé o do de ordenamieno?
((uando se re.uiere acer una cantidad considera&le de &s.uedas y es
i!portante el actor t ie ! p o '
TI!OS DE ORDENAMIENTOS"
os 2 tipos de ordena!ientos .ue se pueden realizar son) los internos y los
e<ternos'
#os inernos"
;on a.uellos en los .ue los alores a ordenar están en la ! e ! o ria
principal" por lo .ue se asu!e .ue el tie!po .ue se re.uiere para
acceder cual.uier ele!ento sea el !is!o ecM1N" ecM500N" etc'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 76/143
#os e$ernos"
;on a.uellos en los .ue los a lo re s a ordenar están en !e!oria secundaria
disco" cinta" cilindro !a#n%tico" etc'" por lo .ue se asu!e .ue el tie!po .ue
se re.uiere para acceder a cual.uier ele!ento depende de la lti!a posición
accedida posición 1" posición 500" etc''
A#%ORITMOS DE OR DENAMIENTO"
Inernos"
1. *nserción directa'1. *nserción &inaria'
2. ; e le cc ió n directa'1. Aur&u$a'. ;aRe'
3. *nterca!&io directo'1. ;ell'
4. *nserción dis!inución incre!enta1. Xeap'. Courna!ent'
5. +rdena!iento de ár&ol'1. [uicR sort'
6. ;ort particionado'
7. ,er#esort'
. adi<sort'
!. (álculo de d ire cc ió n '
l'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 77/143
E$ernos"
1. ;trai#t!er#in#'
2. atural !er#in#'
3. Aalanced!ultiJay!er#in#'
4. =olypasesort'
5. istri&ution o initialruns'
C#ASI&ICACI'N DE #OS A#%ORITMOS DE ORDENAMIENTO DE
IN &OR MACI 'N"
El eco de .ue la inor!ación está ordenada" nos sire para p o de r e ncontrarla y
accederla de !anera !ás eiciente ya .ue de lo contrario se tendra .ue acer de
!anera secuencial'
continuación se descri&irán 4 # rupo s de al#orit!os para ordenar inor!ación)
A()orimos de inserci*n"
En este tipo de al#orit!o los ele!entos .ue an a ser
ordenados son considerados uno a la ez' (ada ele!ento
es *;EC+ en la posición apropiada con respecto al
resto de los ele!entos ya ordenados'
Entre estos al#orit!os se encuentran el de *;E(*+
*E(C" ;XE ;+C" *;E(*+ A** y
X;X*F'
A()orimos de inercam+io"
En este tipo de al#orit!os se to!an los ele!entos de dos en dos" se
co!paran y se *CE(,A* si no están en el orden adecuado' Este
p ro c e s o se repite asta .ue se a analizado todo el con$unto de ele!entos y
ya no ay interca!&ios'
Entre estos al#orit!os se encuentran el AAB y [*( ;+C'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 78/143
A()orimos de se(ecci*n"
En este tipo de al#orit!os se ;EE((*+ o se &usca el ele!ento !ás
pe.ue>o o !ás #rande de todo el con$unto de ele!entos y se coloca en su
posición adecuada' Este proceso se repite para el resto de los ele!entos asta
.ue todos son analizados'
Entre estos al#orit!os se encuentra el de ;EE((*+ *E(C'
A()orimos de enumeraci*n"
En este tipo de al#orit!os cada ele!ento es co!parado
contra los de!ás' En la co!paración se cuenta cuántos
ele!entos son !ás pe.ue>os .ue el ele!ento .ue se
está analizando" #enerando as una E,E(*+' El
n!ero #enerado para cada ele!ento indicará su
posición'
os ! % to d o s si!ples son) *nserción o por inserción directa" selección" &ur&u$a ysell" en dónde el lti!o es una e<tensión del !%todo de inserción" siendo !ásrápido' os !%todos !ás co!ple$os son el .uicR-sort ordenación rápida y el
eapsort'
MÉTODO DE #A ,UR,U-A
Este !%todo consiste en ordenar el arre#lo !oiendo eldato !ayor asta la lti!a posición" co!enzando desdela casilla cero del arre#lo asta a&er eniado el n!ero!ás #rande a la lti!a posición" una ez aco!odado el!ás #rande" prosi#ue a encontrar y aco!odar el
si#uiente !ás #rande co!parando de nueo los n!erosdesde el inicio del arre#lo" y as se si#ue asta ordenar todos los ele!entos del arre#lo'
$nt#5#%:
Es el !%todo de ordena!iento
!ás utilizado" por.ue es el !ás
sencillo de co!prender'
D$%$nt#5#%:
Este al#orit!o es !uy deiciente ya
.ue al ir co!parando las casillas para
&uscar el si#uiente !ás #rande" %ste
uele a co!parar las ya ordenadas'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 79/143
"#todo Directo 8"#todo %ur%u1a09
Aru+$nto% Bu$ r$!*$: ector a ordenar y lon#itud del arre#lo'
Procedimiento Burbuja1 (Vec:array , n:entero)
i, j , aux : entero
Para i=0 a n-1 hacer
Para j=i+1 a n hacer
Si (Vec[i!Vec[j) entonc
"ux=Vec[i
Vec[i=Vec[j
Vec[j=aux
#in $i
#in Para
#in Para
#in Procedimiento
"#todo :ur%u1a
Aru+$nto% Bu$ r$!*$: ector a ordenar y lon#itud del arre#lo'
Procedimiento Burbuja% (Vec:array
, n:entero)
i, j , aux : entero
marca: car&cter
i=1
marca='$i'
e$
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 80/143
ientra$ ( in ) y (marca='$i')
hacer
arca='no'
Para j=1 a n-i hacer
i (Vec[j!Vec[j+1) entonce$
aux=Vec[j
Vec[j=Vec[j+1
Vec[j+1=aux
marca='$i'
#in $i
#in Para
i = i +1
ientra$
rocedimiento
S
#in
#in P
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 81/143
TEMA
M1to!os!"
or!"&ami"&to *or
s"l"cci.&
Página //Algorítmica y Estructura de Datos
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 82/143
Algorítmica y Estructura de Página
T$+# 0: 9;todo% d$ ord$n#+!$nto ,or %$($!"n
Méodo de Ordenamieno .or Se(ecci*n
El ord$n#+!$nto ,or %$($!"n S$($t!on Sort en in#l%s es un al#orit!o de
ordena!iento .ue re.uiere n2 operaciones para ordenar una lista de n ele!entos'
Su un!on#+!$nto $% $( %!u!$nt$:
Auscar el !ni!o ele!ento de la lista'
*nterca!&iarlo con el pri!ero'ue#o" &uscar el !ni!o en el resto de la lista'
*nterca!&iarlo con el se#undo y as sucesia!ente'
En $n$r#(:
Auscar el !ni!o ele!ento entre una posición i y el inal de la lista
*nterca!&iar el !ni!o con el ele!ento de la posición i
$nt#5#%:
Este al#orit!o !e$ora li#era!ente el al#orit!o de la &ur&u$a' En el caso de tener
.ue ordenar un ector de enteros" esta !e$ora no es !uy sustancial" pero
cuando ay .ue ordenar un ector de estructuras !ás co!ple$as" la operación
!nt$r#+*!#r / sera !ás costosa en este caso' Este al#orit!o realiza !enos
operaciones !nt$r#+*!#r / .ue el de la &ur&u$a" por lo .ue lo !e$ora enal#o'
D$%$nt#5#%:
ealiza nu!erosas co!paraciones'
Este es un al#orit!o lento' o o&stante" ya .ue sólo
realiza un interca!&io en cada e$ecución del ciclo
e<terno" puede ser una &uena opción para listas con
re#istros #randes y claes pe.ue>as'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 83/143
"#todo Seleccin
Aru+$nto% Bu$ r$!*$: /ector a ordenar y lon#itud del arre#lo'
=rocedi!iento ;elección ar/ec)array" n) entero
R" i" $) entero
au<) realK
=ara i H 0 a n-2 acer
au< H ecMiN
R H iK
=ara $ HiP1 a n-1 acer
;i ecM$N Sau< entonces
au< H ecM$N
Gin si
Gin =ara
R H $
ecMRN H ecMiNK
ecMiN H au<Gin =ara
Gin procedi!iento
E5$+,(o:
El arre#lo a ordenar es H Mfaf"fsf"fof"frf"ftf"fif"fnf"f#f"fef"f<f"faf"f!f"fpf"flf"fefN'
;e e!pieza por recorrer el arre#lo asta encontrar el !enor ele!ento' En este caso el!enor ele!ento es la pri!era faf' e !anera .ue no ocurre nin#n ca!&io' ue#o seprocede a &uscar el si#uiente ele!ento y se encuentra la se#unda faf'
Esta se interca!&ia con el dato .ue está en la se#unda posición" la fsf" .uedando elarre#lo as despu%s de dos recorridos) a H Mfaf"faf"fof"frf"ftf"fif"fnf"f#f"fef"f<f"fsf"f!f"fpf"flf"fefN'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 84/143
El si#uiente ele!ento" el tercero en orden de !enor !ayor es la pri!era fef" la cual seinterca!&ia con lo .ue está en la tercera posición" o sea" la fof' e si#ue la se#undafsf" la cual es interca!&iada con la frf" .uedando el arre#lo as
a H Mfaf"faf"fef"fef"ftf"fif"fnf"f#f"fof"f<f"fsf"f!f"fpf"flf"frfN'
e esta !anera se a &uscando el ele!ento .ue de&e ir en la si#uiente posición
asta ordenar todo el arre#lo'
MÉTODO DE ORDENAMIENTO S/E##
El ord$n#+!$nto S$(( S$(( %ort en in#l%s es un al#orit!o de ordena!iento'
El !%todo se deno!ina S$(( en onor de su inentor onald ;ell' ;u
i!ple!entación ori#inal" re.uiere n2 co!paraciones e interca!&ios en el peor
caso' n ca!&io !enor presentado en el li&ro de /' =ratt produce una
i!ple!entación con un rendi!iento de +nlo#2n en el peor caso' Esto es !e$or
.ue las +n2 co!paraciones re.ueridas por al#orit!os si!ples pero peor .ue el
ópti!o +n lo# n' un.ue es ácil desarrollar un sentido intuitio de có!o
unciona este al#orit!o" es !uy dicil analizar su tie!po de e$ecución'
El ;ell sort es una #eneralización del ordena!iento por inserción" teniendo en
cuenta dos o&seraciones)
1. El ordena!iento por inserción es eiciente si la entrada está Ocasi ordenadaO'
. El ordena!iento por inserción es ineiciente" en #eneral" por.ue !uee los
alores sólo una posición cada ez'
El al#orit!o ;ell sort !e$ora el ordena!iento por
inserción co!parando ele!entos separados por un
espacio de arias posiciones' Esto per!ite .ue un
ele!ento a#a Opasos !ás #randesO acia su
posición esperada' os pasos !ltiples so&re los datos
se acen con ta!a>os de espacio cada ez !ás
pe.ue>os' El lti!o paso del ;ell sort es un si!ple
ordena!iento por inserción" pero para entonces" ya está
#arantizado .ue los datos del ector están casi ordenados'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 85/143
Algorítmica y Estructura de Página
Universidad Privada TELESUP
0ena 1as"
o re.uiere !e!oria adicional'
,e$or rendi!iento .ue el !%todo de *nserción clásicoEs inesta&le no !antiene el orden relatio de los re#istros'
Desvena 1as"
os al#orit!os eicientes tienden a ser !ás co!ple$os .ue los ineicientes por
lo .ue son !ás diciles de e<presar con pala&ras'
n siendo la ordenación ;ell tan eiciente co!o es" la ordenación rápida
[uicR ;ort es 2 o 3 eces !ás eiciente'
"#todo S4ell
Aru+$nto% Bu$ r$!*$: /ector a ordenar y lon#itud del arre#lo'
Procedimiento She** (Vec:array, n:entero)
, , $a, j: entero=n%
ientra$ (!=1) hacer
Para $a =0 a hacer
Para i=+$a a n-1 .a$o hacer
=Vec[i
j=i-
ientra$ (j!=0) y Vec[j!) hacer
Vec[j+=Vec[j
j=-1
#in ientra$
Vec[j+=
#in Para
#in Para
=%
#in ientra$
#in Procedimiento
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 86/143
Universidad Privada
E5$+,(o:
=ara el arre#lo) /ector H M6" 1" 5" 2" 3" 4" 0N
Cene!os el si#uiente recorrido)
ecorrido ;alto ista +rdenada *nterca!&io
1 3 2"1"4"0"3"5"6 6"2" 5"4" 6"0
2 3 0"1"4"2"3"5"6 2"0
3 3 0"1"4"2"3"5"6 in#uno
4 1 0"1"2"3"4"5"6 4"2" 4"3
5 1 0"1"2"3"4"5"6 in#uno
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 87/143
TEMA
M1to!os
!"78s9"!a
Página 73Algorítmica y Estructura de Datos
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 88/143
Algorítmica y Estructura de Página
T$+# 03: 9;todo% d$ *%Bu$d#
Méodo de ,2s3ueda Secuencia("
a &s.ueda secuencial" ta!&i%n se le conoce co!o &s.ueda lineal' Este !%todo
consiste en recorrer el arre#lo o ector ele!ento a ele!ento e ir co!parando con el
alor &uscado clae' ;e e!pieza con la pri!era casilla del ector y se o&sera
una casilla tras otra asta .ue se encuentre el ele!ento &uscado o se a yan
isto todas las casillas' El resultado de la &s.ueda es un solo alor" y será la
posición del ele!ento &uscado o cero'
ado .ue el ector o arre#lo no está en
nin#n orden en particular" e<iste la !is!a
pro&a&ilidad de .ue el alor se encuentra ya
sea en el pri!er ele!ento" co!o en el
ulti!o' =or lo tanto" en pro!edio" el
pro#ra!a tendrá .ue co!parar el alor
&uscado con la !itad de los ele!entos del
ector'
El !%todo de &s.ueda lineal unciona &ien con arre#los pe.ue>os o para
arre#los no ordenados'
0ena1as"
Es un !%todo su!a!ente si!ple .ue
esulta til cuando se tiene un con$unto de datos
pe.ue>os Xasta apro<i!ada!ente 500
e!entos
Es ácil adaptar la &s.ueda secuencial
ra .ue utilice una lista enlazada ordenada" lo
ace la &s.ueda !ás eicaz'
;i los datos &uscados no están en orden es el nico !%todo .ue puede
e!plearse para acer dicas &s.uedas'
r
el
pa
.ue
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 89/143
Universidad Privada
Desvena1as"
El !%todo tiende acer !uy lento'
;i los alores de la clae no son nicos" para encontrar todos los
ele!entos con una clae particular" se re.uiere &uscar en todo el arre#lo"
lo .ue ace el proceso !uy lar#o'
"#todo %&s'ueda Secuencial
Aru+$nto% Bu$ r$!*$: /ector de &s.ueda y lon#itud del arre#lo'
Procedimiento Bu$car (Vec:array, dato:inte/er, n:entero)
i,a: entero ec*aracion de Variab*e$
a=0
i=0
ientra$ (i=n) hacer
Si (ec[i=dato) entonce$
a=i Para *a .o$icin de* a*orencontrado
mientra$
#in Si
i=i+1
i=n Para $a*ir de *a condicin
#in ientra$
Si (a=0) entonce$
2$cribir (34o $entimo$, e* dat
ha $ido encontrado555')Sino
2$cribir (32* ato $e encontr
en *a .o$icin: 3, a)
#in Si
#in .rocedimiento
o no
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 90/143
Méodo de ,2s3ueda ,inaria"
a operación de &s.ueda puede ser !uco
!ás eiciente si se sa&e .ue los datos estánpreia!ente ordenados' n e$e!plo de
ordenación es un diccionario" en el .ue
ace!os una &s.ueda #racias a la ordenación
ala&%tica de las pala&ras' En otro caso sera
co!pleta!ente inutiliza&le'
a idea consiste en co!parar un ele!ento cual.uiera" de ndice !nor!al!ente a la !itad e ir co!prando con los de!ás ar#u!entos de la
iz.uierda o dereca se#n sea el caso' El resultado de la &s.ueda es un solo
alor" y será la posición del ele!ento &uscado o cero'
Lo% ,o%!*($% #%o% %on:
$+/M a ter!inado la &s.ueda y el ndi
&uscado es !'
$+/ sa&e!os .ue todos los ele!entos a
iz.uierda de ! son !enores .ue :" y por lo ta
puede ser eli!inada esta re#ión de la zona
&s.ueda y considerar solo la zona dereca des
!P1 a '
$+/" sa&e!os .ue todos los ele!entos de
dereca de ! son !ayores .ue :" y por lo ta
puede ser eli!inada esta re#ión de la zona
&s.ueda y considerar solo la zona iz.uier
desde1 a !-1'
a repetición de este proceso de or!a iterati
constituye este al#orit!o' =ara ello" se utilizan d
aria&les de ndice /= y /; .ue !arcan l
e<tre!os iz.uierdo y dereco de la zona
&s.ueda considerada'
ce
la
nto
de
de
la
ntode
da
a
os
os
de
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 91/143
Universidad Privada
"#todo :&s'ueda Dicotmica
Aru+$nto% Bu$ r$!*$: /ector de &s.ueda y lon#itud del arre#lo'
#uncion Binaria (a*:entero, arVec: array,
dim:entero):entero
.o$, i :entero ec*aracin de ariab*e$
VP,VS, V2: entero
.o$=0 inicia*i6acin de .o$icin de* a*or bu$cado
VP=1 inicia*i6acin *7mite in8erior
VS=dim inicia*i6acin de* *7mite $u.erior
Si (a*!=Vec(VP)) y (a* = Vec(VS)) entonce$
ientra$ (VP=VS) y (.o$=0) hacer
V2=ent(VP+VS)%) Parte entera de *a
mitad de ector
Si (a*=Vec(V2) ) entonce$
.o$=V2
$ino
#in Si
VP=V2+1
Sino
VS=V2+1
#in Si
Si (a*!=Vec(V2)) entonce$
#in ientra$
#in Si
She**= .o$
#in #uncion
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 92/143
TEMA
O*"racio&"sco&
arr"glosMlti!im"&sio&a
l"s
Universidad Privada TELESUP
Algorítmica y Estructura de Datos Página 77
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 93/143
Algorítmica y Estructura de Página
T$+# 04: O,$r#!on$% on #rr$(o% +u(t!d!+$n%!on#($%
ARRE%#OS ,IDIMENSIONA#ES 4TA,#AS5MATRICES6
El array &idi!ensional se puede considerar co!o un ector de ectores' Es" por
consi#uiente" un con$unto de ele!entos" todos del !is!o tipo" en el cual el orden de
los co!ponentes es si#niicatio y en el .ue se necesita especiicar dos su&ndices
para poder identiicar cada ele!ento del array' ;i se isualiza un array unidi!ensional"
se puede considerar co!o una colu!na de datos) un array &idi!ensional es un #rupo
de colu!nas' El dia#ra!a representa una ta&la o !atriz de treinta ele!entos 5 < 6
con 5 ilas y 6 colu!nas'
DECLARACION DE UNA 9ATRIZ:
os arre#los di!ensionales se declaran de la si#uiente !anera)
TIPO !d$nt!!#dorMARRA<W!nd!$1
!nd!$XOFt!,oK onde:
!d$nt!!#dor ) es el no!&re del arre#lo
!nd!$1) tipo enu!erado o tipo su&ran#o" representa
la cantidad de ilas'
!nd!$) tipo enu!erado o tipo su&ran#o" representa
la cantidad de colu!nas'
t!,o) se reiere al tipo de los ele!entos y puede ser de cu
estándar o deinido por el usuario'
al.uiera de los tipos
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 94/143
E5$+,(o:
CY=E
Estudiantes H arrayM1..37" 1..5N o real
enta H arrayM1..10"\a\..\z\N o inte#er nsola H arrayM0..4"0..8N o car
lculos: (uenta
di#os: (onsola
se: Estudiantes
O!ERACIONES CON ARRE%#OS DIMENSIONA#ES O MATRICES"
LECTURA) Cienen .ue utilizarse estructuras de repetición para leer
los ele!entos del arre#lo'
=rocedi!iento eer ,atriz ar,at)!atriz" indil)entero"
indcol)entero
/aria&les i" $) entero
=ara iH1 a indil acer
=ara $ H 1 a indcol acer
eer ,atMi"$N
Gin =ara
Gin =rocedi!iento
ESCRITURA)
=rocedi!iento (ar#a,atriz ar,at)!atriz" indil)entero" indcol)entero
/aria&les i" $" dato) entero
=ara iH1 a indil acer
=ara $ H 1 a indcol acer
eer dato
,atMi"$NHdato
Gin =araGin =rocedi!iento
(u(o
/
(á
(ó
(la
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 95/143
SUMAR #OS DATOS DE UN ARRE%#O DIMENSIONA#
=ara su!ar los datos de un arre#lo di!ensional)
;e de&erá recorrer todos los datos del arre#lodi!ensional sar la estructura G+entro de la estructura repetitia" acu!ular cadauno de los datos del arre#lo di!ensional en unaria&le acu!ulador nu!%rico'etornar el alor acu!ulado en la aria&lenu!%rica'
"#todo Sumar
T!,o d$ d#to Bu$ r$torn# o+o r$%,u$%t#: dou&l%'
Guncion;u!ar,at)!atriz" indil)entero" indcol)entero) real
acu!)real eclaración de aria&les
i) entero
acu!H0 inicio del acu!ulador
=ara iH1 a indil acer recorre el arre#lo=ara $ H1 a indcol acer
acu!H acu! P ,atMi"$N cu!ulador de su!a de los alores
Gin =ara
Gin =ara
;,Hacu! si#nación a la unción
Gin unción
MÉTODO DE #A ,UR,U-A CON ARRE%#OS DIMENSIONA#ES"
Este !%todo consiste en ordenar el arre#lo !oiendo el dato !ayor asta la
lti!a posición" co!enzando desde la casilla cero del arre#lo asta a&er
eniado el n!ero !ás #rande a la lti!a posición" una ez aco!odado el !ás
#rande" prosi#ue a encontrar y aco!odar el si#uiente !ás #rande co!parando
de nueo los n!eros desde el inicio del arre#lo" y as se si#ue asta ordenar
todo los ele!entos del arre#lo'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 96/143
0ena 1as"
Es el !%todo de
ordena!iento !ás utilizado"
por.ue es el !ás sencillo deco!prender'
Desvena 1as"
Este al#orit!o es !uy deiciente ya .ue al ir
co!parando las casillas para &uscar el
si#uiente !ás #rande" %ste uele aco!parar las ya ordenadas'
Aru+$nto% Bu$ r$!*$: arre#lo di!ensional o !atriz a ordenar y lon#itud delarre#lo di!ensional'
=rocedi!iento irecto ar,at)!atriz" " c" indil" indcol)entero
aria&le R " au< ) entero
=ara RH1 a acer
u<H,atMR"indilN
,atMR"indilNH,atMR"indcolN
/ecMR"indcolNHau<
Gin =ara
Gin =rocedi!iento
=rocedi!iento irectoar,at)!atriz" indcol" indil)entero
/aria&le i"$ ) entero
=ara iH1 a indcol-1
=ara $HiP1 a indcol
;i ,atM2"iNT ,atM2"$N entonces
Aur&u$airecta,at" indcol"indil"i"$
Gin ;i
Gin para
Gin =ara
Gin procedi!iento
=rocedi!iento
Aur&u$aWGinalar,at)!atriz" indcol"
indil)entero/aria&le i"$" orden ) entero
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 97/143
iH1
ordenH0
,ientras iSindcol y ordenH0 acer
ordenH1
=ara $H1 a indcol-1 acer
;i ,atM2"$NT ,atM2"$P1N entonces
irecto ,at" indil" indcol" $" $P1 la!ada al procedi!iento
+rdenH0
Gin ;i
Gin =ara
Gin ,ientras
Gin =rocedi!iento
Not#: ;e ace uso de la pro#ra!ación !odular con el !%todo de ordenación
deno!inado &ur&u$a
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 98/143
,# +E T'%A* %E OMEN&A&A*
t tp )ZZ s is t e ! a s ' it lp ' e du ' ! < Zt u to ria le s Z p ro # o rien to & $e t o s Zt 1 1 ' t !
t tp )ZZ JJJ ' c e id is 'u la ' e Zc u rs o s Z in # e n ie ria Zp d W 1 0 Z c la s e s Z p u n t W 'p d
t tp )ZZ s is t e ! a s 'it lp ' e du ' ! < Zt u t o ria le s Z a l#o rit ! o s Z te ! aW 7 1 ' t !
-# A TI.I&A&E* / E0E% I IO*
1. esoler !ediante un pseudocódi#o" un pro#ra!a donde solicite las 5 notas
de un alu!no en un arre#lo' ue#o ord%nelas de !ayor a !enor utilizando
el !%todo de &ur&u$a e indica en cuántos pasos lo realizó'
Ena esta actiidad a tra%s de “&"r'"$a! '
. El e$ercicio anterior arre#lo ori#inal" resolerlo !ediante el !%todo de
inserción' (o!pare la cantidad de pasos realizados por a!&os e indi.ue
cuál es el !ás rápido'Ena esta actiidad a tra%s de “(nserci)n! '
1# A'TOE.A+'A I(N
1. >u$ $% ord$n#+!$nto:
#/ =er!ite operar el alor de los pará!etros or!ales'
*/ Es la operación de arre#lar los re # is t ro s de una ta&la en al#n orden
secuencial de acuerdo a un criterio de ordena!iento'
/ o per!ite los ele!entos de ordenación or!al'
d/ o e<i#e llear los datos en or!a ordenada'
$/ a ordenación sie!pre es del !enor al !ayor de los datos'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 99/143
Universidad Privada
. E( ,ro$d!+!$nto d$( +;todo d$ (# *ur*u5# $%:
#/ o per!ite ordenar el arre#lo !oiendo el dato !ayor a la lti!a posición'
*/ =er!ite co!enzar desde la casilla cero del arre#lo y !oer el n!ero !ás
#rande a la lti!a posición' (ontinuar con el si#uiente ele!ento'
/ co!odado el !ás #rande" prosi#ue a encontrar y aco!odar el si#uiente
!ás #rande'
d/ o co!parando de nueo los n!eros desde el inicio del arre#lo'
$/ a ordenación es de acuerdo al procedi!iento de &s.ueda
3. D$ (#% %!u!$nt$% #(t$rn#t!#%. Cu( d$ $((#% no ,$rt$n$$ # (# (#%!!#!"n
d$ (o% #(or!t+o% d$ ord$n#!"nH
#/ l#orit!os de inserción
*/ l#orit!os de interca!&io
/ l#orit!os de selección
d/ l#orit!os de enu!eración
$/ l#orit!o de inserción directa
4. Cu( $% un# d$%$nt#5# $n (# ord$n#!"n ,or %$($!"n
#/ Es rápido y no realiza co!paraciones'
*/ =er!ite el interca!&io en cada e$ecución de la ordenación
/ ento y realiza nu!erosas co!paraciones'
d/ Es rápido en ordenaciones de listas #randes'
$/ e.uiere de poca !e!oria para la ordenación
6. Cu( $% (# $nt#5# d$( +;todo d$ ord$n#!"n %$((:
#/ &icado el alor &uscado" no contina su &s.ueda
*/ o re.uiere !e!oria adicional
/ Es esta&le y no !antiene el orden relatio de los re#istros'
d/ Es !uy lento y realiza 1 co!paración en la lista'
$/ os datos de&en estar ordenados
7. E( ,ro$d!+!$nto d$( +;todo d$ *%Bu$d# %$u$n!#( $%:
#/ ecorre el arre#lo o ector ele!ento a ele!ento y a co!parando con el
alor &uscado'
*/ (o!para los ele!entos del alor &uscado de 1 contra n ele!entos del
arre#lo o array'
/ &icado el alor &uscado no continua su &s.ueda'
d/ ecorre el array o ector eces por cada ele!ento &uscado'$/ ecorrer en orden deter!inado" sin ordenar'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 100/143
@. E( ,ro$d!+!$nto d$( +;todo d$ *%Bu$d# *!n#r!# $%:
#/ os datos no de&en estar ordenados en el array o ector'
*/ &icado el dato de &s.ueda el procedi!iento ter!ina'
/ El !%todo tiende a ser !uy lento'
d/ ; per!ite co!parar !ás de un ele!ento'
$/ (o!parar un ele!ento de &s.ueda y descartar los ar#u!entos de la
iz.uierda o dereca se#n sea el caso'
?. Lo% #rr$(o% *!d!+$n%!on#($% t#*(#%+#tr!$%/ $%:
#/ n array &idi!ensional es un #rupo ilas'
*/ Ciene un su&ndice para poder identiicar cada ele!ento del array'
/ ;olo pode!os recorrer la ta&la con el pri!er ndice'
d/ n con$unto de ele!entos" todos del !is!o tipo" en el cual el orden delos co!ponentes es i!portante'
$/ l!acena los datos de dierentes tipos'
. L# o,$r#!"n d$ %u+#r (o% d#to% d$ do% +#tr!$% u#dr#d#%:
#/ l!acena de or!a te!poral los datos de la ta&la'
*/ ;u!a los datos de las ilas" colu!nas y niel
/ ;u!a solo los ele!entos de las colu!nas y lue#o de la ilas'
d/ ;u!ar cada una de las posiciones de la !atriz y colocar en una tercera
!atriz" cada uno de los resultados'
$/ Es un !%todo su!a!ente si!ple .ue resulta til cuando se tiene un
con$unto de datos pe.ue>os
10. Cu( %$r2# (# ut!(!d#d d$ (#% +#tr!$% tr!d!+$n%!on#($%:
#/ l!acenar datos te!poral!ente en una estructura de datos tipo ta&la"
conor!ada por ilas y colu!nas'
*/ l!acenar los datos en una ta&la de un ndice'
/ =er!itir al!acenar datos de dierentes estructuras'
d/ o ay ndices de ordenación'
$/ l!acenar datos te!poral!ente en una estructura de datos tipo cu&o"
conor!ada por ilas" colu!nas y niel'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 101/143
2# %E*'MEN
UU N NIDIDAADD DDEE AAPPR R EE N NDD
IIZZAAJJEE """"""
a ordenación es la operación de or#anizar datos en al#n orden secuencial de
acuerdo a un criterio .ue puede ser creciente o decreciente para los n!eros o
ascendente o descendente ala&%tica!ente para datos de caracteres' El
propósito principal de un ordena!iento es el de acilitar las &s.uedas de los
!ie!&ros del con$unto ordenado' os 2 tipos de ordena!ientos .ue se pueden
realizar son) los internos y los externos' os internos" son a.uellos en los .ue los
alores a ordenar están en !e!oria principal" por lo .ue se asu!e .ue el tie!po
.ue se re.uiere para acceder cual.uier ele!ento sea el !is!o'
os !%todos de ordena!iento por selección" .ue es un al#orit!o de selección
.ue selecciona o &usca el ele!ento !ás pe.ue>o o !ás #rande de todo el
con$unto de ele!entos y se coloca en su posición adecuada' Can sólo se
consideran ar#u!entos co!o el ector a ordenar la lon#itud del arre#lo' Elal#orit!o ;ell sort !e$ora el ordena!iento por inserción co!parando ele!entos
separados por un espacio de arias posiciones'
El !%todo de &s.ueda secuencial .ue consiste en recorrer el arre#lo o ector
ele!ento a ele!ento e ir co!parando con el alor &uscado clae' El resultado
de la &s.ueda es un solo alor" y será la posición del ele!ento &uscado o cero'
s .ue para a#ilizar la &s.ueda el !%todo de &s.ueda &inaria sera el !ás
eiciente" as !is!o el !%todo &s.ueda dicotó!ica'
El array &idi!ensional se puede considerar co!o un ector de ectores' Este
tiene una or!a particular de declarar considerando el identiicador" indice1"
indice2 y el tipo de ele!ento' =ara las operaciones con los arre#los
&idi!ensionales se tiene .ue tener en cuenta estos ar#u!entos para la lectura y
la escritura de la !atriz' Ca!&i%n se !ane$an una estructura para el !%todo de
su!a co!o la de Aur&u$a en arre#los di!ensionales'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 102/143
UNIDADDE
APRENDIZA JE
versidad Privada TELESUP
INTRODUCCIÓN A LASESTRUCTURAS DE
DATOSDIN:MICAS
Uni
Algorítmica y Estructura de Datos
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 103/143
COMPETENCIA$
Al finalizar esta asignatura será capaz de:
“ onstruir
algoritmos para resol!er pro3lemas 3asados en
estructuras de
Página 57datos dinámicas
"#
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 104/143
Universidad Privada
)# INT%O&' I(N
#/ P r$ %$ nt# !"n & ont$' tu# (!)# !"n
El alu!no desarrolla una actitud analtica y critica .ue le per!ita alorar la
i!portancia en el !ane$o de las estructuras diná!icas .ue per!iten crear
estructuras de datos .ue se adapten a las necesidades reales y per!itir
construir al#orit!os !ás eicientes'
*/ Co+,$ t$ n!# %
Con%tru&$ #(or!t+o% ,#r# r$%o($r ,ro*($+#% *#%#do% $n $%trutur#% d$d#to% d!n+!#%.
/ C# ,# !d# d$ %
esarrolla aplicaciones utilizando los distintos tipos de listas enlazadas'
econoce los tipos de estructuras de datos y eli$e la !e$or alternatia en
la solución de un pro&le!a'
(onstruye soluciones utilizando los dierentes tipos de ár&oles'
econoce los tipos de #raos y su aplicación en la solución de pro&le!as'
d/ A t !tud$ %
esarrolla una actitud e!prendedora !ediante la to!a de iniciatias'
cta con responsa&ilidad personal" al cu!plir con los orarios
esta&lecidos'
espeta a las nor!as de coniencia'
(u!ple con la presentación de los tra&a$os enco!endados de !aneraindiidual y en e.uipo'
$/ P r$ %$ nt# !"n d$ !d$# % *%!# % & ont$ n!do $ %$ n !# ($ % d$ (# Un!d# d
a unidad de prendiza$e 4) *ntroducción a las Estructuras de atos iná!icas"
co!prende el desarrollo de los si#uientes te!as)
1. L!%t# S!+,($. L!%t# Do*($+$nt$ En(#)#d#%. P!(#% & o(#%
3. Ar*o($%4. 8r#o%
Algorítmica y Estructura de DatosPágina 55
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 105/143
TEMA
LISTASIMPLE%
DO)LEMENTE
ENLAZADA
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 106/143
Algorítmica y Estructura de DatosPágina 066
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 107/143
Algorítmica y Estructura de Página
,# &E*A%%O++O &E TEMA*
T"ma6#
LISTA SIMPLE% DO)LEMENTEENLAZADAS
#ISTA SIM!#E
na (!%t# d$ $n(#$ %!+,($ es una lista enlazada de nodos" donde cada nodo
tiene un nico ca!po de enlace' na aria&le de reerencia contiene una
reerencia al pri!er nodo" cada nodo e<cepto el lti!o enlaza con el nodo
si#uiente" y el enlace del lti!o nodo contiene nu** para indicar el inal de la
lista' un.ue nor!al!ente a la aria&le de reerencia se la suele lla!ar to." se
puede ele#ir el no!&re .ue .uiera'
RE!RESENTACI'N %R 7&ICA
a i#ura presenta una lista de enlace si!ple de tres nodos" donde top reerencia
al nodo " conecta con A y A conecta con ( y ( es el nodo inal)
n al#orit!o co!n de las listas de enlace si!ple es la inserción de nodos' Este
al#orit!o está i!plicado de al#una or!a por.ue tiene !uco .ue er con cuatro
casos) cuando el nodo se de&e insertar antes del pri!er nodoK cuando el nodo se
de&e insertar despu%s del lti!o nodoK cuando el nodo se de&e insertar entre dos
nodosK y cuando la lista de enlace si!ple no e<iste' ntes de estudiar cada caso
considere!os el si#uiente pseudocódi#o)
294"2 94"SS ;ode
294"2 S<;> name294"2 ;ode next
2; 294"2
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 108/143
Algorítmica y Estructura de Página
294"2 ;ode to. = ;?44
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 109/143
#A #ISTA DE EN#ACE SIM!#E NO E8ISTE
Este es el caso !ás si!ple' ;e crea un ode" se asi#na su reerencia a top" se
inicializa su ca!po no de enlace" y se asi#na a su ca!po de enlace' El
si#uiente pseudocódi#o realiza estas tareas'
to. = ;2@ ;ode
to.5name = A"A
to.5next = ;?44
ACCIONES ,7SICAS
E( nodo de+e inserarse anes de( .rimer nodo"
;e crea un ;ode" se inicializa su ca!po no de enlace" se asi#na la reerencia de
to. al ca!po de enlace next" y se asi#na la reerencia del ;ode reci%n creado
a to.' El si#uiente pseudocódi#o .ue asu!e .ue se a e$ecutado el
pseudocódi#o anterior realiza estas tareas)
294"2 ;ode tem.
tem. = ;2@ ;ode
tem.5name = ABA
tem.5next = to.
to. = tem.
E( nodo de+e inserarse derás de( 2(imo nodo"
;e crea un ;ode" se inicializa su ca!po no de enlace" se asi#na ;?44 al
ca!po de enlace" se atraiesa la lista de enlace si!ple asta el lti!o ;ode" y
se asi#na la reerencia del ;ode reci%n creado al ca!po next del lti!o nodo'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 110/143
E( si)uiene .seudoc*di)o rea(i9a esas areas"
tem. = ;2@ ;ode
tem.5name = A9A
tem.5next = ;?44
294"2 ;ode tem.%tem.% = to.
@42 tem.%5next S ;C< ;?44tem.% = tem.%5next
2; @42
tem.%5next = tem.
E( nodo se de+e inserar enre dos nodos"
Este es el caso !ás co!ple$o' ;e crea un ;ode" se inicializa su ca!po no de
enlace" se atraiesa la lista asta encontrar el ;ode .ue aparece antes del nueo;ode" se asi#na el ca!po de enlace del ;ode anterior al ca!po de enlace del
;ode reci%n creado" y se asi#na la reerencia del ;ode reci%n creado al ca!po
del enlace del ;ode anterior' El si#uiente pseudocódi#o realiza estas tareas)
tem. = ;2@ ;ode
tem.5name = AA
tem.% = to.
@42 tem.%5name S ;C< A"Atem.% = tem.%5next
2; @42
tem.5next = tem.%5nexttem.%5next = tem.
a si#uiente i!a#en !uestra la inserción del nodo entre los nodos y ('
,orrar e( !rimer nodo"
si#na el enlace del ca!po ne<t del nodo reerenciado por top a top)
top=top.next;
a si#uiente i!a#en presenta las istas anterior y posterior de una lista donde sea &orrado el pri!er nodo' En esta i#ura" el nodo A desaparece y el nodo se
conierte en el pri!er nodo'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 111/143
,orrar cua(3uier nodo 3ue no sea e( .rimero"
ocaliza el nodo .ue precede al nodo a &orrar y le asi#na el enlace .ue ay en elca!po ne<t del nodo a &orrar al ca!po ne<t del nodo .ue le precede' El
si#uiente pseudocódi#o &orra el nodo )
tem. = to.
@42 tem.5name S ;C< A"A
tem. = tem.5next
2; @42
tem.5next = tem.5next5next
a si#uiente i#ura presenta las istas anterior y posterior de una lista donde sea &orrado un nodo inter!edio' En esa i#ura el nodo desaparece'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 112/143
#ISTA DO,#EMENTE EN#A:ADA
na lista doblemente enlazada es una lista
enlazada de nodos" donde cada nodo tiene
un par de ca!pos de enlace' n ca!po deenlace per!ite atraesar la lista acia
adelante" !ientras .ue el otro per!ite
atraesar la lista acia atrás' =ara la
dirección acia adelante" una aria&le de
reerencia contiene una reerencia al pri!er
nodo' (ada nodo se enlaza con el si#uiente
!ediante el ca!po de enlace ne<t" e<cepto
el lti!o nodo" cuyo ca!po de enlace ne<tcontiene null para indicar el inal de la lista
en dirección acia adelante'
e or!a si!ilar" para la dirección contraria" una aria&le de reerencia contiene una
reerencia al lti!o nodo de la dirección nor!al acia adelante" lo .ue se interpreta
co!o el pri!er nodo' (ada nodo se enlaza con el anterior !ediante el ca!po de
enlace preious" y el pri!er nodo de la dirección acia adelante" contiene null en su
ca!po preious para indicar el in de la lista' a si#uiente i#ura representa una lista
do&le!ente enlazada de tres nodos" donde topGorJard reerencia el pri!er nodo en la
dirección acia adelante" y topAacRJard reerencia el pri!ero nodo la dirección
inersa'
#ISTA DE EN#ACE CIRCU#AR
El ca!po de enlace del lti!o nodo de una lista de enlace si!ple contiene un enlace
nulo" ocurre lo !is!o en los ca!pos de enlace del pri!er y lti!o ele!ento en a!&as
direcciones en las listas do&le!ente enlazadas' ;upon#a!os .ue en ez de esto los
lti!os nodos contienen un enlace a los pri!eros nodos' En esta situación" ter!inará
con una lista de enlace circular " co!o se e en la si#uiente i#ura)
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 113/143
Universidad Privada
L#% (!%t#% d$ $n(#$ !ru(#r %$ ut!(!)#n on r$u$n!# $n ,ro$%#+!$nto
r$,$t!t!o d$ nodo% $n un ord$n $%,$2!o. D!o% nodo% ,odr2#n
r$,r$%$nt#r on$'!on$% d$ %$r!dor ,ro$%#dor$% $%,$r#ndo un#
%$!"n r2t!# $t. E%t# $%trutur# d$ d#to% t#+*!;n %!r$ o+o *#%$
,#r# un# #r!#nt$ d$ un# $%trutur# d$ d#to% +% o+,($5#: (# coa Bu$
$r$+o% +% #d$(#nt$/.
#isas En(a9adas ;rene a Arra<s 4arre)(os6
L#% (!%t#% $n(#)#d#% t!$n$n (#% %!u!$nt$% $nt#5#% %o*r$ (o% #rr#&%:
o re.uieren !e!oria e<tra para soportar la
e<pansión' =or el contrario" los arrays
re.uieren !e!oria e<tra si se necesita
e<pandirlo una ez .ue todos los ele!entos
tienen datos no se pueden a>adir datos nueos
a un array'
+recen una inserciónZ&orrado de ele!entos
!ás rápida .ue sus operaciones e.uialentes
en los arrays' ;ólo se tienen .ue actualizar los
enlaces despu%s de identiicar la posición deinserciónZ&orrado' esde la perspectia de los
arrays" la inserción de datos re.uiere el
!oi!iento de todos los otros datos del array
para crear un ele!ento aco' e or!a si!ilar"
el &orrado de un dato e<istente re.uiere el
!oi!iento de todos los otros datos para
eli!inar el ele!ento aco'
En ontr#%t$ (o% #rr#&% or$$n (#% %!u!$nt$% $nt#5#% %o*r$ (#% (!%t#%
$n(#)#d#%:
os ele!entos de los arrays ocupan !enos !e!oria .ue los nodos por.ue no
re.uieren ca!pos de enlace'
os arrays orecen un acceso !ás rápido a los datos" !ediante
ndices &asados en enteros'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 114/143
TEMA
PILAS 3COLAS
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 115/143
Algorítmica y Estructura de DatosPágina 06/
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 116/143
Algorítmica y Estructura de Página
T"ma6'
PILAS 3
COLAS
TI!O DE DATO A,STRACTO !I#A #I&O
na pila es un tipo especial de lista a&ierta en la .ue sólo se pueden insertar y
eli!inar nodos en uno de los e<tre!os de la lista' Estas operaciones se conocen
co!o OpusO y OpopO" respectia!ente Oe!pu$arO y OtirarO' de!ás" las escrituras de
datos sie!pre son inserciones de nodos" y las lecturas sie!pre eli!inan el nodoledo'
Estas caractersticas i!plican un
co!porta!iento de lista *G+ ast *n Girst
+ut" en donde el lti!o en entrar es el pri!ero
en salir' E$e!plo" el si!ilar .ue deria el
no!&re de la estructura es una pila de platos'
;ólo es posi&le a>adir platos en la parte
superior de la pila" y sólo pueden to!arse del
!is!o e<tre!o'
El nodo tpico para construir pilas es el !is!o .ue i!os en el te!a anterior para la
construcción de listas)
os tipos .ue deinire!os nor!al!ente para !ane$ar
pilas serán casi los !is!os .ue para !ane$ar listas"
tan sólo ca!&iare!os al#unos no!&res)
t!,oNodo es el tipo para declarar nodos"
eidente!ente'
,Nodo es el tipo para declarar punteros a un nodo'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 117/143
Universidad Privada
Es eidente" a la ista del #ráico" .ue una pila es una lista a&ierta' s .ue si#ue
siendo !uy i!portante .ue nuestro pro#ra!a nunca pierda el alor del puntero al
pri!er ele!ento" i#ual .ue pasa con las listas a&iertas'
Ceniendo en cuenta .ue las inserciones y &orrados en una pila se acen sie!pre
en un e<tre!o" lo .ue considera!os co!o el pri!er ele!ento de la lista es en
realidad el lti!o ele!ento de la pila'
TI!O DE DATO A,STRACTO &I#A O CO#A &I&O
as colas son otro tipo de estructura de
datos lineales" las cuales presentan
restricciones en cuanto a la posición en la
cual pueden realizarse las inserciones y
las e<tracciones de ele!entos'
na cola es una lista de ele!entos en la .ue se insertan ele!entos por un e<tre!o
y se eli!inan ele!entos por el e<tre!o opuesto' (o!o consecuencia" los
ele!entos de una cola serán eli!inados en el !is!o orden en .ue se insertaron'
Es decir" el pri!er ele!ento .ue se !etió a la cola será el pri!ero en salir de ella'
En la ida cotidiana e<isten !ucos e$e!plos de colas" una cola para pa#ar
cuentas en el &anco" una cola de lla!adas teleónicas en una central" una cola de
i!presión" etc'
e&ido al orden en .ue se insertan y eli!inan los ele!entos en una cola" ta!&i%n
se le conoce co!o estructura G*G+ Girst *n" Girst +ut) pri!ero en entrar" pri!ero en
salir'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 118/143
R$,r$%$nt#!"n $n 9$+or!#
as colas no son estructuras de datos unda!entales" es decir" no estándeinidas co!o tales en los len#ua$es de pro#ra!ación' as colas puedenrepresentarse !ediante el uso de)
Arr$(o%.
L!%t#% $n(#)#d#%.
RE!RESENTACI'N DE CO#AS MEDIANTE ARRE%#OS
E<isten tres !%todos dierentes para representar una cola !ediante
arre#los)
Pr!+$r 9;todo) ;e deine un arre#lo de ta!a>o !á<i!o y un apuntador al rente
de la cola pri!er ele!ento y uno al inal de la cola pró<i!o espacio li&re' (ada
ez .ue se inserta un nueo ele!ento se incre!enta el apuntador del inal asta
.ue se lle#a al ta!a>o !á<i!o !ás uno' (ada ez .ue se e<trae un ele!ento el
apuntador al rente de&e au!entar en uno asta .ue rente es i#ual a inal' a
representación #ráica de una cola es la si#uiente) Arr$(o: t#+#\o +'!+o4
FRENTE M0
FINAL M
El pro&le!a con este tipo de representación es .ue si se inserta el ta!a>o !á<i!o
de ele!entos del arre#lo" no se podrá se#uir insertando aun.ue se ayan e<tradoele!entos'
E$e!plo) ealice en or!a #ráica la si#uiente secuencia de operaciones) in"
inA" in(" out" in" outA" out(" inE" inG' e#istre cada ez los alores
de rente y inal'
a cola está aca si rente H inal y la cola está llena si inal H ta!W!a<' En estarepresentación tanto la inserción de ele!entos co!o la eli!inación son de +1'
0 A
1 A
3
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 119/143
S$undo 9;todo) na or!a de solucionar este pro&le!a es desplazar los
datos acia arri&a cada ez .ue se e<trae un ele!ento' e esta or!a el dato a
e<traer sie!pre estará en la pri!era posición del arre#lo'
E$e!plo) ealice en or!a #ráica la si#uiente secuencia de operaciones) in"inA" in(" out" in" outA" out(" inE" inG' e#istre cada ez los alores
de rente y inal'
E( ,ro*($+# Bu$ %ur$ on $%t$ +;todo $% Bu$ (# !n%$r!"n $% d$ O1/ & (#
$'tr#!"n %$ !nr$+$nt# # On/ ,or t$n$r Bu$ #$r (o% orr!+!$nto%.
T$r$r 9;todo: Este !%todo consiste en i!ple!entar la cola utilizando un &uer
circular" en este caso tanto la inserción co!o la e<tracción de ele!entos se
!antienen de +1'
El apuntador rente sie!pre está en la posición donde se de&e e<traer el pró<i!o
ele!ento y el apuntador inal estará en la posición donde se de&e insertar el
pró<i!o ele!ento" ;i inal está en la posición del ta!a>o !á<i!o del arre#lo de&e
ser inicializado en el pri!er ele!ento del arre#lo de !anera de continuar
circular!ente" esto sie!pre y cuando rente no sea i#ual al pri!er ele!ento" encuyo caso la cola estará llena' El apuntador rente de&e ser incre!entado cada
ez .ue se e<trae un ele!ento e inicializado en la pri!era posición del arre#lo
cuando se e<trai#a ele!ento de la lti!a posición del arre#lo" esto sie!pre y
cuando rente sea distinto de inal en cuyo caso la cola estará aca'
El pro&le!a con esta representación es .ue
la condición rente H inal se aplica tantopara la cola llena co!o para la cola aca'
=ara solucionar esto se utiliza una aria&le
para al!acenar el n!ero de ele!entos de
la cola' ;i la aria&le es i#ual a cero la cola
está aca" cuando la aria&le es i#ual al
ta!a>o !á<i!o del arre#lo la cola está
llena'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 120/143
O,$r#!on$%
T!,oO,$r#!"n
O,$r#!"n Do+!n!o Codo+!n!o E%,$!!#!"n D$%r!,!"n
(onstructora *nic(ola (ola(olaI*nic(olaoid
(rea una cola
ac2a
,odi icadora dic(ola(ola"
Cipo((ola
oid dic(ola(ola Ip" Cipo(
dato
*nserta unele!ento en elinal de la cola
,odi icadora Eli!(ola (ola (ola oid Eli!(ola(ola Ic
;upri!e elele!ento .ue
está en el rentede la cola
nalizadora *n o(ola (ola Cipo( Cipo( *n o(ola(ola Ic
euele elele!ento .ue
está en el rentede la cola
nalizadora /acia(ola (ola intint /acia(ola(ola
Ic
eueleerdadero 1 sila cola está aca
y also 0 encaso contrario
nalizadora lena(ola (ola intint lena(ola(ola
Ic
e#resaerdadero 1 sila cola está llenay also 0 si no lo
está
estructora estruir(ola (olaoid
estruir(ola(olaIc
i&era la!e!oria
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 121/143
TEMA
:R)OLES
Algorítmica y Estructura de DatosPágina 003
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 122/143
Algorítmica y Estructura de Página
T"ma6,
AR)OL
ES
DE&INICI'N DE 7R,O#
ár&ol es una estructura de datos" .ue puede
inirse de or!a recursia co!o) na
ructura aca o un ele!ento o clae de
or!ación nodo !ás un n!ero inito deructuras tipo ár&ol" dis$untos" lla!ados
&ár&oles' ;i dico n!ero de estructuras es
erior o i#ual a 2" se tiene un ár&ol &inario' Es"
r tanto" una estructura no secuencial'
+tra deinición nos da el ár&ol co!o un tipo de #rao) un ár&ol es un #rao acclico"
cone<o y no diri#ido' Es decir" es un #rao no diri#ido en el .ue e<iste
e<acta!ente un ca!ino entre todo par de nodos' Esta deinición per!ite
i!ple!entar un ár&ol y sus operaciones e!pleando las representaciones .ue se
utilizan para los #raos' ;in e!&ar#o" en esta sección no se tratará esta
i!ple!entación'
&ORMAS DE RE!RESENTACI'N
Mediane un )ra;o" Mediane un dia)rama
enco(umnado"
a7c!"0
n
de
est
in
est
suin
po
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 123/143
Algorítmica y Estructura de Página
F!ur# N] 1
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 124/143
En la co!putación se utiliza !uco una estructura de datos" .ue son los ár&oles
&inarios' Estos ár&oles tienen 0" 1 ó 2 descendientes co!o !á<i!o' El ár&ol de
la i#ura anterior es un e$e!plo álido de ár&ol &inario'
DEC#ARACI'N DE 7R,O# ,INARIO
;e deinirá el ár&ol con una clae de tipo entero puede ser cual.uier otra tipo de
datos y dos i$os) iz.uierdo iz. y dereco der' =ara representar los enlaces
con los i$os se utilizan punteros' El ár&ol aco se representará con un puntero
nulo' n ár&ol &inario puede declararse de la si#uiente !anera)
ty*"!"0 strct tar7ol;
i&t cla+"<strct tar7ol =i>9?=!"r<
@ tar7ol<
RECORRIDOS SO,RE 7R,O#ES ,INARIOS
;e consideran dos tipos de recorrido) recorrido en proundidad y recorrido en
ancura o a niel' =uesto .ue los ár&oles no son secuenciales co!o las listas" ay.ue &uscar estrate#ias alternatias para isitar todos los nodos'
Recorridos en .ro; undidad"
#$ ecorrido en ,r$ord$n) consiste en isitar el nodo actual isitar puede ser
si!ple!ente !ostrar la clae del nodo por pantalla" y despu%s isitar el
su&ár&ol iz.uierdo y una ez isitado" isitar el su&ár&ol dereco' Es un
proceso recursio por naturaleza' ;i se ace el recorrido en preorden del ár&ol
de la i#ura 1 las isitas seran en el orden si#uiente) a"&"d"c"e"'
+oi! *r"or!"&tar7ol=aB;
i0 a NULLB ;+isitaraB<
*r"or!"&aFi>9B<
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 125/143
*r"or!"&aF!"rB<
@@
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 126/143
%$ ecorrido en !nord$n u orden central) se isita el su&ár&ol iz.uierdo" el
nodo actual" y despu%s se isita el su&ár&ol dereco' En el e$e!plo de la
i#ura 1 las isitas seran en este orden) &"d"a"e"c"'
+oi! i&or!"&tar7ol =aB;
i0 a NULLB ;i&or!"&aFi>9B<+isitaraB<i&or!"&aF!"rB<
@@
&$ ecorrido en ,o%tord$n) se isita pri!ero el su&ár&ol iz.uierdo" despu%s el
su&ár&ol dereco" y por lti!o el nodo actual' En el e$e!plo de la i#ura 1 el
recorrido .uedara as) d"&"e""c"a'
+oi! *ostor!"&ar7ol =aB;
i0 a NULLB ;*ostor!"&a
Fi>9B<*ostor!"&aF!"rB< +isitaraB<
@@
a enta$a del recorrido en postorden es .ue per!ite &orrar el ár&ol de or!a
consistente' Es decir" si isitar se traduce por &orrar el nodo actual" al e$ecutar
este recorrido se &orrará el ár&ol o su&ár&ol .ue se pasa co!o pará!etro' a
razón para acer esto es .ue no se de&e &orrar un nodo y despu%s sussu&ár&oles" por.ue al &orrarlo se pueden perder los enlaces" y aun.ue no se
perdieran se ro!pe con la re#la de !anipular una estructura de datos ine<istente'
na alternatia es utilizar una aria&le au<iliar" pero es innecesario aplicando este
recorrido'
Recorrido en am.(iud"
(onsiste en ir isitando el ár&ol por nieles' =ri!ero se isitan los nodos de niel 1
co!o !uco ay uno" la raz" despu%s los nodos de niel 2" as asta .ue ya no
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 127/143
.ueden !ás' ;i se ace el recorrido en a!plitud del ár&ol de la i#ura" una isita
de los nodos sera en este orden) a"&"c"d"e"
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 128/143
En este caso el recorrido no se realizará de or!a recursia sino iteratia"
utilizando una cola co!o estructura de datos au<iliar' El procedi!iento consiste en
encolar si no están acos los su&ár&oles iz.uierdo y dereco del nodo e<trado
de la cola" y se#uir desencolando y encolando asta .ue la cola est% aca' En
la codiicación .ue iene a continuación no se i!ple!entan las operaciones so&re
colas'
+oi! am*lit!tar7ol=aB;
tCola cola< = las cla+"s !" la cola s"rH& !" ti*o Hr7ol
7i&ario =ar7ol =a<
i0 a NULLB ;Cr"arColacolaB<"&colarcola? aB<Kil" cola+aciacolaBB ;
!"s"&colarcola? aB<+isitaraB<i0 aFi>9 NULLB "&colarcola?a i0 aF!"r NULLB"&colarcola? a
@@
@
CONSTRUCCI'N DE UN 7R,O# ,INAR IO
Xasta el !o!ento se a isto la declaración y recorrido de un ár&ol &inario' ;ine!&ar#o no se a estudiado nin#n !%todo para crearlos' continuación se
estudia un !%todo para crear un ár&ol &inario .ue no ten#a claes repetidas
partiendo de su recorrido en preorden e inorden" al!acenados en sendos arrays'
ntes de e<plicarlo se reco!ienda al lector .ue lo intente acer por su cuenta" es
sencillo cuando uno es capaz de construir el ár&ol iendo sus recorridos pero sin
a&er isto el ár&ol ter!inado'
Fi>9B<F!"rB<
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 129/143
=artiendo de los recorridos preorden e inorden del ár&ol de la i#ura 1 puede
deter!inarse .ue la raz es el pri!er ele!ento del recorrido en preorden' Ese
ele!ento se &usca en el array inorden' os ele!entos en el array inorden entre
!)B y la raz or!an el su&ár&ol iz.uierdo' si!is!o" los ele!entos entre d$r yla raz or!an el su&ár&ol dereco' =or tanto se tiene este ár&ol)
continuación co!ienza un proceso recursio' ;e procede a crear el su&ár&oliz.uierdo" cuyo ta!a>o está li!itado por los ndices !)B y d$r ' a si#uiente
posición en el recorrido en preorden es la raz de este su&ár&ol' [ueda esto)
El su&ár&ol b tiene un su&ár&ol dereco" .ue no tiene nin#n descendiente" tal y
co!o indican los ndices !)B y d$r ' ;e a o&tenido el su&ár&ol iz.uierdo co!pleto de
la raz a" puesto .ue b no tiene su&ár&ol iz.uierdo)
D$%,u;% %$u!r on%tru&;ndo%$ $( %u*r*o( d$r$o # ,#rt!r d$ (# r#2) a.
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 130/143
TEMA
GRAOS
Algorítmica y Estructura de DatosPágina 005
Universidad Privada TELESUP
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 131/143
Universidad Privada
Algorítmica y Estructura de Página
T"ma6/
GRA
OS
DE&INICIONES ,7SICAS"
n grafo es la representación por !edio de con$untos de relaciones ar&itrarias entre
o&$etos' E<isten dos tipos de #raos se#n la relación entre los o&$etos sea unoca
o &iunoca' os pri!eros or!an los #raos diri#idos o d#raos y los se#undos los#raos no diri#idos o si!ple!ente #raos' En la !ayor parte de los al#orit!os se
ace reerencia a la ter!olo#a &ásica .ue se propone a continuación' ica
ter!inolo#aK no es estándar y puede lle#ar a ariar en los distintos te<tos .ue
e<isten en la !ateria'
n gra*o dirigido o d+gra*o consiste de un con$unto de %rtices / y un con$unto de
arcos ' os %rtices se deno!inan nodos o puntosK los arcos ta!&i%n se conocen
co!o aristas o lneas diri#idas .ue representan .ue entre un par de %rtices e<iste
una relación unoca a& pero no &a' e !odo .ue los arcos se representan
co!n!ente por !edio de pares ordenados a"&" donde se dice .ue a es la
ca&eza y & la cola del arco y a !enudo se representa ta!&i%n por !edio de una
leca" tal co!o se !uestra en la i#ura 1'
# *
F!ur# 1 8r#o d!r!!do
G ={V , A} dondeV = {v1
, v2,,
vn }
"
A = {a1 , a
2,, a
n}
yai=(v
j, vk ) tal .ue
v j, v
k∈V
' En dico #rao se entiende .ue(v
i , v
j) ≠ (v
j, v
i)
y en !ucos casos
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 132/143
Universidad Privada
Algorítmica y Estructura de Página
solo e<iste uno de los pares de %rtices'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 133/143
n !rtice .ue solo tiene arcos saliendo de %l se deno!ina fuente y un %rtice
.ue solo tiene arcos diri#idos acia %l se deno!ina sumidero' ica
no!enclatura es i!portante cuando los d#raos se usan para resoler
pro&le!as de lu$os'
n gra*o no dirigido, o gra*o" al i#ual .ue un d#rao consiste de un con$unto
de %rtices / y un con$unto de arcos ' a dierencia consiste en .ue la
e<istencia de a& presupone .ue &a ta!&i%n e<iste y ade!ás .ue son i#uales'
e este !odo es indistinto a&lar del arco a"& o &"a" ta!poco tiene sentido
a&lar de la ca&eza o la cola del arco' os #raos representan co!o lo indica la
i#ura 2" donde los crculos representan los %rtices y las lneas representan
los
arcos'
# *
F!ur# 8r#o no d!r!!do
G ={V , A} onde V = {v1 , v
2,, v
n } "
A = {a1 , a
2,, a
n}
y
ai=(v
j, v
k
)
tal
.ue v j, v
k∈V ' En dico #rao se
entiende .ue (v ,
v
) ⇔
(v
, v ) y
ade!ás (v ,
v
) =
(v
, v )" donde
a!&os pares de %rtices representanel !is!o arco'
E<isten ade!ás #raos en donde los arcos tienen asociado al#n alor en cuyo
caso a&la!os de #raos ponderados y se representan los arcos co!o tripletas'
;i#ue e<istiendo la inor!ación de los %rtices unidos por dico arco ade!ás de
la inor!ación del peso de dico arco' s pues" el arco se representa co!o
a = (v ,
v
, w) dondevi, v
j
son el ori#en y destino y w es el peso
i
i j j
i i j j
i j
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 134/143
respectia!ente'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 135/143
n nodo * se dice .ue es #d&#$nt$ al nodo # si e<iste el arco a" &" tó!ese en
cuenta .ue para un #rao no diri#ido necesaria!ente # es ta!&i%n adyacente a
*' Esto no ocurre en los #raos diri#idos donde la e<istencia de a " & no
i!plica .ue &" a ta!&i%n e<iste' Este concepto es de particular i!portancia
dado .ue los #raos suelen representarse en la co!putadora por !edio de
listas o !atrices de adyacencias'
n arco a"& !n!d$ en el nodo &" de i#ual !odo
en #rao no diri#ido dico arco ta!&i%n incide en
el nodo a de&ido a .ue ta!&i%n e<iste &" a' El
n!ero de arcos .ue inciden en un nodo le
otor#a el r#do a dico nodo' El nodo con !ayor
#rado en el #rao le indica el #rado de dico
#rao' Ca!&i%n se acostu!&ra representar a un
#rao por !edio de listas o !atrices de
incidencias'
MÉTODOS DE RE!RESENTACI'N EN COM!UTADORA
E<isten arias or!as de representar un #rao en la co!putadora y cada una
tiene sus enta$as y desenta$as' ,ostrare!os las !ás co!unes y la or!a de
i!ple!entarlas'
a ,r!+$r# or+# es por !edio de una !atriz de adyacencias" con este !%todo
se tiene una !atriz de ta!a>o nxn" donde n es el n!ero de %rtices o nodos en
el #rao' na or!a si!ple de er la inor!ación #uardada en dica !atriz es
.ue los ren#lones de las !is!as representan el ori#en y las colu!nas el destinode cada arista o arco en el #rao'
;i el #rao es no ponderado se acostu!&ra poner un cero en el ren#lón i"
colu!na $" de la !atriz cuando no e<iste dico arco" y un uno cuando dico arco
e<iste en el #rao' En el caso de #raos ponderados" se acostu!&ra poner una
&andera nor!al!ente el alor de ininito en las posiciones donde no e<iste un
arco y el peso correspondiente en las posiciones donde si e<iste'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 136/143
Universidad Privada
1
3
6 4
F!ur# 3 8r#o no ,ond$r#do & %u +#tr!) d$ #d&#$n!#
e&e notarse .ue para un #rao no diri#ido la !atriz de adyacencia es si!%trica y .ue
la dia#onal principal contiene ceros' Esto puede lle#ar a aproecarse para aorrar
tie!po en al#unos al#orit!os'
a representación por !edio de !atriz se preiere para al#orit!os donde el n!ero de
arcos es #rande en proporción al n!ero de %rtices' ;i sucediera lo contrario se
preiere la representación por !edio de listas de adyacencia'
3 4
6 3
4 1
F!ur# 4 L!%t# d$ #d&#$n!# ,#r# $( r#o d$ (# !ur# 3
A#%ORITMO DE =AR S/A##
Es el al#orit!o !ás eiciente" per!ite calcular las potencias de la !atriz de
adyacencia " y per!ite encontrar la !atriz su!atoria A'
1 3 4 6
1 0 1 0 0 1
1 0 1 1 1
3 0 1 0 1 0
4 0 1 1 0 1
6 1 1 0 1 0
1
6 ;
6
4
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 137/143
=ara un #rao diri#ido F con ! nodos /H L 1" 2" 3" V'" !Q se lla!a la !atriz de
ca!inos = de la si#uiente !anera)
P!5/ M 1 %! $'!%t$ un #+!no %!+,($ d$ ! # 5 Bu$ no u%# otro% nodo% #,#rt$ d$
,o%!*($+$nt$ 1 3 V. +
P!5/ M 0 $% otro #%o
garsall o&sero .ue =Ri"$H1" (uando )
1. E'!%t$ un #+!no %!+,($ d$ ! # 5 P-1!5/M1
. E'!%t$ un #+!no %!+,($ d$ ! # & otro #+!no %!+,($ d$ #
! P-1!/M1 & P-15/M1
3. Lo% $($+$nto% d$ (# +#tr!) P %$ o*t!$n$ d$ (# %!u!$nt$ +#n$r#:
P!5/MP-1!5/ o P-1!/ & P-15/
Pro$d!+!$nto #r%#((
Para i# a m Kac"rPara # a m Kac"r
Si Ai?6 "&to&c"sPi?B6
Els"Pi?B#
i& sii& Para
i& Para
Para # a m Kac"rPara i # a m Kac"rPara # a m Kac"r
Pi?B Pi?B o Pi?B y P?B i&Para
i& Parai& Para
i& Proc"!imi"&to
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 138/143
,# +E T'%A* %E OMEN&A&A*
D$!n!!"n d$( r*o(
tt , : KKK . # ( o r !t +! # . n $ t # r t! ($ % . , , H !dM 1 @
E%trutur# FIFO
tt,: KKK. &ou tu*$ . o+ K# t HMnF)[F [Z AoI
-# A TI.I&A&E* / E0E% I IO*
1. Escri&ir el pseudocódi#o .ue eectu% la &s.ueda de un dato y a
continuación eli!ine el dato del nodo anterior en una lista enlazada'
Ena esta actiidad a tra%s de “Lista ena-ada! '
2. ;e considera una cola rente a una entanilla en la cual al lle#ar a la !is!a
no puede ser atendido" se le reinte#ra a la cola a la posición h 10" si ay
!ás de 10 personas o al inal de la !is!a" en caso contrario' ise>ar un
procedi!iento de CE(*+ lo .ue de&e suceder cuando un cliente es
atendido' E*FE;+ uelta a la cola y otro de *FE;+ inicial en la
cola'
Ena esta actiidad a tra%s de “Coa! '
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 139/143
1#
A'TOE.A+'A I4N
1. L# $%trutur# d$ d#to% (!%t# %!+,($ $%:#$ na estructura unidi!ensional con nodos' %$ na lista enlazada de nodos" donde cada nodo tiene un nico ca!po de
enlace'&$ o tiene ele!entos de enlace al si#uiente ele!ento''$ o tiene nodo de inalización'($ os ele!entos se enlazan uno por cada ele!ento'
. Un# (!%t# do*($+$nt$ $n(#)#d# $%:
#$ na lista enlazada de nodos" donde cada nodo tiene un par de ca!pos deenlace' %$ Es un con$unto de una lista si!ple en or!a de do&le enlace'&$ El lti!o ele!ento de la lista es nulo y se enlaza con el pri!ero''$ .uello donde no ay ele!entos de enlace en los nodos'($ (uando solo e<iste el pri!er enlace de los nodos'
3. Un# (!%t# d$ $n(#$ !ru(#r $%:#$ El ca!po de enlace del lti!o nodo de una lista de enlace si!ple .ue
contiene un enlace nulo' %$ El ca!po de enlace del pri!er y lti!o ele!ento en a!&as direcciones en
las listas do&le!ente enlazadas'&$ (uando no ay un lti!o ele!ento o nodo .ue apunte al pri!er ele!ento'$ (uando la estructura de datos lista enlazada si!ple" el nodo inal de la
lista" el .ue en su ca!po de enlace tena null" apunta al pri!er nodo de lalista
($ El lti!o ele!ento de la lista contiene el ele!ento null
4. E( t!,o d$ d#to #*%tr#to d$ t!,o ,!(# o LIFO $%:#$ na lista donde el lti!o ele!ento en in#resar" es el lti!o ele!ento en
salir' %$ (uando no ay lu#ar para poder sacar un ele!ento de la lista'
&$ (uando sie!pre los ele!entos están do&le!ente enlazados'$ El pri!er ele!ento in#resado" es lti!o en salir de la lista'($ na lista a&ierta .ue per!ite insertar y eli!inar nodos en uno de los
e<tre!os de la lista
6. Un t!,o d$ d#to #*%tr#to d$ t!,o o(# o FIFO orr$%,ond$ #:#$ Ele!entos de una lista circular' %$ istas de datos do&le!ente enlazadas'&$ na lista de ele!entos en la .ue se insertan ele!entos por un e<tre!o y
se eli!inan ele!entos por el e<tre!o opuesto'$ na estructura en or!a recursia
($ na estructura con un solo ele!ento o acio'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 140/143
7. L# d$!n!!"n d$ un r*o(:#$ na estructura de datos" .ue deine de or!a iteratia' %$ na estructura no aca o un ele!ento de inor!ación nodo''&$ Xay un n!ero ininito de estructuras tipo ár&ol" dis$untos" lla!ados
su&ár&oles'
'$ na estructura de datos no secuencial'($ n ár&ol es un #rao acclico" cone<o y no diri#ido' Es decir" es un #rao
no diri#ido en el .ue e<iste e<acta!ente un ca!ino entre todo par denodos'
@. E( t!,o d$ r$orr!do %o*r$ r*o($% *!n#r!o% ,u$d$ %$r:#$ ecorrido en preorden e inorden' %$ ecorrido en preorden y postorden'&$ ecorrido en preorden e inorden''$ ecorrido en proundidad y recorrido en ancura o a niel'($ ecorrido preorden" postorden e inorden'
?. Un r$orr!do $n ,r$ord$n %!n!!#:
#$ /isitar el nodo actual" despu%s isitar el su&ár&ol iz.uierdo y lue#o isitar elsu&ár&ol dereco'
%$ /isitar el su&ár&ol iz.uierdo" el nodo actual" despu%s isitar el su&ár&oldereco'
&$ /isitar el su&ár&ol dereco" despu%s el dereco del nodo actual'$ /isitar el su&ár&ol iz.uierdo" despu%s el nodo actual y lue#o el su&ár&ol
dereco($ /isitar pri!ero el su&ár&ol iz.uierdo" despu%s el su&ár&ol dereco" y por
lti!o el nodo actual'
. L# d$!n!!"n d$ r#o:#$ o es la representación por !edio de con$untos de relaciones ar&itrarias
entre arios o&$etos' %$ n con$unto de %rtices sin relación deter!inada&$ n con$unto de ele!entos" nodos y %rtices relacionados entre los
ele!entos''$ n con$unto de %rtices y ele!entos sin relación deter!inada'($ n con$unto de nodos'
10. Un d2r#o o r#o no d!r!!do $%:#$ n con$unto de ele!entos" nodos y un con$unto de arcos relacionados' %$ n con$unto de %rtices y ele!entos con una relación deter!inada'&$ n con$unto de arcos sin relación con los nodos''$ n estructura de datos estática($ (uando no ay representación de d#rao'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 141/143
2# %E*'MEN
UU NI NIDDAADD DDEE AAPPR R EE N NDDIIZZAAJJEE II))::
as estructuras de datos es una colección de datos .ue pueden ser caracterizados
por su or#anización y las operaciones .ue se deinen de ella' En #eneral el al#orit!o
y la estructura de datos .ue !anipulará estarán !uy relacionados' ;e#n su
co!porta!iento durante la e$ecución del pro#ra!a distin#ui!os estructura de datos
diná!icas" su ta!a>o en !e!oria es aria&le' Este tipo de estructura se diide en)
ineales) son a.uellas estructuras donde los datos se a l!acenan en zonas sucesias
o adyacentes" es decir una detrás de otra' E$e!plo) listas enlazadas" pilas" colas' Y
las no lineales" a.u cada ele!ento puede tener dierentes ?si#uientes@ ele!entos"
teniendo el concepto de &iurcación" ya no ay linealidadK e$e!plos) ár&oles" #raos'
as listas son estructuras de datos secuenciales de 0 o !ás ele!entos de un tipo
dado al!acenados en !e!oria' ;on estructuras lineales" donde cada ele!ento de la
lista" e<cepto el pri!ero" tiene un nico predecesor y cada ele!ento de la lista"
e<cepto el lti!o" tiene un nico sucesor'
a pila es una estructura lineal" es una lista o secuencia inita de ele!entos de al#n
con$unto donde las inserciones y eli!inaciones se realizan por un solo e<tre!o de la
lista" lla!ada ci!a o tope'
na cola es una lista lineal en la cual las eli!inaciones se realizan solo por un
e<tre!o lla!ado rente y las inserciones se realizan por los e<tre!os lla!ados inal'
E$e!plos de cola de la ida diaria" se en en los cines" en los &ancos" los estadios"
etc'" la i!presión de !ltiples tra&a$os .ue tienen .ue esperar de acuerdo a su orden
de lle#ada'
os ár&oles representan estructuras no lineales y diná!icas' ;e dice diná!ica
puesto .ue la estructura del ár&ol puede ariar durante la e$ecución del pro#ra!a' o
lineales por.ue a cada ele!ento del ár&ol puede se#uirle arios ele!entos' n ár&ol
es una estructura $erár.uica aplicada so&re una colección de ele!entos u o&$etos
lla!ados nodos" uno de los cuales se lla!a raz'
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 142/143
5+O*A%IO
1. =IFURCACIÓN: es una caracterstica .ue per!ite a una colección de
arcios desarrollarse en dos o !ás rutas de acceso dier#entes'
. FIFO: es el acróni!o in#l%s de F!r%t In F!r%t Out pri!ero en entrar" pri!ero
en salir'
3. LIFO: es el acróni!o in#l%s de L#%t In F!r%t Out lti!o en entrar" pri!ero en
salir'
6'ENTE* &E IN6O%MA I(N
FUENTES ELECTORNICAS: <undamentos de Programacin y Estructura de Datos
tt , : KKK . % r !* d . o + d o ?0 3 0 ? 7 u n d # + $ n to % -d $ -,ro r # + # !o n -
# ( o r !t + o % -& -$ % tru tur # -d $ -d # to%
Listas y Pilas
tt , : KKK .s l i ! " s Ka r " . n $ t ) # + # n t # (! % t# % -& -,! ( # %
+rafo Definiciones
tt , : + # t$ r !# % . !. u * # . # r 7 1 0 @ r # o % Q d $ !n ! !o n $ % . , d
Estrucutra de Datos y Algoritmica de Datos
tt , : KKK . ,ro r # + # !o n . o + # r t! u (o $ % tru tur # % Q d $ Q d # to % Q &Q # ( o r !t + o%
Q$ n Q 5 # # Q 3 0
Algoritmica y Estruicutra de Datos
Q tt *$ % r l* %U t & % E ! %A r Ma t " r ia s Al g o r it m o s
FUENTES =I=LIO8RAFICAS:
LAFORE Ro*$rt ata ;tructures U l#orit!s in Baa gaite Froup =ress' 1988 &y
Ce gaite Froup" *nc' ;' 2005'
DALE < LILL< l#orit!os P Estructura de atos H =ro#ra!as' Ediciones (astillo'
ata ;tructures and l#orit!s' ;cientiic !ercian" 2005
DEITEL [. 9. < DEITEL P. J Fua de =ro#ra!ación ;per Baa 2 . 2006
JO<ANES A8UILAR Lu!% 2006 Gunda!entos de pro#ra!ación) al#orit!os
y estructuras de datos) ,adrid) ,cFraJ-Xill' 714 p'
Ro*$rt P#nt!o%o S!(# 2007 Gunda!entos de =ro#ra!ación) l#orit!os y
ia#ra!as de Glu$o ;e#unda Edición
7/23/2019 AED-SI-02 Libro de Algoritmo y Estructura de Datos
http://slidepdf.com/reader/full/aed-si-02-libro-de-algoritmo-y-estructura-de-datos 143/143
+A.E* &E +A A'TOE.A+'A I(N
UNIDAD DEAPRENDIZAJE 1
1. #/
. $/
3. */
4. /
6. */
7. */
@. /?. /
. $/
10. #/
UNIDAD DE
APRENDIZAJE 3
1 */
UNIDAD DEAPRENDIZAJE
1. */
. $/
3. /
4. /
6. d/
7. $/
@. #/
?. #/
. /
10. d/
UNIDAD DE
APRENDIZAJE 4
1. */
Top Related