Está en la página 1de 6

3/9/2017 EstructuradeDatos:UNIDAD1ANALISISDEALGORITMOS

Ms Siguienteblog angelsistemaz@gmail.com Escritorio Cerrarsesin

EstructuradeDatos
D O M IN G O , 4 D E O C T U B RE D E 2 0 0 9
Seguidores
Seguidores(3) UNIDAD1ANALISISDEALGORITMOS

INSTITUTOTECNOLGICOSUPERIOR
DELAMONTAA
Seguir
INGENIERAENSISTEMAS
Archivodelblog COMPUTACIONALES
2 0 1 0 (3 )
EstructuradeDatos
2 0 0 9 (1 )
oct u br e(1 )
Facilitador:Ing.FranciscoCastroHurtado
UNIDA D1 A NA LISIS
DEA LGORITMOS Presenta:ArmandoClementeGarca
Temas:
Datospersonales ResumenUnidad1
A R MA N DO
DesarrollodeunAlgoritmo
V er t odom iper fil


TercerSemestre
TlapaDeComonfortGro,Octubre022009



*************************************************************
***********************






UNIDAD1 ANLISISDEALGORITMOS.

1 .1 ConceptoDeComplejidadDeAlgoritmos.
1 .2.AritmticaDeLaNotacinO.
1 .3.Complejidad.
1 .3.1 .TiempoDeEjecucinDeUnAlgoritmo.
1 .3.2.ComplejidadEnEspacio.
1 .4.SeleccinDeUnAlgoritmo.

PARTE1 .

1.1ConceptoDeCom plejidadDeAlgoritm os.


Algoritmo,elconjuntodepasospararesolv erunproblema,mientras
quecomplejidadsignificalacantidadderecursosqueseutilizanpara
llegaraunameta.
Un algoritmo ser mas eficiente comparado con otro, siempre que
http://estructurau1.blogspot.mx/2009/10/algoritmos.html 1/6
3/9/2017 EstructuradeDatos:UNIDAD1ANALISISDEALGORITMOS
consuma menos recursos, como el tiempo y espacio de memoria
necesariosparaejecutarlo.

Lacomplejidaddeunalgoritmoesaquellafuncinquedaeltiempo
dey /oelespacioutilizadoporelalgoritmoenfuncindeltamaode
laentrada.
Cada algoritmo guarda una estrecha relacin con una estructura de
datos. Por ello, no siempre es posible utilizar el algoritmo ms
eficiente,puestoquelaeleccindelasestructurasdedatosdepende
dev ariascuestiones,incluidaladequtipodedatosadministramosy
la frecuencia con que se realizan diferentes operaciones sobre ellos.
As,deberemosencontrarunasituacincompromisoentretiempoy
compromiso utilizados. En general, si aumentamos el espacio
necesario para almacenar los datos, conseguiremos un mejor
rendimientoeneltiempoy v icev ersa.

La eficiencia de un algoritmo puede ser cuantificada con las
siguientesmedidasdecomplejidad:
1 .ComplejidadTemporaloTiempodeejecucin.Tiempodecmputo
necesarioparaejecutaralgnprograma.
2. Complejidad Espacial. Memoria que utiliza un programa para su
ejecucin, La eficiencia en memoria de un algoritmo indica la
cantidaddeespaciorequeridoparaejecutarelalgoritmoesdecir,el
espacio en memoria que ocupan todas las v ariables propias al
algoritmo.Paracalcularlamemoriaestticadeunalgoritmosesuma
lamemoriaqueocupanlasv ariablesdeclaradasenelalgoritmo.Para
el caso de la memoria dinmica, el clculo no es tan simple y a que,
estedependedecadaejecucindelalgoritmo.

Este anlisis se basa en las Complejidades Temporales, con este fin,
paracadaproblemadeterminaremosunamedidaN,quellamaremos
tamaodelaentradaonmerodedatosaprocesarporelprograma,
intentaremoshallarrespuestasenfuncindedichaN.

El concepto ex acto que cuantifica N depender de la naturaleza del
problema, si hablamos de un array se puede v er a N como el rango
delarray ,paraunamatriz,elnmerodeelementosquelacomponen
paraungrafo,podraserelnmerodenodosoarcosqueloarman,
nosepuedeestablecerunareglaparaN,puescadaproblemaacarrea
supropialgicay complejidad.


Aritm ticaDeLaNotacinO.




El tiempo de ejecucin es proporcional, esto es, multiplica por una
constante a alguno de los tiempos de ejecucin anteriormente
propuestos, adems de la suma de algunos trminos ms pequeos.
As, un algoritmo cuy o tiempo de ejecucin sea T = 3N2 + 6N se
puede considerar proporcional a N2. En este caso se dira que el
algoritmoesdelordendeN2,y seescribeO(N2).

Los grafos definidos por matriz de ady acencia ocupan un espacio
O(N2),siendoNelnmerodev rticesdeste.
LanotacinOgrandeignoralosfactoresconstantes,esdecir,ignora
sisehaceunamejoropeorimplementacindelalgoritmo,ademsde
serindependientedelosdatosdeentradadelalgoritmo.Esdecir,la
utilidaddeaplicarestanotacinaunalgoritmoesencontrarunlmite
superiordeltiempodeejecucin.
http://estructurau1.blogspot.mx/2009/10/algoritmos.html 2/6
3/9/2017 EstructuradeDatos:UNIDAD1ANALISISDEALGORITMOS

A v eces ocurre que no hay que prestar demasiada atencin a esto.
Por ejemplo, el tiempo de ejecucin del algoritmo Quick Sort es de
O(N2).Sinembargo,enlaprcticaestecasonosedacasinuncay la
may oradeloscasossonproporcionalesaNlogN.Esporelloquese
tilizaestaltimaex presinparaestemtododeordenacin.
Unadefinicinrigurosadeestanotacineslasiguiente:
Unafuncing(N)perteneceaO(f(N))siy slosiex istenlasconstantes
c0y N0talesque:
g(N)<=c0f(N),paratodoN>=N0.


1.3.Com plejidad.


Unalgoritmoesunconjuntofinitodereglasquedanunasecuenciade
operaciones para resolv er todos los problemas de un tipo de dato,
debe cumplir con condiciones de finitud, definibilidad, entrada,
saliday efectiv idad.

Elusodeestructuraspuedenhacertriv ialeldiseodeunalgoritmoo
un algoritmo muy complejo puede usar estructuras de datos muy
simples.


1.3.1.T iem poDeEjecucinDeUnAlgoritm o.


Perodotranscurridoentreelinicioy lafinalizacindelalgoritmo:

Tiempo de ejecucin constante. Significa que la may ora de las
instruccionesseejecutanunav ezomuy pocas.

logN. Tiempo de ejecucin logartmico. Se puede considerar como
una gran constante. La base del logaritmo (en informtica la ms
comn es la base 2) cambia la constante, pero no demasiado. El
programa es ms lento cuanto ms crezca N, pero es inapreciable,
pueslogNnoseduplicahastaqueNllegueaN2.

N.Tiempodeejecucinlineal.UncasoenelqueNv alga40,tardar
eldoblequeotroenqueNv alga20.Unejemploseraunalgoritmo
queleeNnmerosenterosy dev uelv elamediaaritmtica.

NlogN.EltiempodeejecucinesNlogN.Escomnencontrarloen
algoritmoscomoQuickSorty otrosdelestilodiv idey v encers.SiN
seduplica,eltiempodeejecucinesligeramentemay ordeldoble.

N2. Tiempo de ejecucin cuadrtico. Suele ser habitual cuando se
tratan pares de elementos de datos, como por ejemplo un bucle
anidado doble. Si N se duplica, el tiempo de ejecucin aumenta
cuatro v eces. El peor caso de entrada del algoritmo Quick Sort se
ejecutaenestetiempo.

N3.Tiempodeejecucincbico.Comoejemplosepuededarelde
un bucle anidado triple. Si N se duplica, el tiempo de ejecucin se
multiplicaporocho.

2N.Tiempodeejecucinex ponencial.Nosuelensermuy tilesenla
prctica por el elev adsimo tiempo de ejecucin. El problema de la
mochila resuelto por un algoritmo de fuerza bruta simple v uelta
atrsesunejemplo.SiNseduplica,eltiempodeejecucinseelev a
http://estructurau1.blogspot.mx/2009/10/algoritmos.html 3/6
3/9/2017 EstructuradeDatos:UNIDAD1ANALISISDEALGORITMOS
alcuadrado.


1.3.2.Com plejidadEnEspacio.


La cantidad (la medida v ara segn la mquina) que necesita el
algoritmo para su ejecucin es decir, el espacio en memoria que
ocupan todas las v ariables propias al algoritmo. Para calcular la
memoriaestticadeunalgoritmosesumalamemoriaqueocupanlas
v ariables declaradas en el algoritmo. Para el caso de la memoria
dinmica, el clculo no es tan simple y a que, este depende de cada
ejecucindelalgoritmo.






*************************************************************
***********************



EJEMPLO COMPLEJIDAD DE TIEMPO DE EJECUCIN DE UN
ALGORITMO

El tiempo de ejecucin se mide contando el nmero de pasos de
programa.
1 .Loscomentariosy lasinstruccionesdedeclaracinnosonpasosde
programa.
2. Las ex presiones y las instrucciones de asignacin son un paso de
programa.
Si las ex presiones contienen llamadas a funciones al nmero de
pasosselesumaelnmerodepasosdelafuncin.Silallamadaala
funcintienepasodeparmetrosporv alorhay quetenerencuenta
lasasignacionesaestosparmetros.Silafuncinesrecursiv adeben
considerarse tambin las v ariables locales, y a que deben ser
almacenadasenlapiladelsistema.
Silasex presionesmanejantiposcompuestos(porejemplov ectores)
elnmerodepasosdependedeltamaodelosdatos.

3.Lasinstruccionesdeiteracin.
Laejecucindelapartedecontrolcuentacomoelnmerodepasos
delaex presinquedebeserev aluada.
El nmero de pasos necesarios para ejecutar el cuerpo del bucle
debemultiplicarseporelnmerodev ecesqueseejecutaelbucle.


4. Instrucciones de seleccin. La ejecucin de la parte de control
cuenta como el nmero de pasos de la ex presin que debe ser
ev aluada. Se consideraran las div ersas alternativ as al contar el
nmerodepasostotaldelprograma.

5.Lainstruccinderetornoreturncuentacomoelnmerodepasos
delaex presinquedebeserev aluada.



Ejercicio:

http://estructurau1.blogspot.mx/2009/10/algoritmos.html 4/6
3/9/2017 EstructuradeDatos:UNIDAD1ANALISISDEALGORITMOS
Este Algoritmo realiza la sumatoria de los nmeros enteros
comprendidosentreel1 y el1 0,esdecir,
1 +2+3+.+1 0.






PropuestaEnPseudocdigoPropuestaEnDiagramaDeFlujo




















ALGORIT MO
PROPUEST O
Y
DESARROLL
ADO EN
PASCAL

Supongamos un
algoritmo que
lea las
coordenadas de
tres puntos y
los muev a tres
puntos en la
coordenada x y
escriba el
resultadoenalgndispositiv odesalida:

ALGORITMOlee_tres_v ertices
ENTRADA:lascoordenadas(x ,y )detrespuntos
SALIDA:lascoordenadas(x ,y )delostrespuntosmov idos3puntos
hacialaderecha.
V ARIABLES:i:entera
x ,y :real
INICIO
PARAi=1 HASTA3CONINCREMENTO+1
ESCRIBE"Abscisadelpuntonmero",i
LEERx
ESCRIBE"Ordenadadelpuntonmero",i
LEERY
ESCRIBE"Elpuntoes("x +3","y ")"
http://estructurau1.blogspot.mx/2009/10/algoritmos.html 5/6
3/9/2017 EstructuradeDatos:UNIDAD1ANALISISDEALGORITMOS
FIN_PARA
FIN

Elprogramaequiv alenteaestealgoritmosemuestraacontinuacin.
ComopodemosapreciarenunprogramaenPascalesimportantsimo
noolv idardetallesdesintax is.Porejemplocadasentenciaterminaen
puntoy coma.Decualquierformaesinmediatoapreciarlossimples
cambiosex istentes.

programlee_tres_v ertices
v arx ,y :real
i:integer
begin
fori:=1 to3do
begin
write('Abscisadelpuntonmero',i)readln(x )
write('Ordenadadelpuntonmero',i)readln(y )
writeln('Elpuntoes(',x +3,',',y ,')')
end
end








P ub lica d o p o rArm a nd o e n14:43

Nohaycomentarios:

Publicaruncomentario

Introducetucomentario...

Comentarcomo: AngelH(Google) Cerrarsesin

Publicar Vistaprevia Avisarme

Entradamsreciente Pginaprincipal

Suscribirsea:Env iarcomentarios(Atom)

http://estructurau1.blogspot.mx/2009/10/algoritmos.html 6/6