!"#$%#&'(%" *& +$,'$%-%.(/0 1 &"#$2.#2$%" *& *%#," 3$%*, &0 40'&0(&$5% 406,$-78.% 3$%*, &0 9&.0,:,'5%" *& :% 406,$-%.(/0 !"#$%&$'"(&) +" ,"(-.$/"0 1 230&"'$0 3(4)%'567)0
H
!"#$%&%& () $* )+,%)",%* () $-& *$.-/%01-& I/.>% ".$2>JD3/ >%;=/&"* !"#$%& ()*%+ ,%-%. !/.) 012"3$/ 4"-/&1" 5/*%6"2/ 7#%*%+8*.$9:2%69%. 2;"-/&1"8*.$9:2%69%. <%="&>";%2>/ 6% ?%21:"7%. @ A$.>%;". 02B/&;CD3/.
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," 8(+37"
=0*(.& ›
›
›
Introducción ›
¿Qué es la eficiencia de los algoritmos?
›
Criterios de clasificación del análisis de la eficiencia
›
Métricas de análisis de la eficiencia de los algoritmos
Medida de la eficiencia de los algoritmos ›
¿Cómo se mide la eficiencia de los algoritmos?
›
Medida asintótica de la eficiencia
›
Órdenes de complejidad
Bibliografía
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," 9:/"6;)0 -"("%$<"0
>?@&8A," › Aprender qué es la eficiencia de los algoritmos › Aprender los criterios en torno a los cuales se puede clasificar la eficiencia ›
Conocer las principales métricas de medida de la eficiencia
› Aprender cómo se puede calcular el coste de un algoritmo bajo 3 supuestos ›
Medida del tiempo de ejecución
›
Medida asintótica O
›
Hipótesis de caso peor
› Aprender cómo se mide la eficiencia algorítmica de › Algoritmos recursivos › Algoritmos iterativos › Adquirir una visión crítica sobre la complejidad algorítmica › Adquirir herramientas para seleccionar el mejor algoritmo para un problema › Adquirir herramientas para seleccionar la estructura más eficiente para un problema
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," =(&%)+.773>(
BC2D &" :% &<.(&0.(% *& :," %:',$(#-,"E ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 #"%'3&" "0&$:<"7"% 7%3&"%3)0 7)'#$%$6;)0 1 7<$03@7$&)%3)0 "(&%" $<-)%3&')0 A." $1.+$( $ "(&"(+"% 7>') 0" 7)'#)%&$( 1 "07$<$( B0&)0 "( 7.$(&) $ <$ 7)(0.'373>( +" %"7.%0)0 C 6"'#) 1 '"')%3$ 4.(+$'"(&$<'"(&" C 7)( %"0#"7&) $ <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$
F&<0(.(/0 ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 "0 .( "0&.+3) &">%37)D 4)%'$( A." 6"(" #)% ):/"&) 7<$03@7$% $ <)0 $<-)%3&')0 "( 4$'3<3$0 +" 7)'#<"/3+$+ +" $7."%+) $ 7>') 0" 7)'#)%&$( 0"-E( 7%"7" <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$
Estudio teórico
Independencia
›
Estudio formal
›
De recursos de máquina
›
Teórico
›
Del lenguaje de programación
›
Comparativo
›
De aspectos constantes
›
Clasificatorio
›
De aspectos de escala
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," =(&%)+.773>(
BC2D &" :% &<.(&0.(% *& :," %:',$(#-,"E ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 #"%'3&" "0&$:<"7"% 7%3&"%3)0 7)'#$%$6;)0 1 7<$03@7$&)%3)0 "(&%" $<-)%3&')0 A." $1.+$( $ "(&"(+"% 7>') 0" 7)'#)%&$( 1 "07$<$( B0&)0 "( 7.$(&) $ <$ 7)(0.'373>( +" %"7.%0)0 C 6"'#) 1 '"')%3$ 4.(+$'"(&$<'"(&" C 7)( %"0#"7&) $ <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$ !""#$%& D$1$)*8"9 +,-. /2 3 !""#$%& "D8$&%D +,-. /2 3
!""#$%& D$1$)*8"9 4 6%#9$5
*&) )$F15
*&) * 4 E5
6"D +*&) * 4 B5 * > /?#$&@);5 *AA2
:;*#$ + /?#$&@);2
6"D +*&) G 4 /?#$&@); H B5 G I4 *5 GHH2
D$1$)*8"9 4 ("&)*$&$ +/0 *AB0 /-*.25
*6 +/-G. > /-GHB.2 3
D$)7D& D$1$)*8"95
)$F1 4 /-G.5
C
/-G. 4 /-GHB.5 /-GHB.4 )$F15
!""#$%& ("&)*$&$ +,-. /0 *&) 10 , $2 3 *&) * 4 15
C
!""#$%& 6"7&8 4 6%#9$
C
tiempo
:;*#$ +<6"7&8 == * >4 /?#$&@);2 3
<
6"7&8 4 +/-*. 44 $25 * 4 * A B5 C D$)7D& 6"7&85 C
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," =(&%)+.773>(
BC2D &" :% &<.(&0.(% *& :," %:',$(#-,"E ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 #"%'3&" "0&$:<"7"% 7%3&"%3)0 7)'#$%$6;)0 1 7<$03@7$&)%3)0 "(&%" $<-)%3&')0 A." $1.+$( $ "(&"(+"% 7>') 0" 7)'#)%&$( 1 "07$<$( B0&)0 "( 7.$(&) $ <$ 7)(0.'373>( +" %"7.%0)0 C 6"'#) 1 '"')%3$ 4.(+$'"(&$<'"(&" C 7)( %"0#"7&) $ <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$
G$(#&$(," *& -&*(*% *& :% &<.(&0.(%
a d i d e m e d s o i r e t i r C
I. Según el tipo de recurso La eficiencia de los algoritmos puede medirse de acuerdo a la consumición de diferentes recursos. La medida de la eficiencia de un algoritmo puede ser distinta según el recurso
Espacial Se analiza la relación funcional existente entre el tamaño del problema expresado en términos de sus parámetros de entrada y la consumición del recurso memoria
II. Según el tipo de comportamiento Fijado un tipo de recurso, la eficiencia de los algoritmos puede medirse bajo distintos supuestos en los que se supone se encuentra el problema medio a analizar
Temporal Se analiza la relación funcional existente entre el tamaño del problema expresado en términos de sus parámetros de entrada y la consumición del recurso tiempo de cómputo
II. Según la métrica utilizada Fijado un tipo de recurso y un determinado supuesto, debe escogerse una métrica comparativa que permita clasificar a los algoritmos en familias con un comportamiento interno similar
Otros Se analiza la relación funcional existente entre el tamaño del problema expresado en términos de sus parámetros de entrada y la consumición de otros recursos como periféricos empleados, ancho de banda, consumo eléctrico, etc.
!
Foco de atención
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," =(&%)+.773>(
BC2D &" :% &<.(&0.(% *& :," %:',$(#-,"E ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 #"%'3&" "0&$:<"7"% 7%3&"%3)0 7)'#$%$6;)0 1 7<$03@7$&)%3)0 "(&%" $<-)%3&')0 A." $1.+$( $ "(&"(+"% 7>') 0" 7)'#)%&$( 1 "07$<$( B0&)0 "( 7.$(&) $ <$ 7)(0.'373>( +" %"7.%0)0 C 6"'#) 1 '"')%3$ 4.(+$'"(&$<'"(&" C 7)( %"0#"7&) $ <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$
G$(#&$(," *& -&*(*% *& :% &<.(&0.(%
a d i d e m e d s o i r e t i r C
I. Según el tipo de recurso La eficiencia de los algoritmos puede medirse de acuerdo a la consumición de diferentes recursos. El tipo de recurso establece una partición del espacio de algoritmos distinta
Peor caso Se estima la máxima cantidad de recursos que un algoritmo puede necesitar consumir para su ejecución en función de su entrada. Supone una cota superior de estos recursos
II. Según el tipo de comportamiento Fijado un tipo de recurso, la eficiencia de los algoritmos puede medirse bajo distintos supuestos en los que se supone se encuentra el problema medio a analizar
Caso medio Se estima el comportamiento a partir de una hipótesis sobre la distribución estadística de los datos de entrada que se supone más probable. También llamado análisis probabilístico
II. Según la métrica utilizada Fijado un tipo de recurso y un determinado supuesto, debe escogerse una métrica comparativa que permita clasificar a los algoritmos en familias con un comportamiento interno similar
Mejor caso Se estiman los recursos necesarios para su ejecución en condiciones óptimas en función de la entrada. Esta medida afecta al ejemplar más sencillo del problema
!
Foco de atención
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," =(&%)+.773>(
BC2D &" :% &<.(&0.(% *& :," %:',$(#-,"E ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 #"%'3&" "0&$:<"7"% 7%3&"%3)0 7)'#$%$6;)0 1 7<$03@7$&)%3)0 "(&%" $<-)%3&')0 A." $1.+$( $ "(&"(+"% 7>') 0" 7)'#)%&$( 1 "07$<$( B0&)0 "( 7.$(&) $ <$ 7)(0.'373>( +" %"7.%0)0 C 6"'#) 1 '"')%3$ 4.(+$'"(&$<'"(&" C 7)( %"0#"7&) $ <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$
G$(#&$(," *& -&*(*% *& :% &<.(&0.(%
a d i d e m e d s o i r e t i r C
I. Según el tipo de recurso La eficiencia de los algoritmos puede medirse de acuerdo a la consumición de diferentes recursos. El tipo de recurso establece una partición del espacio de algoritmos distinta
Cota superior. O Se mide el coste asintótico de la ejecución de un algoritmo de acuerdo a una cota superior. Es decir, la ejecución nunca, a partir de cierto valor, sobrepasará la cota de coste establecida
II. Según el tipo de comportamiento Fijado un tipo de recurso, la eficiencia de los algoritmos puede medirse bajo distintos supuestos en los que se supone se encuentra el problema medio a analizar
Cota inferior. ! Se mide el coste asintótico de la ejecución de un algoritmo de acuerdo a una cota inferior. Es decir, la ejecución nunca, a partir de cierto valor, será menor que la cota establecida
II. Según la métrica utilizada Fijado un tipo de recurso y un determinado supuesto, debe escogerse una métrica comparativa que permita clasificar a los algoritmos en familias con un comportamiento interno similar
Cota exacta. " Se mide el coste asintótico de la ejecución de un algoritmo de acuerdo a una cota resultante de la intersección entre O y !. Es decir, la ejecución crece al ritmo de la cota establecida
!
Foco de atención
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," =(&%)+.773>(
BC2D &" :% &<.(&0.(% *& :," %:',$(#-,"E ?< $(5<3030 +" <$ "@73"(73$ +" <)0 $<-)%3&')0 #"%'3&" "0&$:<"7"% 7%3&"%3)0 7)'#$%$6;)0 1 7<$03@7$&)%3)0 "(&%" $<-)%3&')0 A." $1.+$( $ "(&"(+"% 7>') 0" 7)'#)%&$( 1 "07$<$( B0&)0 "( 7.$(&) $ <$ 7)(0.'373>( +" %"7.%0)0 C 6"'#) 1 '"')%3$ 4.(+$'"(&$<'"(&" C 7)( %"0#"7&) $ <$ '$-(3&.+ +" 0.0 #$%5'"&%)0 +" "(&%$+$
HD#$(.%" *& %07:("(" *& :% &<.(&0.(% *& :," %:',$(#-,"
Cota superior. O
Si g(n) es la función de coste de un algoritmo, se dice que g(n) está en O(f(n)) si a partir de un cierto punto crece, a lo sumo, menos rápido que f(n). Es decir, la gráfica de g está por debajo de la de f
Cota inferior. !
Si g(n) es la función de coste de un algoritmo, se dice que g(n) está en !(f(n)) si a partir de un cierto punto crece más rápido que f(n). Es decir, la gráfica de g está por encima de la de f)
Cota exacta. "
Si g(n) es la función de coste de un algoritmo, se dice que g(n) está en "(f(n)) si crece de la misma forma (al mismo ritmo) que f(n)
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :," %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
H&*(*% %"(0#/8.% *& :% &<.(&0.(% 23 I$7"')0 '"+3+$0 "J#"K %3'"(&$<"0 0):%" 0.7"03;$0 "/"7.73)("0 +" .( $<-)%3&K ') 1 "( 7$+$ "/"7.73>( +.#<37$')0 "< &$'$L) +"< #%):<"'$D ):0"%;$')0 A." "< 6"'#) +" "/"7.73>( &$':3B( 0" +.#<37$G ?( "0" 7$0) 0" #."+" +"73% A." "< 7)0&" $03(&>67) +"< $<-)%3&') "0 <3("$<
Búsqueda de un elemento en un vector Tamaño
Tiempo medido
Tiempo de ejecución
&
J K &
A L
)
M&
J K M& A L
M)
N&
J K N& A L
N)
???
???
???
G&
J K G& A L
G)
El tamaño del problema es proporcional al número de elementos que contiene el vector. Sin embargo el tiempo de ejecución no se ve afectado por constantes multiplicativas o sumativas ya que el coste temporal se duplica al duplicar el tamaño del problema
O (n)
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :% %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
>$*&0&" *& &<.(&0.(% ?< $(5<3030 $03(&>67) ()0 #"%'3&" 7<$03@7$% "< "0#$73) +" $<-)%3&')0 "( +306(&$0 4$'3<3$0 A." 0" 7)%%"0#)(+"( 7)( >%+"("0 +" 7)'#<"/3+$+ +34"%"(&"0 *&) 6%()"D*%# +*&) &2 3 *6 +& 44 E2 D$)7D& B5 $#9$ D$)7D& & K 6%()"D*%# +& H B25 C
E&4%"03&5( * +#FBCD"#'#43&5 7' /0&7" A( * +A #((( BCD"#'#43&5( * +; #?"53#@234& 7' /0&7" A( * +# A((( !<=34&( * +# >!6&708%34&( * +# ;!6&$353#'&5( * +# 5"/ #.3#'&5( * +#!6&708%34& 3#9'0$&( * +:#."/&01%234&( * +5"/ #!"#$%%'( * +,-
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :% %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
>$*&0&" *& &<.(&0.(% M$+$ )%+"( +" "@73"(73$ %"#%"0"(&$ .( (3;"< +" 7%"73'3"(&) 7)( %"0#"7&) $< &$'$L) +"< #%):<"'$G ?( <$ -%5@7$ $+/.(&$ #."+" ;"%0" <$ %"<$73>( 7)'#$%$6;$ +" <)0 (3;"<"0 +" 7%"73'3"(&) +" <)0 #%3'"%)0 >%+"("0 +" "@73"(73$ $(&"%3)%"0
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :% %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
>$*&0&" *& &<.(&0.(% M$+$ )%+"( +" "@73"(73$ %"#%"0"(&$ .( (3;"< +" 7%"73'3"(&) 7)( %"0#"7&) $< &$'$L) +"< #%):<"'$G ?( <$ -%5@7$ $+/.(&$ #."+" ;"%0" <$ %"<$73>( 7)'#$%$6;$ +" <)0 (3;"<"0 +" 7%"73'3"(&) +" <)0 >%+"("0 +" "@73"(73$ 03-.3"(&"0 $ (N
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :," %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
;:',$(#-," $&.2$"(A," ?< 75<7.<) +"< 7)0&" &"'#)%$< +" .( $<-)%3&') %"7.%03;) 0" "J#%"0$ "( &B%'3()0 +"< 7)0&" +" <)0 7$0)0 :$0" 1 <)0 7$0)0 +" %"7.%03>( +"< '30')G O$%$ 3<.0&%$% 7>') 0" #%)7"+" 7)(03+"%"')0 <$ 4.(73>( +"< 75<7.<) +" .( (E'"%) 4$7&)%3$< "( 0. ;"%03>( %"7.%03;$G ?(&)(7"0D 03 .6<3H$')0 PQ(R #$%$ %"#%"0"(&$% "< 7)0&" +" 7)'#.&$% <$ "/"7.73>( 7)( &$'$L) (S OB
*&) 6%()"D*%# +*&) &2 3 *6 +& 44 E2 D$)7D& B5 $#9$ D$)7D& & K 6%()"D*%# +& H B25
9* & 44 E
Coste caso base
, +&2 4 , +&HB2 A O M
9* & I E
Coste caso recurrente
C P$9"#7(*Q& 1%D% 6%()"D*%# +R2S ,+R2 4 ,+T2 A O M 4 ,+N2 A O M A OM 4 ,+M2 A O M A OM A OM 4 ,+B2 A O M A OM A OM A OM 4 ,+E2 A O M A OM A OM A OM A OM 4 OB A OM A OM A OM 4 U +&2
A
OM A OM 4 OB A R K O M
Dado que el coste temporal resulta linealmente proporal tamaño del proble ! cional ma el orden de complejidad es lineal
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :," %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
;:',$(#-," $&.2$"(A," O$%$ ";3&$% "( 7$+$ 7$0) .( %$H)($'3"(&) 03'3<$% $< $(&"%3)%D #)+"')0 +"%3;$% .($ 4>%'.<$ -"("%$< +" 75<7.<) "( 4.(73>( +" <$ "0&%.7&.%$ +" <$ 4.(73>( %"7.%03;$D 0)<.73>( $($( +" %"7.%%"(73$0 $+/.(&$
(B[&G
9* & > 8
, +&2 4 *[,+&
! 82
A ( M[&G
*S VWF$D" FXY*F" 8$ *&/"(%(*"&$9 D$(7D9*/%9 1"D (%9" 8S Z%()"D 8$ 8$(D$(*F*$&)" 8$# 1D"!#$F% $& #% 8*/*9*Q& 8$# 1D"!#$F% & > 8
S O%9" !%9$
& I4 8 S O%9" D$(7D9*/" (B[&G0 (M[&G S O"9)$ %9"(*%8"9 % #%9 1%D)$9 &" D$(7D9*/%9 G S V*/$# 8$ 8$1$&8$&(*% 8$ #%9 "1$D%(*"&$9 &" D$(7D9*/%9 ("& $# )%F%\" 8$# 1D"!#$F% E S O"&9)%&)$ B S ]*&$%# M S O7%8DX)*(%
9* & I4 8
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :," %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
;:',$(#-," $&.2$"(A," O$%$ ";3&$% "( 7$+$ 7$0) .( %$H)($'3"(&) 03'3<$% $< $(&"%3)%D #)+"')0 +"%3;$% .($ 4>%'.<$ -"("%$< +" 75<7.<) "( 4.(73>( +" <$ "0&%.7&.%$ +" <$ 4.(73>( %"7.%03;$D 0)<.73>( $($( +" %"7.%%"(73$0 $+/.(&$ H3
0'76443@# D"0 $6=$%0&443@# I
U +&GAB2
(B[&G , +&2 4 *[,+&
H3
, +&2 4 U +*&^82
9* * I B
! 82
A ( M[&G
9* & I4 8
0'76443@# D"0 7393$3@# J
9* * 44 B
, +&2 4
9* & > 8
U +&G2
9* * > 8 G
U +&G #"@ &2
9* * 4 8 G
U +"@8*2
9* * I 8 G
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :," %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
;:',$(#-," (#&$%8A," ?< 7)0&" &"'#)%$< +" .( $<-)%3&') 3&"%$6;) 0" 7$<7.<$ $7.'.<$6;$'"(&" $ #$%6% +"< 7)0&" +" 7$+$ .($ +" 0.0 3(0&%.773)("0 7)(06&.1"(&"0G ?0&.+3"')0 0. 7)0&" Instrucción
Coste
*D'0&43"#'$ =8$34&$,
Instrucción
Coste
H'#%'#43&$ 3%'0&%39&$
H _&)D%8% ^ 9%#*8%
U+B2
H 6"D +*&*5$5*&(2 3!C
F%Y 3U+*&*20 &[ F%Y 3U+$20 U+*&(20 U+!2CC
H J9*@&%(*Q&
U+B2
H :;*#$ +$2 3!C
&[ F%Y 3U+$20 U+!2C
H _Y1D$9*"&$9 $9(%#%D$9
U+B2
H 8" 3!C :;*#$ +$2
&[ F%Y 3U+$20 U+!2C
H'46'#43&$ $'#%'#43&$ K 9B5 9M5 9N
L#9"4&43@# $6=D0"/0&2&$ ` U+9*2 4 F%Y 3U +9*2C
H'#%'#43&$ 4"#7343"#&5'$
H 6 +$B0 $M2
a%Y 3U+$B20 U+$M20 U+62C
M'/5&$ 7' D0"764%" N $62&
H *6 +$2 3!BC $#9$ 3!MC
F%Y 3U+$20 U+!B20 U+!M2C
H U +6 A @2
U+6 A @2 4 F%Y +U+620 U+@22
H 9:*)(; +$2 3
F%Y 3U+$20 U+!B20 U+!M2C
H U +6 K @2
U+6 K @2 4 U+62 K U+@2
(%9$ (B S !B5 (%9$ (M S !M5 C
B ]%9
U1$D%(*"&$9 !X9*(%9 &"
8$1$&8$& 8$# )%F%\" 8$# 1D"!#$F%
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," F"+3+$ +" <$ "@73"(73$ +" <)0 $<-)%3&')0
BG/-, "& -(*& :% &<.(&0.(% *& :," %:',$(#-,"E ,$ '"+3+$ +" <$ "@73"(73$ $03(&>67$ +" $<-)%3&')0 #%"&"(+" 7<$03@7$% 7$+$ $<-)%3&') "( .($ 4$'3<3$ +" 7)'#<"/3+$+ $03(&>67$ +"&"%'3($+$ #%"073(+3"(+) +" 7)(03+"%$73)("0 7)(0&$(&"0 ) +" "07$<$G ?( (."0&%) "0&.+3) .6<3H$%"')0 '"+3+$ &"'#)%$
;:',$(#-," (#&$%8A," U #$%6% +" <)0 $(5<3030 $(&"%3)%"0 +" 7)0&" +" 7$+$ 3(0&%.773>( $($<37"')0 <$ "@73"(73$ +" .( $<-)%3&') 3&"%$6;) !""#$%& "D8$&%D +,-. /2 3 *&) )$F15 6"D +*&) * 4 B5 * > /?#$&@);5 *AA2
U+B2
6"D +*&) G 4 *AB5 G > /?#$&@);5 GAA2 *6 +/-*. > /-G.2 3
C C
U+B2 U+& M2
U+B2
)$F1 4 /-G.5
U+B2
/-G. 4 /-*.5
U+B2
/-*.4 )$F15
U+B2 !"#
U+B2
U+B2[+&H*2
!"#
U+&2[&
!"#
!"#
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," V3:<3)-%$W$
I(?:(,'$%J% Bibliografía básica
Estructuras de datos en java. Weiss, Mark Allen. Pearson Addison – Wesley. ISBN 9788478290352
;07:("(" *& :% &<.(&0.(% *& :," %:',$(#-," V3:<3)-%$W$
I(?:(,'$%J% Bibliografía complementaria
Fundamentos de Algoritmia. G. Brassard, P. Bratley. Prentice Hall. SBN: 84-89660-00-X 1997
Diseño de programas. Formalismo y abstracción. Ricardo Peña Marí. Pearson Prentice Hall. ISBN 13: 9788420541914