Estructuras de Datos
May 8, 2017 | Author: Richard García | Category: N/A
Short Description
Descripción: LIbro de Estructura de Datos...
Description
%3425#452!3 $%$!4/3
%3425#452!3 $%$!4/3 4ERCERAEDICIØN
$2/36!,$/#!)2¼ 0ROFESOR )NVESTIGADORDEL )NSTITUTO4ECNOLØGICO!UTØNOMODE-ÏXICO)4!- -IEMBRODEL3ISTEMA.ACIONAL DE)NVESTIGADORES3.) .IVEL
-#3),6)!'5!2$!4) 0ROFESOR.UMERARIODEL )NSTITUTO4ECNOLØGICO!UTØNOMODE-ÏXICO)4!-
-²8)#/s!5#+,!.$s"/'/4«s"5%./3!)2%3s#!2!#!3s'5!4%-!,! ,)3"/!s,/.$2%3s-!$2)$s-),«.s-/.42%!,s.5%6!$%,()s.5%6!9/2+ 3!.&2!.#)3#/s3!.*5!.s3!.,5)3s3!.4)!'/ 3°/0!5,/s3)$.%9s3).'!052s4/2/.4/
$IRECTOR(IGHER%DUCATION-IGUEL«NGEL4OLEDO#ASTELLANOS $IRECTOREDITORIAL2ICARDO!DEL"OSQUE!LAYØN %DITORSPONSOR0ABLO%2OIG6ÈZQUEZ %DITORADEDESARROLLO$IANA+AREN-ONTA×O'ONZÈLEZ 3UPERVISORDEPRODUCCIØN:EFERINO'ARCÓA'ARCÓA %3425#452!3$%$!4/3 4ERCERAEDICIØN
0ROHIBIDALAREPRODUCCIØNTOTALOPARCIALDEESTAOBRA PORCUALQUIERMEDIO SINLAAUTORIZACIØNESCRITADELEDITOR
$%2%#(/32%3%26!$/3© RESPECTOALATERCERAEDICIØNPOR -C'2!7 (),,).4%2!-%2)#!.!%$)4/2%3 3!$%#6 !3UBSIDIARYOF4HE-C'RAW (ILL#OMPANIES )NC 0ROLONGACIØN0ASEODELA2EFORMA 4ORRE! 0ISO #OLONIA$ESARROLLO3ANTA&E $ELEGACIØN«LVARO/BREGØN #0 -ÏXICO $& -IEMBRODELA#ÈMARA.ACIONALDELA)NDUSTRIA%DITORIAL-EXICANA 2EG.ÞM )3". )3". SEGUNDAEDICIØN )3". 8PRIMERAEDICIØN
)MPRESOEN-ÏXICO
0RINTEDIN-EXICO
!NUESTROHIJO&ACUNDO
#/.4%.)$/ 02%3%.4!#)». XIII
#!0¶45,/ %STRUCTURASFUNDAMENTALESDEDATOS )NTRODUCCIØN !RREGLOS $ECLARACIØNDEARREGLOSUNIDIMENSIONALES /PERACIONESCONARREGLOSUNIDIMENSIONALES !RREGLOSBIDIMENSIONALES $ECLARACIØNDEARREGLOSBIDIMENSIONALES /PERACIONESCONARREGLOSBIDIMENSIONALES !RREGLOSDEMÈSDEDOSDIMENSIONES ,ACLASE!RREGLO 2EGISTROS $ECLARACIØNDEREGISTROS !CCESOALOSCAMPOSDEUNREGISTRO $IFERENCIASENTREREGISTROSYARREGLOS #OMBINACIONESENTREARREGLOSYREGISTROS !RREGLOSPARALELOS 2EGISTROSYCLASES %JERCICIOS
#!0¶45,/ !RREGLOSMULTIDIMENSIONALESREPRESENTADOS ENARREGLOSUNIDIMENSIONALES )NTRODUCCIØN !RREGLOSBIDIMENSIONALES !RREGLOSDEMÈSDEDOSDIMENSIONES -ATRICESPOCODENSAS -ATRICESCUADRADASPOCODENSAS -ATRIZTRIANGULARINFERIOR -ATRIZTRIANGULARSUPERIOR
viii
Ìi` -ATRIZTRIDIAGONAL -ATRICESSIMÏTRICASYANTISIMÏTRICAS %JERCICIOS
#!0¶45,/ 0ILASYCOLAS )NTRODUCCIØN 0ILAS 2EPRESENTACIØNDEPILAS /PERACIONESCONPILAS !PLICACIONESDEPILAS ,ACLASE0ILA #OLAS 2EPRESENTACIØNDECOLAS /PERACIONESCONCOLAS #OLASCIRCULARES $OBLECOLA !PLICACIONESDECOLAS ,ACLASE#OLA %JERCICIOS
#!0¶45,/ 2ECURSIØN )NTRODUCCIØN %LPROBLEMADELAS4ORRESDE(ANOI 2ECURSIVIDADENÈRBOLES 2ECURSIVIDADENORDENACIØNYBÞSQUEDA %JERCICIOS
#!0¶45,/ ,ISTAS )NTRODUCCIØN ,ISTASSIMPLEMENTELIGADAS /PERACIONESCONLISTASSIMPLEMENTELIGADAS 2ECORRIDODEUNALISTASIMPLEMENTELIGADA )NSERCIØNENLISTASSIMPLEMENTELIGADAS %LIMINACIØNENLISTASSIMPLEMENTELIGADAS "ÞSQUEDAENLISTASSIMPLEMENTELIGADAS ,ISTASCIRCULARES ,ISTASDOBLEMENTELIGADAS /PERACIONESCONLISTASDOBLEMENTELIGADAS 2ECORRIDODEUNALISTADOBLEMENTELIGADA )NSERCIØNENLISTASDOBLEMENTELIGADAS %LIMINACIØNENLISTASDOBLEMENTELIGADAS ,ISTASDOBLEMENTELIGADASCIRCULARES !PLICACIONESDELISTAS
$0/5&/*%0 2EPRESENTACIØNDEPOLINOMIOS 3OLUCIØNDECOLISIONESHASH ,ACLASE,ISTA %JERCICIOS
#!0¶45,/ «RBOLES )NTRODUCCIØN «RBOLESENGENERAL #ARACTERÓSTICASYPROPIEDADESDELOSÈRBOLES ,ONGITUDDECAMINOINTERNOYEXTERNO «RBOLESBINARIOS «RBOLESBINARIOSDISTINTOS SIMILARESYEQUIVALENTES «RBOLESBINARIOSCOMPLETOS 2EPRESENTACIØNDEÈRBOLESGENERALESCOMOBINARIOS 2EPRESENTACIØNDEUNBOSQUECOMOÈRBOLBINARIO 2EPRESENTACIØNDEÈRBOLESBINARIOSENMEMORIA /PERACIONESENÈRBOLESBINARIOS «RBOLESBINARIOSDEBÞSQUEDA «RBOLESBALANCEADOS )NSERCIØNENÈRBOLESBALANCEADOS 2EESTRUCTURACIØNDELÈRBOLBALANCEADO «RBOLESMULTICAMINOS «RBOLES " «RBOLES " «RBOLES ,ACLASE«RBOL %JERCICIOS
#!0¶45,/ 'RÈlCAS )NTRODUCCIØN $ElNICIØNDEGRÈlCAS #ONCEPTOSBÈSICOSDEGRÈlCAS 'RÈlCASDIRIGIDAS 2EPRESENTACIØNDEGRÈlCASDIRIGIDAS /BTENCIØNDECAMINOSDENTRODEUNADIGRÈlCA !LGORITMODE$IJKSTRA !LGORITMODE&LOYD !LGORITMODE-ARSHALL 'RÈlCASNODIRIGIDAS 2EPRESENTACIØNDEGRÈlCASNODIRIGIDAS #ONSTRUCCIØNDELÈRBOLABARCADORDECOSTOMÓNIMO !LGORITMODE0RIM !LGORITMODE+RUSKAL 2ESOLUCIØNDEPROBLEMAS
ix
x
Ìi` %SPACIO ESTADO -ÏTODOSDEBÞSQUEDAENESPACIO ESTADO -ÏTODOSDEBÞSQUEDABREADTH lRST -ÏTODODEBÞSQUEDADEPTH lRST ,ACLASEGRÈlCA %JERCICIOS
#!0¶45,/ -ÏTODOSDEORDENACIØN )NTRODUCCIØN /RDENACIØNINTERNA /RDENACIØNPORINTERCAMBIODIRECTOBURBUJA /RDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOCONSE×AL /RDENACIØNPORELMÏTODODELASACUDIDASHAKERSORT /RDENACIØNPORINSERCIØNDIRECTA /RDENACIØNPORELMÏTODODEINSERCIØNBINARIA /RDENACIØNPORSELECCIØNDIRECTA !NÈLISISDEElCIENCIADELOSMÏTODOSDIRECTOS /RDENACIØNPORELMÏTODODE3HELL /RDENACIØNPORELMÏTODOQUICKSORT /RDENACIØNPORELMÏTODOHEAPSORTMONTÓCULO /RDENACIØNEXTERNA )NTERCALACIØNDEARCHIVOS /RDENACIØNDEARCHIVOS /RDENACIØNPORMEZCLADIRECTA /RDENACIØNPORELMÏTODODEMEZCLAEQUILIBRADA %JERCICIOS
#!0¶45,/ -ÏTODOSDEBÞSQUEDA )NTRODUCCIØN "ÞSQUEDAINTERNA "ÞSQUEDASECUENCIAL "ÞSQUEDABINARIA "ÞSQUEDAPORTRANSFORMACIØNDECLAVES &UNCIØNHASHPORMØDULODIVISIØN &UNCIØNHASHCUADRADO &UNCIØNHASHPORPLEGAMIENTO &UNCIØNHASHPORTRUNCAMIENTO 3OLUCIØNDECOLISIONES 2EASIGNACIØN !RREGLOSANIDADOS %NCADENAMIENTO «RBOLESDEBÞSQUEDA "ÞSQUEDAEXTERNA "ÞSQUEDAENARCHIVOSSECUENCIALES
$0/5&/*%0 "ÞSQUEDASECUENCIAL "ÞSQUEDASECUENCIALMEDIANTEBLOQUES "ÞSQUEDASECUENCIALCONÓNDICES "ÞSQUEDABINARIA "ÞSQUEDAPORTRANSFORMACIØNDECLAVESHASH 3OLUCIØNDECOLISIONES (ASHINGDINÈMICOBÞSQUEDADINÈMICAPORTRANSFORMACIØN DECLAVES -ÏTODODELASEXPANSIONESTOTALES -ÏTODODELASEXPANSIONESPARCIALES ,ISTASINVERTIDAS -ULTILISTAS %JERCICIOS
")",)/'2!&¶! ',/3!2)/ ¶.$)#%!.!,¶4)#/
xi
02%3%.4!#)¼. /"*%4)6/ %STELIBROTIENECOMOOBJETIVOPRESENTARLASESTRUCTURASDEDATOS ASÓCOMOLOSALGO RITMOSNECESARIOSPARATRATARLAS%LLENGUAJEUTILIZADOESALGORÓTMICO ESCRITOENSEUDO CØDIGO INDEPENDIENTEDECUALQUIERLENGUAJECOMERCIALDEPROGRAMACIØN%STACARACTE RÓSTICAESMUYIMPORTANTE YAQUEPERMITEALLECTORCOMPRENDERLASESTRUCTURASDEDA TOSYLOSALGORITMOSASOCIADOSAELLASSINRELACIONARLOSCONLENGUAJESDEPROGRAMACIØN PARTICULARES3ECONSIDERAQUEUNAVEZQUEELLECTORDOMINEESTOSCONCEPTOS LOSPODRÈ IMPLEMENTARFÈCILMENTEENCUALQUIERLENGUAJE 3I BIEN CADA UNO DE LOS TEMAS SON DESARROLLADOS DESDE NIVELES BÈSICOS A NIVELES COMPLEJOS SESUPONEQUEELLECTORYACONOCECIERTOSCONCEPTOS POREJEMPLOELDEDATOS SIMPLESENTEROS REALES BOOLEANOS CARÈCTERELDEINSTRUCCIØNDECLARATIVA ASIG NACIØN ENTRADASALIDA Y EL DE OPERADORES ARITMÏTICOS RELACIONALES Y LØGICOS !SIMISMOSEUTILIZA PERONOSEEXPLICA ELCONCEPTODEVARIABLESYCONSTANTES%NLOS ALGORITMOSSEESCRIBENLOSNOMBRESDEVARIABLESCONMAYÞSCULAS35-! . ETC LO MISMOPARALASCONSTANTESBOOLEANAS6%2$!$%2/Y&!,3/ #ABEACLARARQUEENESTELIBRONOSEABORDANLOSTIPOSABSTRACTOSDEDATOSDEMANERA EXPLÓCITA3INEMBARGO SETRATANALGUNOSDEELLOSSINPRESENTARLOSCOMOTALESPOREJEM PLO LASPILASYCOLASENELCAPÓTULOTRES #ADACAPÓTULOCUENTACONUNNÞMEROIMPORTANTEDEEJERCICIOS#ONÏSTOSSESIGUE ELMISMOCRITERIOAPLICADOENELDESARROLLODELOSDISTINTOSTEMAS ESDECIR SEPROPONEN EJERCICIOSENLOSQUESEAUMENTAGRADUALMENTEELNIVELDECOMPLEJIDAD
,%.'5!*%54),):!$/ %LLENGUAJEUTILIZADOPARADESCRIBIRLOSALGORITMOSESESTRUCTURADO,ASESTRUCTURASAL GORÓTMICASSELECTIVASYREPETITIVASSEENUMERANYLASINSTRUCCIONESQUEFORMANPARTEDE ELLASSEESCRIBENDEJANDOSANGRÓASPARAPROPORCIONARMAYORCLARIDAD!DEMÈS CONEL OBJETODEAYUDARALENTENDIMIENTODELOSMISMOS SEESCRIBENCOMENTARIOSENCERRADOS ENTRE[]!CONTINUACIØNSEPRESENTANLASESTRUCTURASALGORÓTMICASEMPLEADASENLOSAL GORITMOS
xiv
*ÀiÃiÌ>V 3ELECTIVASIMPLE PI3ICONDICIØN ENTONCES ACCIØN PI [&INDELCONDICIONALDELPASOPI] $ONDECONDICIØNESCUALQUIEREXPRESIØNRELACIONALYOLØGICA YACCIØNESCUALQUIER OPERACIØNOCONJUNTODEOPERACIONESLECTURA ESCRITURA ASIGNACIØNUOTRAS %STAESTRUCTURAPERMITESELECCIONARUNAALTERNATIVADEPENDIENDODEQUELACONDICIØN SEAVERDADERA%SDECIR ALSEREVALUADALACONDICIØN SIÏSTARESULTACONUNVALORIGUAL A6%2$!$%2/ ENTONCESSEEJECUTARÈLAACCIØNINDICADA%NCASOCONTRARIOSESIGUE CONELmUJOESTABLECIDO
3ELECTIVADOBLE PI3ICONDICIØN ENTONCES ACCIØN SINO ACCIØN PI [&INDELCONDICIONALDELPASOPI]
$ONDECONDICIØNESUNAEXPRESIØNRELACIONALYOLØGICA YACCIØNYACCIØNSONCUAL QUIEROPERACIØNOCONJUNTODEOPERACIONESLECTURA ESCRITURA ASIGNACIØNUOTRAS %STAESTRUCTURAPERMITESELECCIONARUNADEDOSALTERNATIVAS SEGÞNLACONDICIØNSEA VERDADERAOFALSA3ILACONDICIØNESVERDADERASEEJECUTARÈLAACCIØN ENCASOCONTRARIO SEEJECUTARÈLAACCIØN 3ELECTIVAMÞLTIPLE PI3IVARIABLE VALORACCIØN VALORACCIØN VALORNACCIØNN PI [&INDELCONDICIONALDELPASOPI] $ONDEVALORJ ≤J≤N SONLOSPOSIBLESVALORESQUEPUEDETOMARLAVARIABLEAC CIØNJ ≤J≤N ESCUALQUIEROPERACIØNOCONJUNTODEOPERACIONESLECTURA ESCRITURA ASIGNACIØNUOTRAS %STE TIPO DE ESTRUCTURA SE UTILIZA PARA UNA SELECCIØN SOBRE MÞLTIPLES ALTERNATIVAS 3EGÞNELVALORDELAVARIABLESEEJECUTARÈLAACCIØNCORRESPONDIENTE$EESTAMANERA SI VARIABLEESIGUALAVALORSEEJECUTARÈLAACCIØN SIVARIABLEESIGUALAVALORSEEJECUTARÈ LAACCIØN YASÓENLOSDEMÈSCASOS
13&4&/5"$*Î/
xv
2EPETITIVACONDICIONADA PI-IENTRASCONDICIØN 2EPETIR ACCIØN PI [&INDELCICLODELPASOPI] $ONDECONDICIØNESCUALQUIEREXPRESIØNRELACIONALYOLØGICA YACCIØNESCUALQUIER OPERACIØNOCONJUNTODEOPERACIONESLECTURA ESCRITURA ASIGNACIØNUOTRAS %STA ESTRUCTURA PERMITE REPETIR UNA O MÈS OPERACIONES MIENTRAS LA CONDICIØN SEA VERDADERA 2EPETITIVAPREDElNIDA PI2EPETIRCONVARIABLEDESDE6)HASTA6& ACCIØN PI [&INDELCICLODELPASOPI] $ONDEVARIABLEESCUALQUIERVARIABLE 6)ESUNVALORINICIALQUESELEASIGNAAVA RIABLE 6&ESELVALORlNALQUEVAATOMARVARIABLEYACCIØNESCUALQUIEROPERACIØNO CONJUNTO DE OPERACIONES LECTURA ESCRITURA ASIGNACIØN U OTRAS 3E ASUME QUE EL VALORDELAVARIABLESEINCREMENTADEUNOENUNO %STAESTRUCTURAPERMITEREPETIRUNAOMÈSOPERACIONESUNNÞMEROlJODEVECES%L NÞMERODEREPETICIONESQUEDADETERMINADOPORLADIFERENCIAENTRE6&Y6)MÈSUNO
/2'!.):!#)¼. %LLIBROESTÈORGANIZADOENNUEVECAPÓTULOS CADAUNODEELLOSCUENTACONNUMEROSOS EJEMPLOSYEJERCICIOSQUEILUSTRANYAYUDANAENTENDERLOSCONCEPTOSVERTIDOSENELLOS 3EUTILIZANTABLASCONSEGUIMIENTOSDELOSALGORITMOSPARAPRESENTARCØMOFUNCIONANY DEQUÏMANERAAFECTANALASESTRUCTURASDEDATOSINVOLUCRADAS !LGUNOSLECTORESQUIZÈSEPANQUEESTAOBRATIENEDOSEDICIONESANTERIORES PUBLICADA PORPRIMERAVEZPORLAMISMACASAEDITORIALEN CONMÞLTIPLESREIMPRESIONES4RECE A×OSESUNTIEMPOEXTENSOENCOMPUTACIØN UNÈREADONDELOSCAMBIOSSEPRESENTANVE LOZMENTE%STAEDICIØNOFRECEUNACUIDADOSAREVISIØNDELOSTEMASTRATADOS ALGORITMOS MEJORADOSYEJERCICIOSADICIONALES ENlN MUCHOSCAMBIOSPARA ALCANZARELOBJETIVO PROPUESTODEESTANUEVAEDICIØN!DEMÈS ENLOSCAPÓTULOS YSEINCLUYØUNA BREVEINTRODUCCIØNALAPROGRAMACIØNORIENTADAAOBJETOS PRESENTANDOALASESTRUCTURAS DEDATOSOBJETOSDEESTUDIOENDICHOSCAPÓTULOSCONESTEENFOQUE %LLENGUAJEUTILIZADOENLOSPROGRAMASESPSEUDOCØDIGO ESDECIR INDEPENDIENTEDE CUALQUIEROTROLENGUAJEDEPROGRAMACIØNCOMERCIAL%STACARACTERÓSTICAPERMITEALESTU DIANTECONCENTRARSEENLASESTRUCTURASDEDATOSYENLOSALGORITMOSASOCIADOSAELLASSIN TENERQUEATENDERLOSDETALLESDEIMPLEMENTACIØN5NAVEZQUEDOMINELOSCONCEPTOS LOSPODRÈLLEVARALAPRÈCTICACONLAAYUDADECUALQUIERLENGUAJEDEPROGRAMACIØNCOMER CIAL,AGENERALIDADCONLAQUESEEXPLICANLOSCONCEPTOSYPOSIBLESAPLICACIONESDELOS MISMOSFACILITAN INCLUSO LAIMPLEMENTACIØNENLENGUAJESESTRUCTURADOSOENLENGUAJES ORIENTADOSAOBJETOS
xvi
*ÀiÃiÌ>V
#APÓTULO %STRUCTURASFUNDAMENTALES %NESTECAPÓTULOSEPRESENTANLASESTRUCTURASFUNDAMENTALESDEDATOS3EESTUDIANLOS ARREGLOSUNIDIMENSIONALES BIDIMENSIONALESYMULTIDIMENSIONALES!DEMÈS SEEXPLICAN LOSREGISTROS0ORÞLTIMO SEINCLUYEUNABREVEINTRODUCCIØNALAPROGRAMACIØNORIENTADA AOBJETOSCONELlNDEQUESIRVACOMOBASEPARAENTENDERLASPRINCIPALESESTRUCTURASDE DATOSDESDEESTEENFOQUE4AMBIÏNSEDESCRIBELACLASEARREGLO
#APÓTULO !RREGLOSMULTIDIMENSIONALESREPRESENTADOS ENARREGLOSUNIDIMENSIONALES ,AMAYORÓADELOSLENGUAJESDEPROGRAMACIØNDEALTONIVELPROPORCIONANMEDIOSElCA CESPARAALMACENARYRECUPERARELEMENTOSDEARREGLOSBIDIMENSIONALESYMULTIDIMENSIO NALES0ORELLO ELUSUARIONOSEPREOCUPAPORLOSDETALLESDELALMACENAMIENTOYELTRA TAMIENTOFÓSICODELDATO SINOPORELTRATAMIENTOLØGICODELMISMO%STOREPRESENTAUNA VENTAJA3INEMBARGO SILASESTRUCTURASSONMUYGRANDESYNOTODOSLOSCAMPOSESTÈN LLENOS SEPRESENTAENTONCESUNADESVENTAJAGRANDESPERDICIODEESPACIO0UEDEOCURRIR TAMBIÏNQUEELUSUARIONECESITEREPRESENTARDICHASESTRUCTURASDEFORMALINEAL0ORESTA RAZØN ENESTECAPÓTULOSEESTUDIARÈLAREPRESENTACIØNLINEALDEARREGLOSBIDIMENSIONALES YMULTIDIMENSIONALES3EANALIZARÈN ADEMÈS LASMATRICESPOCODENSAS LASTRIANGULARES YTRIDIAGONALES LASSIMÏTRICASYANTISIMÏTRICAS
#APÓTULO 0ILASYCOLAS %STECAPÓTULOSEDEDICARÈALASPILASYCOLAS LASCUALESSONESTRUCTURASDEDATOSLINEALES ESTÈTICASODINÈMICAS⎯DEPENDIENDODESIÏSTASSEIMPLEMENTANCONARREGLOSOLISTAS⎯ 4ALESESTRUCTURASDEDATOSTIENENLAPARTICULARIDADDEQUELAINSERCIØNYELIMINACIØNDE LOSELEMENTOSSEHACESOLAMENTEPORALGUNODELOSEXTREMOSSEGÞNSUESTRUCTURA4AM BIÏNSEPRESENTANESTASESTRUCTURASCONUNENFOQUEORIENTADOAOBJETOS
#APÓTULO 2ECURSIØN ,ARECURSIØNPERMITEDElNIRUNOBJETOENTÏRMINOSDESÓMISMO!PARECEENNUMEROSAS ACTIVIDADESDELAVIDADIARIAPOREJEMPLO ENLAFOTOGRAFÓADEUNAFOTOGRAFÓA#ASOSTÓPI COSDEESTRUCTURASDEDATOSDElNIDASDEMANERARECURSIVASONLASLISTASYLOSÈRBOLES QUE SEESTUDIARÈNENLOSDOSSIGUIENTESCAPÓTULOS,ARECURSIVIDADESUNAPROPIEDADESENCIAL ENELDESARROLLODESOFTWAREPORESTARAZØN SEANALIZANAQUÓLADESCRIPCIØNDELARECUR SIVIDAD ASÓCOMOELUSODEALGORITMOSRECURSIVOSCLÈSICOSYCOMPLEJOS
13&4&/5"$*Î/
xvii
#APÓTULO ,ISTAS ,ASLISTASSONESTRUCTURASLINEALESYDINÈMICASDEDATOS,APRINCIPALVENTAJADELDINA MISMO LO REPRESENTA EL HECHO DE QUE SE ADQUIEREN POSICIONES DE MEMORIA A MEDIDA QUESENECESITANYSELIBERANCUANDOYANOSEREQUIEREN%SDECIR SELLEGANAEXPANDIR OCONTRAER DEPENDIENDODELAAPLICACIØN%LDINAMISMODEESTASESTRUCTURASSOLUCIONA ELPROBLEMADEDECIDIRCUÈNTOESPACIOSENECESITAAPRIORI POREJEMPLO ENUNAESTRUC TURADEDATOSESTÈTICACOMOELARREGLO%NESTECAPÓTULOESTUDIAREMOSLASLISTASLINEALES CIRCULARESYDOBLEMENTELIGADAS4AMBIÏNSEPRESENTANESTASESTRUCTURASCONUNENFOQUE ORIENTADOAOBJETOS
#APÓTULO RBOLES ,OSÈRBOLESREPRESENTANLASESTRUCTURASDEDATOSNO LINEALESYLASDINÈMICASMÈSRELEVAN TESENCOMPUTACIØN.OLINEALES PUESTOQUEACADAELEMENTODELÈRBOLPUEDENSEGUIRLE VARIOS ELEMENTOS $INÈMICAS DADO QUE LA ESTRUCTURA DEL ÈRBOL SUELE CAMBIAR DURAN TELAEJECUCIØNDELPROGRAMA,OSÈRBOLESBALANCEADOSSONLAESTRUCTURADEDATOSMÈS IMPORTANTEPARATRABAJARENLAMEMORIAINTERNADELACOMPUTADORA0OROTRAPARTE LOS ÈRBOLES "CONSTITUYENLAESTRUCTURADEDATOSMÈSÞTILPARATRABAJARCONALMACENAMIENTO SECUNDARIO4AMBIÏNSEPRESENTAESTAESTRUCTURACONUNENFOQUEORIENTADOAOBJETOS
#APÓTULO 'RÉlCAS %STECAPÓTULOSEDEDICAALASESTRUCTURASDEDATOSQUEPERMITENREPRESENTARDIFERENTESTI POSDERELACIONESENTRELOSOBJETOSLASGRÈlCAS%STUDIAREMOSLASGRÈlCASDIRIGIDASYNO DIRIGIDAS LOSCONCEPTOSMÈSIMPORTANTESYLOSALGORITMOSMÈSDESTACADOSPARATRABAJAR CONELLAS TALESCOMO$IJKSTRA &LOYD 7ARSHALL 0RIMY+RUSKAL!DEMÈS SEINCLUYEUNA INTRODUCCIØNALASOLUCIØNDEPROBLEMASTEMAMUYRELACIONADOCONLASGRÈlCASYSE ESTUDIANLOSALGORITMOS"READTH &IRSTY$EPTH &IRST4AMBIÏNSEPRESENTAESTAESTRUCTURA CONUNENFOQUEORIENTADOAOBJETOS
#APÓTULO -ÏTODOSDEORDENACIØN /RDENARSIGNIlCACOLOCAROREORGANIZARUNCONJUNTODEDATOSUOBJETOSENUNASECUENCIA ESPECÓlCA ,OS PROCESOS TANTO DE ORDENACIØN COMO DE BÞSQUEDA SON FRECUENTES EN NUESTRAVIDA%NESTECAPÓTULOESTUDIAREMOSLOSMÏTODOSDEORDENACIØNINTERNAYEXTERNA MÈSIMPORTANTESDELAACTUALIDAD3EPRESENTA ADEMÈS ELANÈLISISDEElCIENCIADECADA UNODELOSMÏTODOS
#APÓTULO -ÏTODOSDEBÞSQUEDA %STECAPÓTULOSEDEDICØAUNADELASOPERACIONESMÈSIMPORTANTESENELPROCESAMIENTO DELAINFORMACIØNLABÞSQUEDA4ALOPERACIØNPERMITERECUPERARDATOSALMACENADOS,A
xviii
*ÀiÃiÌ>V BÞSQUEDAPUEDESERINTERNA CUANDOTODOSLOSELEMENTOSSEENCUENTRANENLAMEMORIA PRINCIPAL OEXTERNA CUANDOESTÈNENLAMEMORIASECUNDARIA3EESTUDIANLOSMÏTODOSDE BÞSQUEDAMÈSIMPORTANTESQUEEXISTEN3EPRESENTATAMBIÏNELANÈLISISDEElCIENCIADE CADAUNODEESTOSMÏTODOS
!'2!$%#)-)%.4/3 %STAOBRAESFRUTODELACOLABORACIØNDEAMIGOS ESTUDIANTESYCOLEGASQUE DEALGUNAU OTRAFORMA PARTICIPARONPARAQUEESTEPROYECTOSEAUNAREALIDAD%SPECIALMENTEQUERE MOSAGRADECERALDOCTOR!RTURO&ERNÈNDEZ0ÏREZ RECTORDEL)4!- YALOSFUNCIONARIOS DELA$IVISIØN!CADÏMICADE)NGENIERÓADEL)4!- QUIENESNOSAPOYARONPARALAREALI ZACIØNDEESTELIBRO /36!,$/#!)2» 3),6)!'5!2$!4)
#APÓTULO
£
%3425#452!3 &5.$!-%.4!,%3 $%$!4/3 ).42/$5##)¼. ,A IMPORTANCIA DE LAS COMPUTADORAS RADICA FUNDAMENTALMENTE EN SU CAPACIDAD PARA PROCESARINFORMACIØN%STACARACTERÓSTICALESPERMITEREALIZARACTIVIDADESQUEANTESSØLO LASREALIZABANLOSHUMANOS #ONELPROPØSITODEQUELAINFORMACIØNSEAPROCESADA SEREQUIEREQUEÏSTASEAL MACENEENLAMEMORIADELACOMPUTADORA$EACUERDOCONLAFORMAENQUELOSDATOSSE ORGANIZAN SECLASIlCANEN ◗ ◗
4IPOSDEDATOSSIMPLES 4IPOSDEDATOSESTRUCTURADOS
,APRINCIPALCARACTERÓSTICADELOSTIPOSDEDATOSSIMPLESCONSISTEENQUEOCUPANSØLO UNACASILLADEMEMORIAlGA PORTANTO UNAVARIABLESIMPLEHACEREFERENCIAAUN ÞNICOVALORALAVEZ%NESTEGRUPODEDATOSSEENCUENTRANNÞMEROSENTEROSYREALES CARACTERES BOOLEANOS ENUMERADOSYSUBRANGOS#ABESE×ALARQUELOSDOSÞLTIMOSNO EXISTENENALGUNOSLENGUAJESDEPROGRAMACIØN 0OROTRAPARTE LOSTIPOSDEDATOSESTRUCTURADOSSECARACTERIZANPORELHECHODEQUE CONUNNOMBREIDENTIlCADORDEVARIABLEESTRUCTURADASEHACEREFERENCIAAUNGRUPO DECASILLASDEMEMORIAlGB %SDECIR UNTIPODEDATOESTRUCTURADOTIENEVARIOS COMPONENTES#ADAUNODEÏSTOSPUEDESERUNTIPODEDATOSIMPLEOESTRUCTURADO3IN EMBARGO LOSCOMPONENTESBÈSICOS LOSDELNIVELMÈSBAJO DECUALQUIERTIPODEDATOS ESTRUCTURADOSONSIEMPRETIPOSDEDATOSSIMPLES %LESTUDIODELASESTRUCTURASDEDATOSCONSTITUYEUNADELASPRINCIPALESACTIVIDADES PARALLEGARALDESARROLLODEGRANDESSISTEMASDESOFTWARE%NESTECAPÓTULOSETRATARÈNLAS ESTRUCTURASDEDATOSBÈSICOSQUESONÞTILESPARALAMAYORÓADELOSLENGUAJESDEPROGRA MACIØN²STASSONARREGLOSYREGISTROS
2
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52!Ê 4IPOSDEDATOSSIMPLES YESTRUCTURADOS B $ATOSIMPLE C $ATOESTRUCTURADO
!22%',/3 #ONFRECUENCIASEPRESENTANENLAPRÈCTICAPROBLEMASCUYASOLUCIØNNORESULTAFÈCILA VECESESIMPOSIBLESISEUTILIZANTIPOSDEDATOSSIMPLES #ONELPROPØSITODEILUSTRARESTADIlCULTAD ACONTINUACIØNSEPRESENTARÈNUNPRO BLEMAYDOSDESUSPOSIBLESSOLUCIONESMEDIANTETIPOSSIMPLESDEDATOS%LOBJETIVODE ESTEEJEMPLOESDEMOSTRARLOCOMPLEJOQUERESULTAUNALGORITMODESOLUCIØNPARACIERTOS PROBLEMAS SINOSEUTILIZANTIPOSDEDATOSESTRUCTURADOS&INALMENTE YLUEGODEPRE SENTARLOSARREGLOS SEOFRECERÈUNASOLUCIØNALPROBLEMAMENCIONADOENPRIMERTÏRMINO USANDOARREGLOS
%JEMPLO
#ONSIDEREMOSQUEENUNAUNIVERSIDADSECONOCENLASCALIlCACIONESDEUNGRUPODE ALUMNOS3ENECESITASABERCUÈNTOSDEÏSTOSTIENENCALIlCACIØNSUPERIORALPROMEDIODEL GRUPO z#ØMORESOLVERESTEPROBLEMA 0RIMERASOLUCIØN !LGORITMO $OBLE?LECTURA $OBLE?LECTURA [%STE ALGORITMO RESUELVE EL PROBLEMA PLANTEADO EN EL EJEMPLO REALIZANDO DOS VECES LA LECTURADELOSDATOS] [)Y#/.4SONVARIABLESDETIPOENTERO!# 02/-Y#SONVARIABLESDETIPOREAL] (ACER!#←E)← -IENTRAS)≤ 2EPETIR %SCRIBIRh)NGRESELACALIlCACIØNv ) ,EER# (ACER!#←!# #E)←) [&INDELCICLODELPASO] (ACER02/-←!# [#OMOSENECESITAINDICARCUÈNTOSALUMNOSOBTUVIERONCALIlCACIØNSUPERIORALPROMEDIO SE RELEERÈNLASCALIlCACIONESPARACOMPARARCADAUNADEELLASCONELPROMEDIOCALCULADOEN ELPASO]
"33&(-04
3
(ACER#/.4←E)← -IENTRAS)≤ 2EPETIR %SCRIBIRh)NGRESELACALIlCACIØNv ) ,EER# 3I#>02/-ENTONCES (ACER#/.4←#/.4 [&INDELCONDICIONALDELPASO] (ACER)←) [&INDELCICLODELPASO] %SCRIBIR#/.4
3EGUNDASOLUCIØN !LGORITMO -UCHAS?VARIABLES -UCHAS?VARIABLES [%STE ALGORITMO RESUELVE EL PROBLEMA PLANTEADO EN EL EJEMPLO PERO AHORA MEDIANTE MUCHASVARIABLES] [#/.4ESUNAVARIABLEDETIPOENTERO02/- !#Y#ISONVARIABLESDETIPOREAL] ,EER# # # # [,ASCALIlCACIONESCORRESPONDENALOSALUMNOS] (ACER!#←#### 02/-←!#Y#/.4← 3I#02/-ENTONCES (ACER#/.4←#/.4 Ê [&INDELCONDICIONALDELPASO] 3I#02/-ENTONCES (ACER#/.4← #/.4 [&INDELCONDICIONALDELPASO] 3I#02/-ENTONCES (ACER#/.4←#/.4 [&INDELCONDICIONALDELPASO] %SCRIBIR#/.4
%STASDOSSOLUCIONESSONMUYREPRESENTATIVASDELOSINCONVENIENTESALOSQUEUNO SEPUEDEENFRENTAR ALPLANTEARUNASOLUCIØNALGORÓTMICAAUNPROBLEMAALUSARSØLOTIPOS DEDATOSSIMPLES
4
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 %NLASOLUCIØNPLANTEADAENELALGORITMOELUSUARIODEBEINGRESARDOSVECESEL CONJUNTODEDATOS%STOÞLTIMOTIENEVARIASDESVENTAJASESTOTALMENTEMOLESTOCON SIDEREQUEELNÞMERODEDATOSPUEDESERMAYORA INElCIENTELAOPERACIØNDE LECTURA YASEADEMANERAINTERACTIVACONELUSUARIOODESDEUNARCHIVO SEDEBEREPETIR LOQUEOCASIONAPÏRDIDADETIEMPOYCAUSADEERRORESENLOSCASOSDONDELAENTRADA DEDATOSSEHAGADEFORMAMANUAL 0OROTRAPARTE ENLASOLUCIØNPLANTEADAENELALGORITMOSEMANEJANVARIABLES ENMEMORIA%STASOLUCIØNPRESENTAELINCONVENIENTEDEQUEELMANEJODELASVARIABLESSE PUEDETORNARINCONTROLABLE SOBRETODOSISUNÞMEROCRECEENFORMACONSIDERABLE!DEMÈS ALGUNOSPASOSESPECIlCADOSENELALGORITMO QUEPOSTERIORMENTESERÈNINSTRUCCIONESDE ALGÞNLENGUAJEDEPROGRAMACIØN SEREPITEN YAQUENOSEPUEDENGENERALIZAR%STACARACTE RÓSTICANOSØLOPROVOCAMÈSTRABAJO SINOTAMBIÏNPOSIBLESERRORES%SSABIDOQUEEJECUTAR UNATAREAENFORMAREPETIDA ENESTECASOESCRIBIRUNMISMOPASOVARIASVECES RESTAINTERÏS ENLAACCIØNQUESEESTÈLLEVANDOACABO YPUEDEPROPICIARMÈSERRORES 3EOBSERVA ENTONCES QUENINGUNADELASDOSSOLUCIONESRESULTAPRÈCTICANIElCIEN TE%SNECESARIOUNTIPODEDATOQUEPERMITAMANEJARMUCHAINFORMACIØN GENERALIZAN DOSUSOPERACIONES,OSTIPOSDEDATOSESTRUCTURADOSQUEAYUDANARESOLVERPROBLEMAS COMOÏSTESONLOSARREGLOS 5N ARREGLO UNIDIMENSIONAL SE DElNE COMO UNA COLECCIØN lNITA HOMOGÏNEA Y ORDENADADEELEMENTOS ◗ ◗ ◗
&INITATODOARREGLOTIENEUNLÓMITEESDECIR SEDEBEDETERMINARCUÈLSERÈELNÞMERO MÈXIMODEELEMENTOSQUEFORMARÈNPARTEDELARREGLO (OMOGÏNEATODOSLOSELEMENTOSDEUNARREGLOSONDELMISMOTIPO%SDECIR TODOS ENTEROS TODOSBOOLEANOS ETCÏTERA PERONUNCAUNACOMBINACIØNDEDISTINTOSTIPOS /RDENADASEPUEDEDETERMINARCUÈLESSONELPRIMERO ELSEGUNDO ELTERCERO Y ELENÏSIMOELEMENTOS
5NARREGLOUNIDIMENSIONALSEPUEDEREPRESENTARGRÈlCAMENTECOMOSEMUESTRAEN LAlGURA 3I UN ARREGLO TIENE LA CARACTERÓSTICA DE QUE PUEDE ALMACENAR A . ELEMENTOS DEL MISMOTIPO ENTONCESDEBERÈPERMITIRLARECUPERACIØNDECADAUNODEELLOS#OMOCON SECUENCIA SEDISTINGUENDOSPARTESFUNDAMENTALESENLOSARREGLOS ◗ ◗
,OSCOMPONENTES ,OSÓNDICES
,OSPRIMEROSHACENREFERENCIAALOSELEMENTOSQUEFORMANELARREGLOESDECIR A LOS VALORES QUE SE ALMACENAN EN CADA UNA DE SUS CASILLAS lG #ONSIDERANDO EL &)'52! 2EPRESENTACIØN DEARREGLOS
"33&(-04
5
&)'52! ·NDICESYCOMPONENTES DEUNARREGLO
EJEMPLOANTERIOR CADAUNADELASCALIlCACIONESSERÈUNCOMPONENTEDEUNARREGLO hCALIlCACIONESv%NESTECONTEXTO LOSÓNDICESESPECIlCANCUÈNTOSELEMENTOSTENDRÈEL ARREGLOYADEMÈSDEQUÏMODOPODRÈNRECUPERARSEESOSCOMPONENTES,OSÓNDICESTAM BIÏNPERMITENHACERREFERENCIAALOSCOMPONENTESDELARREGLOENFORMAINDIVIDUALES DECIR DISTINGUIRÈNENTRESUSELEMENTOS0ORTANTO PARAHACERREFERENCIAAUNELEMENTO DEUNARREGLOSEDEBEUTILIZAR ◗ ◗
%LNOMBREDELARREGLO %LÓNDICEDELELEMENTO
%NLAlGURASEREPRESENTAUNARREGLOUNIDIMENSIONALYSEINDICANTANTOSUSCOM PONENTESCOMOSUSÓNDICES
$ECLARACIØNDEARREGLOSUNIDIMENSIONALES .OESELPROPØSITODEESTELIBROSEGUIRLASINTAXISDEALGÞNLENGUAJEDEPROGRAMACIØNEN PARTICULARUNARREGLOUNIDIMENSIONALSEDElNEDELASIGUIENTEMANERA IDENT?ARREGLO!22%',/;LÓMINFLÓMSUP=$%TIPO #ONLOSVALORESLÓMINFYLÓMSUPSEDECLARAELTIPODELOSÓNDICES ASÓCOMOELNÞ MERODEELEMENTOSQUETENDRÈELARREGLO%LNÞMEROTOTALDECOMPONENTES.4# QUE TENDRÈELARREGLOUNIDIMENSIONALSECALCULACON
.4#LÓMSUPLÓMINF
▼ &ØRMULA
#ONTIPOSEDECLARAELTIPODEDATOSPARATODOSLOSCOMPONENTESDELARREGLOUNIDI MENSIONAL%LTIPODELOSCOMPONENTESNOTIENEQUESERELMISMOQUEELDELOSÓNDICES %NGENERAL LOSLENGUAJESDEPROGRAMACIØNESTABLECENRESTRICCIONESALRESPECTO /BSERVACIONES A %LTIPODELÓNDICEPUEDESERCUALQUIERTIPOORDINALCARÈCTER ENTERO ENUMERADO%N LAMAYORÓADELOSLENGUAJESUSADOSACTUALMENTESEPERMITESØLONÞMEROSENTEROS
6
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 B %LTIPODELOSCOMPONENTESPUEDESERCUALQUIERTIPODEDATOSENTERO REAL CADENA DECARACTERES REGISTRO ARREGLO ETCÏTERA C 3EUTILIZANLOSCORCHETESh;=vPARAINDICARELÓNDICEDEUNARREGLO%NTRE;=SEDEBE ESCRIBIRUNVALORORDINALPUEDESERUNAVARIABLE UNACONSTANTEOUNAEXPRESIØNTAN COMPLEJACOMOSEQUIERA PEROQUEDÏCOMORESULTADOUNVALORORDINAL %NSEGUIDASEVERÈNALGUNOSEJEMPLOSDEARREGLOSUNIDIMENSIONALES
%JEMPLO
3EA6UNARREGLOUNIDIMENSIONALDEELEMENTOSENTEROSCONÓNDICESENTEROS3UREPRE SENTACIØNSEINDICAENLAlGURA 6!22%',/;=$%ENTEROS ◗ ◗
.4#n #ADACOMPONENTEDELARREGLOUNIDIMENSIONAL6SERÈUNNÞMEROENTERO ALCUALSE TENDRÈACCESOPORMEDIODEUNÓNDICEQUESERÈUNVALORCOMPRENDIDOENTREY 0OREJEMPLO 6;L=HACEREFERENCIAALELEMENTODELAPOSICIØN 6;=HACEREFERENCIAALELEMENTODELAPOSICIØN 6;=HACEREFERENCIAALELEMENTODELAPOSICIØN
,OSÓNDICESDETIPOENTERONONECESARIAMENTEDEBENTENERUNLÓMITEINFERIORIGUALACERO OAUNO0ODRÓANUSARSEVALORESNEGATIVOS;=OVALORESMAYORESAUNO;=
%JEMPLO
3EA!UNARREGLODEELEMENTOSBOOLEANOSCONÓNDICESDETIPOCARÈCTER3UREPRESENTA CIØNSEMUESTRAENLAlGURA !!22%',/;@A@Z=$%BOOLEANOS ◗ ◗
.4#ORD@Z ORD@A #ADACOMPONENTEDELARREGLOUNIDIMENSIONAL!SERÈUNODELOSDOSPOSIBLESVALORES LØGICOS6%2$!$%2/O&!,3/ ALCUALSETENDRÈACCESOPORMEDIODEUNÓNDICE QUESERÈUNVALORCOMPRENDIDOENTRELOSCARACTERES@AY@Z 0OREJEMPLO !;@A=HACEREFERENCIAALELEMENTODELAPOSICIØN@AERA !;@B=HACEREFERENCIAALELEMENTODELAPOSICIØN@BDA
&)'52!
"33&(-04
7
&)'52!
!;@Z=HACEREFERENCIAALELEMENTODELAPOSICIØN@Z
%JEMPLO
3EA#)#,/UNARREGLODEELEMENTOSREALESCONÓNDICESDETIPOESCALAROENUMERADOS 3UREPRESENTACIØNSEMUESTRAENLAlGURA MESESENE FEB MAR ABR MAY JUN JUL AGO SEPT OCT NOV DIC #)#,/!22%',/;MESES=$%REALES ◗ ◗
.4#ORDDIC ORDENE L n #ADACOMPONENTEDELARREGLOUNIDIMENSIONAL#)#,/SERÈUNNÞMEROREAL ALCUAL SETENDRÈACCESOPORMEDIODEUNÓNDICE QUESERÈUNVALORCOMPRENDIDOENTREENE YDIC 0OREJEMPLO #)#,/;ENE=HACEREFERENCIAALELEMENTODELAPOSICIØNENEERA #)#,/;FEB=HACEREFERENCIAALELEMENTODELAPOSICIØNFEBDA #)#,/;DIC=HACEREFERENCIAALELEMENTODELAPOSICIØNDICAVA
/PERACIONESCONARREGLOSUNIDIMENSIONALES #OMOYASEMENCIONØ LOSARREGLOSSEUTILIZANPARAALMACENARDATOS0ORTANTO RESULTA NECESARIOLEER ESCRIBIR ASIGNAROSIMPLEMENTEMODIlCARDATOSENUNARREGLO!SIMISMO ALCONSIDERARQUEESUNAESTRUCTURA AUNACOLECCIØNDEELEMENTOSSEDEBENINCORPORAR NUEVOSELEMENTOS ASÓCOMOELIMINARALGUNOSDELOSYAALMACENADOS,ASOPERACIONES VÈLIDASENARREGLOSSONLASSIGUIENTES ◗ ◗ &)'52!
,ECTURA%SCRITURA !SIGNACIØN
8
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 ◗ ◗ ◗
!CTUALIZACIØN)NSERCIØN %LIMINACIØN -ODIlCACIØN /RDENACIØN "ÞSQUEDA
#OMOLOSARREGLOSSONTIPOSDEDATOSESTRUCTURADOS MUCHASDEESTASOPERACIONES NOSEPUEDENLLEVARACABODEMANERAGLOBALESDECIR TRATANDOALARREGLOCOMOUNTODO SINOQUESEDEBETRABAJARSOBRECADACOMPONENTE !CONTINUACIØNSEANALIZARÈCADAUNADEESTASOPERACIONES#ABEDESTACARQUELAS DOSÞLTIMAS ORDENACIØNYBÞSQUEDA SERÈNTEMADEESTUDIOENPRØXIMOSCAPÓTULOS0ARA ILUSTRARLASSEUTILIZARÈNLOSEJEMPLOSPRESENTADOSANTERIORMENTE
,ECTURA %LPROCESODELECTURADEUNARREGLOCONSISTEENLEERYASIGNARUNVALORACADAUNODESUS COMPONENTES3UPONGAQUESEDESEALEERTODOSLOSELEMENTOSDELARREGLOUNIDIMENSIO NAL6ENFORMACONSECUTIVA3EPODRÓAHACERDELASIGUIENTEMANERA ,EER6;= ,EER6;= ,EER6;= 0EROESIMPORTANTEQUEELLECTOROBSERVEQUEDEESTAFORMANORESULTAPRÈCTICO0OR TANTO SEUSARÈUNCICLOPARALEERTODOSLOSELEMENTOSDELARREGLOUNIDIMENSIONAL 2EPETIRCON)DESDEHASTA ,EER6;)= !LVARIARELVALORDE) CADAELEMENTOLEÓDOSEASIGNAALCORRESPONDIENTECOMPONEN TEDELARREGLOSEGÞNLAPOSICIØNINDICADAPOR) 0ARA) SELEE6;= ) SELEE6;= ). SELEE6;.= !LlNALIZARELCICLODELECTURASETENDRÈASIGNADOUNVALORACADAUNODELOSCOMPO NENTESDELARREGLOUNIDIMENSIONAL6%LARREGLOSEMUESTRAENLAlGURA
&)'52! ,ECTURADEARREGLOS
"33&(-04
9
&)'52! ,ECTURADEARREGLOS
0UEDE SUCEDER QUE NO SE NECESITEN LEER TODOS LOS COMPONENTES DEL ARREGLO SINO SOLAMENTEALGUNODEELLOS3UPONGAMOSQUESEDEBENLEERLOSELEMENTOSCONÓNDICES COMPRENDIDOSENTREELYEL!CONTINUACIØNSEMUESTRAELCICLOQUESENECESITAPARA REALIZARESTAOPERACIØN 2EPETIRCON)DESDEHASTA ,EER6;)= %LARREGLOSEMUESTRAENLAlGURA
%SCRITURA %LCASODELAOPERACIØNDEESCRITURAESSIMILARALDELECTURA3EDEBEESCRIBIRELVALORDE CADAUNODELOSCOMPONENTES3UPONGAMOSQUESEDESEAESCRIBIRLOSPRIMEROS.COMPO NENTESDELARREGLOUNIDIMENSIONAL6ENFORMACONSECUTIVA,OSPASOSASEGUIRSON 2EPETIRCON)DESDEHASTA. %SCRIBIR6;)= !LVARIARELVALORDE)SEESCRIBEELELEMENTODELARREGLOUNIDIMENSIONAL6 CORRES PONDIENTEALAPOSICIØNINDICADAPOR) 0ARA) SEESCRIBEELVALORDE6;= ) SEESCRIBEELVALORDE6;= ). SEESCRIBEELVALORDE6;.=
!SIGNACIØN %NGENERAL NOESPOSIBLEASIGNARDIRECTAMENTEUNVALORATODOELARREGLO SINOQUESE DEBEASIGNARELVALORDESEADOACADACOMPONENTE%NSEGUIDASEANALIZANALGUNOSEJEM PLOSDEASIGNACIØN /BSERVEQUEENLOSDOSPRIMEROSCASOSSEASIGNAUNVALORAUNADETERMINADACASILLA DELARREGLO ENELPRIMEROALASE×ALADAPORELÓNDICEENE YENELSEGUNDOALAINDICADA PORELÓNDICEMAR #)#,/;ENE=← #)#,/;MAR=←#)#,/;ENE= %NELTERCERCASOSEASIGNAELATODASLASCASILLASDELARREGLO CONLOQUEÏSTEQUEDA COMOSEMUESTRAENLAlGURA
10
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52! !SIGNACIØNDEARREGLOS
2EPETIRCON-%3DESDEENEHASTADIC (ACER#)#,/;-%3=← #ABEDESTACARQUEENALGUNOSLENGUAJESDEPROGRAMACIØNESPOSIBLEASIGNARUNA VARIABLETIPOARREGLOAOTRADELMISMOTIPO 6←6 ,AEXPRESIØNANTERIORESEQUIVALENTEAREALIZARLOSIGUIENTE 2EPETIRCON)DESDEHASTA (ACER6;)=←6;)=
!CTUALIZACIØN ,AACTUALIZACIØNESUNAOPERACIØNQUESEREALIZAENFORMAFRECUENTEENLOSARREGLOS,A CANTIDADDEACTUALIZACIONESESTÈRELACIONADACONELTIPODEPROBLEMAQUESEINTENTERE SOLVER!DIFERENCIADELASOTRASOPERACIONESESTUDIADAS LAACTUALIZACIØNLLEVAIMPLÓCITA OTROSTIPOSDEOPERACIONES COMOINSERCIØNYELIMINACIØNDEELEMENTOS #ONELPROPØSITODEREALIZARUNAACTUALIZACIØNDEMANERAElCIENTE ESIMPORTANTE CONOCERSIELARREGLOESTÈONOORDENADOESDECIR SISUSCOMPONENTESRESPETANALGÞN ORDEN YASEACRECIENTEODECRECIENTE#ABEDESTACARQUELASOPERACIONESDEINSERCIØN ELIMINACIØNYMODIlCACIØNSERÈNTRATADASENFORMASEPARADAPARAARREGLOSORDENADOSY DESORDENADOS &INALMENTE ES IMPORTANTE SE×ALAR QUE LA OPERACIØN DE BÞSQUEDA SE UTILIZA COMO AUXILIARENLASOPERACIONESDEINSERCIØN ELIMINACIØNYMODIlCACIØN%STAESLAPRINCI PALRAZØNPORLACUALACONTINUACIØNSEPRESENTAELALGORITMODEBÞSQUEDASECUENCIALEN ARREGLOSDESORDENADOS%NELCAPÓTULOCORRESPONDIENTEAMÏTODOSDEBÞSQUEDASETRATARÈ CONMAYORDETALLEESTETEMA !LGORITMO "USCA?SECUENCIAL?DESORDENADO "USCA?SECUENCIAL?DESORDENADO [%LALGORITMOBUSCAENFORMASECUENCIALUNELEMENTOENUNARREGLOUNIDIMENSIONALQUESE ENCUENTRADESORDENADO6ESUNARREGLODEELEMENTOS .ELNÞMEROACTUALDEELEMENTOSY 8ELVALORABUSCAR] [)ESUNAVARIABLEAUXILIARDETIPOENTERO] (ACER)←
"33&(-04
11
-IENTRAS)≤. Y8≠6;)= 2EPETIR
(ACER)←)
[&INDELCICLODELPASO] 3I).[.OSEENCONTRØELVALORBUSCADO]
ENTONCES %SCRIBIRh%LVALOR8NOESTÈENELARREGLOv SINO%SCRIBIRh%LVALOR8ESTÈENLAPOSICIØN)v
[&INDELCONDICIONALDELPASO]
%STEMÏTODODEBÞSQUEDAESSENCILLO AUNQUENOMUYElCIENTE#ONSISTEENRECORRER ELARREGLO COMPARANDOCADAELEMENTODELMISMOCONELVALORABUSCAR%LPROCESOSE REPITEHASTAQUEELVALORSEENCUENTREÏXITOOHASTAQUESEHAYASUPERADOELTAMA×O DELARREGLOFRACASO
>®Ê ÀÀi}ÃÊ`iÃÀ`i>`ÃÊ #ONSIDEREUNARREGLOUNIDIMENSIONAL6DEELE MENTOS COMOELQUESEPRESENTAENLAlGURA/BSERVEQUELOSPRIMEROS.COMPO NENTESTIENENASIGNADOUNVALOR A
)NSERCIØN0ARAINSERTARUNELEMENTO9ENUNARREGLOUNIDIMENSIONAL6DESORDE NADO SEDEBEVERIlCARQUEEXISTAESPACIO3ISECUMPLEESTACONDICIØN ENTONCES SEASIGNARÈENLAPOSICIØN.ELNUEVOELEMENTOYSEINCREMENTARÈEN.EL TOTALDEELEMENTOSDELARREGLO !CONTINUACIØNSEPRESENTAELALGORITMODEINSERCIØNENARREGLOSUNIDIMEN SIONALESDESORDENADOS
!LGORITMO )NSERTA?DESORDENADO )NSERTA?DESORDENADO6 . 9 [%LALGORITMOINSERTAUNELEMENTOENUNARREGLOUNIDIMENSIONALDESORDENADO6ESUNARREGLO DE MÈXIMO ELEMENTOS . ES EL NÞMERO ACTUAL DE ELEMENTOS 9 REPRESENTA EL VALOR A INSERTAR] 3I. ENTONCES (ACER.←.Y6;.=←9 SINO[.OHAYESPACIOENELARREGLO] %SCRIBIRh%LVALOR9NOSEPUEDEINSERTAR.OHAYESPACIOv [&INDELCONDICIONALDELPASO]
,UEGODELAINSERCIØNELARREGLOUNIDIMENSIONAL6QUEDACOMOSEMUESTRAENLA lGURAA
12
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52! !CTUALIZACIØNDEARREGLOS DESORDENADOS
A
%LIMINACIØN0ARAELIMINARUNELEMENTO8DEUNARREGLOUNIDIMENSIONAL6DES ORDENADO SEDEBEVERIlCARQUE8SEENCUENTREENELARREGLO3ISECUMPLEESTA CONDICIØN ENTONCESSEPROCEDERÈARECORRERTODOSLOSELEMENTOSQUEESTÈNASU DERECHAUNAPOSICIØNALAIZQUIERDA DISMINUYENDOENUNOELNÞMERODECOMPO NENTESDELARREGLO !CONTINUACIØNSEPRESENTAELALGORITMODEELIMINACIØNENARREGLOSDESORDE NADOS#ABEDESTACARQUELAOPERACIØNDEBÞSQUEDAPRESENTADAENELALGORITMO SEUSAPARADETERMINARSIELELEMENTO8SEENCUENTRAENELARREGLO0ARAEL CASODEQUELARESPUESTASEAPOSITIVA SEOBTIENETAMBIÏNLAPOSICIØNENQUESE ENCUENTRA#ONELPROPØSITODEOFRECERMAYORCLARIDADENLASOLUCIØNDEESTEPRO BLEMA SEINCLUYEDENTRODELALGORITMODEELIMINACIØNELALGORITMODEBÞSQUEDA SECUENCIALENARREGLOSDESORDENADOS
!LGORITMO %LIMINA?DESORDENADO %LIMINA?DESORDENADO6 . 8 [%L ALGORITMO ELIMINA UN ELEMENTO EN UN ARREGLO UNIDIMENSIONAL DESORDENADO 6 ES UN ARREGLODEELEMENTOS.ESELNÞMEROACTUALDEELEMENTOS8ESELVALORAELIMINAR] [)Y+SONVARIABLESDETIPOENTERO] (ACER)← -IENTRAS)≤. Y8≠6;)= 2EPETIR (ACER)←) [&INDELCICLODELPASO] 3I). [.OSEENCONTRØELVALORBUSCADO] ENTONCES %SCRIBIRh%LVALOR8NOSEENCUENTRAENELARREGLOv SINO 2EPETIRCON+DESDE)HASTA. (ACER6;+=←6;+= [&INDELCICLODELPASO] (ACER.←. [&INDELCONDICIONALDELPASO]
,UEGODELAELIMINACIØN ELARREGLOUNIDIMENSIONAL6QUEDACOMOSEMUESTRAEN LAlGURAB
"33&(-04
13
&)'52!A )NSERCIØNENARREGLOS DESORDENADOS
A
-ODIlCACIØN 0ARA MODIlCAR UN ELEMENTO 8 DE UN ARREGLO UNIDIMENSIONAL 6 DESORDENADOSEDEBEVERIlCARQUE8SEENCUENTREENELARREGLO3ISECUMPLEESTA CONDICIØN ENTONCESSEPROCEDERÈASUACTUALIZACIØN !CONTINUACIØNSEPRESENTAELALGORITMODEMODIlCACIØNENARREGLOSDESOR DENADOS ENELCUALSEINCLUYELABÞSQUEDASECUENCIAL
!LGORITMO -ODIlCA?DESORDENADO -ODIlCA?DESORDENADO6 . 8 9 [%L ALGORITMO MODIlCA UN ELEMENTO DE UN ARREGLO UNIDIMENSIONAL DESORDENADO 6 ES UN ARREGLODEMÈXIMOELEMENTOS.ESELNÞMEROACTUALDEELEMENTOS8ESELELEMENTOA MODIlCARPORELELEMENTO9] [)ESUNAVARIABLEDETIPOENTERO] (ACER)← -IENTRAS)≤. Y8≠6;)= 2EPETIR (ACER)←) [&INDELCICLODELPASO] 3I). [.OSEENCONTRØELVALORBUSCADO] ENTONCES %SCRIBIRh%LVALOR8NOSEENCUENTRAENELARREGLOv SINO (ACER6;)=←9 [&INDELCONDICIONALDELPASO]
,UEGO DE LA MODIlCACIØN EL ARREGLO UNIDIMENSIONAL 6 QUEDA COMO SE MUESTRAENLAlGURAC &)'52!B %LIMINACIØNENARREGLOS DESORDENADOS
14
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52!C -ODIlCACIØNENARREGLOS DESORDENADOS
L®Ê ÀÀi}ÃÊÀ`i>`à #ONSIDEREELARREGLOUNIDIMENSIONALORDENADO6DE ELEMENTOSDELAlGURA,OSPRIMEROS.COMPONENTESDELMISMOTIENENASIGNADOUN VALOR%NESTECASOSETRABAJARÈCONUNARREGLOORDENADODEMANERACRECIENTE ESDECIR 6;=≤6;=≤6;=≤≤6;.= #UANDOSETRABAJACONARREGLOSORDENADOSSEDEBEEVITARALTERARELORDENALINSERTAR NUEVOSELEMENTOSOALMODIlCARLOSEXISTENTES B
)NSERCIØN0ARAINSERTARUNELEMENTO8ENUNARREGLOUNIDIMENSIONAL6ORDENADO PRIMEROSEDEBEVERIlCARQUEEXISTAESPACIO,UEGOSEENCONTRARÈLAPOSICIØNEN LAQUEDEBERÓAESTARELNUEVOVALORPARANOALTERARELORDENDELARREGLO#UANDOSE DETECTELAPOSICIØN SEPROCEDERÈARECORRERTODOSLOSELEMENTOSDESDEAHÓHASTA LA. ÏSIMAPOSICIØN UNLUGARALADERECHA&INALMENTESEASIGNARÈELVALORDE 8ENLAPOSICIØNENCONTRADA#ABEDESTACARQUEELDESPLAZAMIENTONOSELLEVAA CABOCUANDOELVALORAINSERTARESMAYORQUEELÞLTIMOELEMENTODELARREGLO 'ENERALMENTE CUANDOSEQUIEREHACERUNAINSERCIØNSEDEBEVERIlCARQUEEL ELEMENTONOSEENCUENTREENELARREGLO%NLAMAYORÓADELOSCASOSPRÈCTICOSNO INTERESATENERINFORMACIØNDUPLICADAPORTANTO SIELVALORQUESEDESEAINSERTAR YAESTUVIERAENELARREGLO LAOPERACIØNNOSELLEVARÈACABO
!NTESDEPRESENTARELALGORITMODEINSERCIØN SEDElNIRÈUNAFUNCIØNDEBÞSQUEDA AUXILIAR PARAARREGLOSORDENADOS QUESEUTILIZARÈTANTOENELPROCESODEINSERCIØNCOMO ENELDEELIMINACIØN%STAFUNCIØNESUNAVARIANTEDELAPRESENTADAENELALGORITMO YDACOMORESULTADOLAPOSICIØNENLAQUEENCONTRØALELEMENTO8OELNEGATIVODELA POSICIØNENLAQUEDEBERÓAESTAR0ARAMAYORINFORMACIØNSOBREALGORITMOSDEBÞSQUEDA CONSULTEELCAPÓTULO !LGORITMO "USCA?SECUENCIAL?ORDENADO "USCA?SECUENCIAL?ORDENADO6 . 8 0/3 [%LALGORITMOBUSCAUNELEMENTO8ENUNARREGLOUNIDIMENSIONAL6DE.ELEMENTOSQUESE ENCUENTRAORDENADOCRECIENTEMENTE0/3INDICALAPOSICIØNDE8EN6OLAPOSICIØNENLAQUE ESTARÓA8] [)ESUNAVARIABLEDETIPOENTERO] (ACER)← -IENTRAS)≤. Y6;)=8 2EPETIR (ACER)←)
"33&(-04
15
&)'52! !CTUALIZACIØNDEARREGLOS ORDENADOS
[&INDELCICLODELPASO] 3I). O6;)=8 ENTONCES (ACER0/3←) SINO (ACER0/3←) [&INDELCONDICIONALDELPASO]
!CONTINUACIØNSEPRESENTAELALGORITMODEINSERCIØNENUNARREGLOUNIDIMENSIONAL QUESEENCUENTRAORDENADOENFORMACRECIENTE !LGORITMO )NSERTA?ORDENADO )NSERTA?ORDENADO6 . 9 [%STEALGORITMOINSERTAUNELEMENTO9ENUNARREGLOUNIDIMENSIONALQUESEENCUENTRAORDENADO DEFORMACRECIENTE,ACAPACIDADMÈXIMADELARREGLOESDEELEMENTOS.INDICAELNÞMERO ACTUALDEELEMENTOSDE6] [0/3E)SONVARIABLESDETIPOENTERO] 3I. ENTONCES ,LAMARALALGORITMO"USCA?SECUENCIAL?ORDENADOCON6 . 9Y0/3 3I0/3[%LELEMENTOFUEENCONTRADOENELARREGLO] ENTONCES %SCRIBIRh%LELEMENTOYAEXISTEv SINO (ACER.←.Y0/3←0/3 2EPETIRCON)DESDE.HASTA0/3 (ACER6;)=←6;)= [&INDELCICLODELPASO] (ACER6;0/3=←9 [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh.OHAYESPACIOENELARREGLOv [&INDELCONDICIONALDELPASO]
16
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52!A )NSERCIØNENARREGLOS ORDENADOS
,UEGODELAINSERCIØN ELARREGLOQUEDACOMOSEMUESTRAENLAlGURAA B
%LIMINACIØN0ARAELIMINARUNELEMENTO8DEUNARREGLOUNIDIMENSIONALORDE NADO6SEDEBEBUSCARLAPOSICIØNDELELEMENTOAELIMINAR3IELRESULTADODELA FUNCIØNESUNVALORPOSITIVO SIGNIlCAQUEELELEMENTOSEENCUENTRAENELARREGLO Y PORTANTO SEPUEDEELIMINARENCASOCONTRARIO NOSEPUEDEREALIZARLAOPERA CIØNDEELIMINACIØN !CONTINUACIØNSEPRESENTAELALGORITMODEELIMINACIØNENARREGLOSORDE NADOS
!LGORITMO %LIMINA?ORDENADO %LIMINA?ORDENADO6 . 8 [%LALGORITMOELIMINAUNELEMENTO8DEUNARREGLOUNIDIMENSIONAL6DE.ELEMENTOSQUESE ENCUENTRAORDENADOENFORMACRECIENTE] [0/3E)SONVARIABLESDETIPOENTERO] 3I. ENTONCES ,LAMARALALGORITMO"USCA?SECUENCIAL?ORDENADOCON6 . 8Y0/3 3I0/3 [.OSEPUEDEELIMINARPORQUE8NOEXISTE] ENTONCES %SCRIBIRh%LELEMENTONOEXISTEv SINO (ACER.←.n 2EPETIRCON)DESDE0/3HASTA. (ACER6;)=←6;)= [&INDELCICLODELPASO] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LARREGLOESTÈVACÓOv [&INDELCONDICIONALDELPASO]
,UEGODELAELIMINACIØN ELARREGLOQUEDACOMOSEMUESTRAENLAlGURAB B
-ODIlCACIØN%STAOPERACIØNCONSISTEENREEMPLAZARUNCOMPONENTEDELARREGLO CON OTRO VALOR 0ARA ELLO PRIMERO SE BUSCARÈ EL ELEMENTO EN EL ARREGLO 3I SE ENCUENTRA ANTESDEREALIZARELCAMBIOSEDEBEVERIlCARQUEELORDENDELARREGLO NOSEALTERE3IESTOLLEGARAASUCEDER ENTONCESESNECESARIOREALIZARDOSOPERA
"33&(-04
17
&)'52!B %LIMINACIØNENARREGLOS ORDENADOS
CIONESPRIMEROSEDEBEELIMINARELELEMENTOQUESEQUIEREMODIlCARYLUEGO INSERTARENLAPOSICIØNCORRESPONDIENTEELNUEVOVALOR#OMOCONSECUENCIADE QUELASOPERACIONESQUESENECESITANPARAREALIZARUNAMODIlCACIØNYAHANSIDO PRESENTADAS SEDEJACOMOTAREALACONSTRUCCIØNDELALGORITMODEMODIlCACIØN ENARREGLOSORDENADOS (ASTAELMOMENTOSEHAANALIZADOCØMODECLARARARREGLOSYCØMOUSARLOS!HORASE PUEDEDARSOLUCIØNALPROBLEMADELEJEMPLOMEDIANTEESTETIPODEESTRUCTURADEDATOS !LGORITMO #ON?ARREGLOS
#ON?ARREGLOS#!, [%STEALGORITMORESUELVEELPROBLEMADELEJEMPLOALAPLICARARREGLOSUNIDIMENSIONALES #!,ESUNARREGLODEELEMENTOSDENÞMEROSREALES] [!# )Y#/.4SONVARIABLESDETIPOENTERO02/-ESUNAVARIABLEDETIPOREAL] (ACER!#← 2EPETIRCON)DESDEHASTA ,EER#!,;)= (ACER!#←!##!,;)=E)←) [&INDELCICLODELPASO] (ACER02/-←!#Y#/.4← 2EPETIRCON)DESDEHASTA 3I#!,;)=02/- ENTONCES (ACER#/.4←#/.4 [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] %SCRIBIR#/.4
²STAESUNASOLUCIØNMÈSElCIENTEQUELASQUESEPRESENTARONENLOSALGORITMOS Y3EREALIZAUNALECTURADELOSDATOSYADEMÈSSEDElNEUNAVARIABLEPARAALMACENAR LASCALIlCACIONES !LUTILIZARUNARREGLOPUEDEDISPONERSEDELOSDATOSTANTASVECESCOMOSEANECESARIO SINQUESEDEBAVOLVERALEERLOS YAQUEÏSTOSPERMANECENENMEMORIA!DEMÈSSEFACI LITAELPROCESAMIENTODELOSDATOS ALGENERALIZARCIERTASOPERACIONES ,OSARREGLOSPRESENTADOSHASTAELMOMENTOSEDENOMINANARREGLOSUNIDIMENSIO NALESOLINEALES DEBIDOAQUECUALQUIERELEMENTOSEREFERENCIASOLAMENTECONUNÓNDICE
18
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 3INEMBARGO ESIMPORTANTEDESTACARQUEPARALAMAYORÓADELOSLENGUAJESDEPROGRAMA CIØNSEPUEDENDElNIRARREGLOSMULTIDIMENSIONALESESDECIR ARREGLOSCONMÞLTIPLESÓN DICES%LNÞMERODEDIMENSIONESÓNDICESDEPENDETANTODELPROBLEMAQUESEQUIERA RESOLVERCOMODELLENGUAJEUTILIZADO 3EANALIZARÈNPRIMEROLOSARREGLOSBIDIMENSIONALES QUEREPRESENTANUNCASOESPE CIALDELOSMULTIDIMENSIONALES PORSERLOSMÈSAMPLIAMENTEUTILIZADOS
!22%',/3")$)-%.3)/.!,%3 0ARAQUEELLECTORENTIENDAMEJORLAESTRUCTURADELOSARREGLOSBIDIMENSIONALES SEPRE SENTAELSIGUIENTEEJEMPLO
%JEMPLO
,ATABLACONTIENELOSCOSTOSDEPRODUCCIØNDECADADEPARTAMENTODEUNAFÈBRICA CORRESPONDIENTESALOSMESESDELA×OANTERIOR ,ATABLASEINTERPRETADELASIGUIENTEMANERADADOUNMES SECONOCENLOSCOSTOSDE PRODUCCIØNDECADAUNODELOSDEPARTAMENTOSDELAFÈBRICAYDADOUNDEPARTAMENTO SE CONOCENLOSCOSTOSDEPRODUCCIØNMENSUALES3ISEQUISIERAALMACENARESTAINFORMACIØN UTILIZANDOLOSARREGLOSUNIDIMENSIONALES SETENDRÓANDOSALTERNATIVAS $ElNIRARREGLOSDETRESELEMENTOSCADAUNO%NESTECASO CADAARREGLOALMACE NARÈLAINFORMACIØNRELATIVAAUNMES
4!",!
-ESES$EPTOS
#OSTOSMENSUALESPOR DEPARTAMENTOS
&)'52! !LMACENAMIENTODELA INFORMACIØNPORMES
$ULCES
#ONSERVAS
"EBIDAS
%NERO
&EBRERO
-ARZO
!BRIL
-AYO
*UNIO
*ULIO
!GOSTO
3EPTIEMBRE
/CTUBRE
.OVIEMBRE
$ICIEMBRE
"33&(-04#*%*.&/4*0/"-&4
19
&)'52! !LMACENAMIENTO DELAINFORMACIØN PORDEPARTAMENTO
$ElNIRTRESARREGLOSDEELEMENTOSCADAUNO$EESTAFORMA CADAARREGLOALMA CENARÈLAINFORMACIØNRELATIVAAUNDEPARTAMENTOALOLARGODELA×O 3INEMBARGO NORESULTAMUYPRÈCTICOADOPTARALGUNADELASDOSALTERNATIVAS3ENE CESITAUNAESTRUCTURAQUEPERMITAMANEJARLOSDATOSCONSIDERANDOLOSMESESRENGLONES DELATABLA YLOSDEPARTAMENTOSCOLUMNASDELATABLAESDECIR UNAESTRUCTURA QUETRATEALAINFORMACIØNCOMOUNTODO,AESTRUCTURAQUETIENEESTACARACTERÓSTICASE DENOMINAARREGLOBIDIMENSIONAL 5NARREGLOBIDIMENSIONALESUNACOLECCIØNHOMOGÏNEA lNITAYORDENADADEDA TOS ENLAQUESEHACEREFERENCIAACADACOMPONENTEDELARREGLOPORMEDIODEDOSÓNDI CES%LPRIMEROSEUTILIZAPARAINDICARELRENGLØN YELSEGUNDOPARASE×ALARLACOLUMNA 5NARREGLOBIDIMENSIONALTAMBIÏNSEPUEDEDElNIRCOMOUNARREGLODEARREGLOS%NLA lGURASEPRESENTAUNARREGLODETIPOBIDIMENSIONAL %LARREGLO!-. TIENE-RENGLONESY.COLUMNAS5NELEMENTO!;) *=SELO CALIZAENELRENGLØN) YENLACOLUMNA*)NTERNAMENTEENMEMORIASERESERVAN-. POSICIONESCONSECUTIVASPARAALMACENARTODOSLOSELEMENTOSDELARREGLO
$ECLARACIØNDEARREGLOSBIDIMENSIONALES ,OSARREGLOSBIDIMENSIONALESSEDECLARANCUANDOSEESPECIlCANELNÞMERODERENGLONES YELNÞMERODECOLUMNAS JUNTOCONELTIPODEDATODELOSCOMPONENTES ID?ARREGLO!22%',/;LÓMINFRLÓMSUPR LÓMINFCLÓMSUPC=$%TIPO #ON LÓMINFR Y LÓMSUPR SE DECLARA EL TIPO DE DATO DEL ÓNDICE DE LOS RENGLONES Y CUÈNTOSRENGLONESTENDRÈELARREGLO!SIMISMO CONLÓMINFCYLÓMSUPCSEDECLARAELTIPO
20
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52! 2EPRESENTACIØNDEUN ARREGLOBIDIMENSIONAL
DEDATODELÓNDICEDELASCOLUMNASYCUÈNTASCOLUMNASTENDRÈELARREGLO#ONTIPOSE DECLARAELTIPODEDATOSDETODOSLOSCOMPONENTESDELARREGLO %LNÞMEROTOTALDECOMPONENTES.4# DEUNARREGLOBIDIMENSIONALESTÈDETERMI NADOPORLAEXPRESIØN
.4#LÓMSUPRLÓMINFR LÓMSUPCLÓMINFC
▼ &ØRMULA
!LIGUALQUEENELCASODELOSARREGLOSUNIDIMENSIONALES LOSÓNDICESPUEDENSER CUALQUIERTIPODEDATOORDINALESCALAR ENTERO CARÈCTER MIENTRASQUELOSCOMPONENTES PUEDENSERDECUALQUIERTIPOREALES ENTEROS CADENASDECARACTERES ETC !CONTINUA CIØNSEANALIZANALGUNOSEJEMPLOSDEARREGLOSBIDIMENSIONALES
%JEMPLO
&)'52!
3EA-!42):UNARREGLOBIDIMENSIONALDENÞMEROSREALESCONÓNDICESENTEROS3UREPRE SENTACIØNSEMUESTRAENLAlGURA
"33&(-04#*%*.&/4*0/"-&4
21
-!42):!22%',/; =$%REALES ◗ ◗
.4# #ADACOMPONENTEDE-!42):SERÈUNNÞMEROREAL0ARAHACERREFERENCIAACADAUNO DEELLOSSEUSARÈNDOSÓNDICESYELNOMBREDELAVARIABLETIPOARREGLO-!42):;I J= $ONDE≤I≤ ≤J≤
%JEMPLO
3EA#/34/3UNARREGLOBIDIMENSIONALDENÞMEROSREALESCONÓNDICESDETIPOESCALAR 3UREPRESENTACIØNSEMUESTRAENLAlGURA MESESENE FEB MAR ABR MAY JUN JUL AGO SET OCT NOV DIC DEPARTAMENTOSDULCES CONSERVAS BEBIDAS #/34/3!22%',/;MESES DEPARTAMENTOS=$%REALES ◗
.4#ORDDIC ORDENE ORDBEBIDAS ORDDULCES
◗
#ADACOMPONENTEDE#/34/3SERÈUNREAL0ARAHACERREFERENCIAACADAUNODE ELLOSUSAREMOSDOSÓNDICESYELNOMBREDELAVARIABLETIPOARREGLO#/34/3;I J= $ONDEENE≤I≤DIC DULCES≤J≤BEBIDAS
%JEMPLO
3EA-!4UNARREGLOBIDIMENSIONALDECADENASDECARACTERESCONÓNDICESPARALOSREN GLONESDETIPOCARÈCTERYPARALASCOLUMNASDETIPOENTERO3UREPRESENTACIØNSEMUESTRA ENLAlGURA -!4!22%',/;@A@Z =$%CADENA DE CARACTERES
&)'52!
22
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52!
◗
.4#ORD@Z ORD@A
◗
#ADACOMPONENTEDE-!4SERÈUNVALORDETIPOCADENADECARACTERES0ARAHACER REFERENCIAACADAUNODEELLOS SEUSARÈNDOSÓNDICESYELNOMBREDELAVARIABLETIPO ARREGLO-!4;I J= $ONDE@A≤I≤@Z ≤J≤
%JEMPLO
3EA,%42!3UNARREGLOBIDIMENSIONALDECARACTERESCONÓNDICESENTEROS3UREPRESEN TACIØNSEMUESTRAENLAlGURA ,%42!3!22%',/; =$%CARACTERES ◗ ◗
.4#n n #ADACOMPONENTEDE ,%42!3SERÈUN VALOR TIPOCARÈCTER 0ARAHACERREFERENCIA ACADAUNODEELLOS SEUSARÈNDOSÓNDICESYELNOMBREDELAVARIABLETIPOARREGLO ,%42!3;I J= $ONDE≤I≤ ≤J≤
&)'52!
"33&(-04#*%*.&/4*0/"-&4
23
/PERACIONESCONARREGLOSBIDIMENSIONALES ,ASOPERACIONESQUESEPUEDENREALIZARCONARREGLOSBIDIMENSIONALESSON ◗ ◗ ◗ ◗ ◗
,ECTURA%SCRITURA !SIGNACIØN !CTUALIZACIØN)NSERCIØN %LIMINACIØN -ODIlCACIØN /RDENACIØN "ÞSQUEDA
,OSARREGLOSBIDIMENSIONALESSECONSIDERANUNAGENERALIZACIØNDELOSUNIDIMEN SIONALES POR LO QUE SE PRESENTARÈ UNA REVISIØN RÈPIDA DE ALGUNAS DE LAS OPERACIONES MENCIONADAS0ARAILUSTRARLASSEUTILIZARÈNLOSEJEMPLOSANTERIORES
,ECTURA #UANDOSEPRESENTØLAOPERACIØNDELECTURAENARREGLOSUNIDIMENSIONALES SEMENCIONØ QUECONLAAYUDADEUNCICLOSEIBANLEYENDOYASIGNANDOVALORESACADAUNODELOSCOM PONENTES,OMISMOSUCEDECONLOSARREGLOSBIDIMENSIONALES3INEMBARGO COMOSUS ELEMENTOSDEBENINDICARSEPORMEDIODEDOSÓNDICES NORMALMENTESEUSANDOSCICLOS PARALOGRARLALECTURADEELEMENTOSCONSECUTIVOS 3UPONGAMOS POREJEMPLO QUESEDESEALEERTODOSLOSELEMENTOSDELARREGLOBIDI MENSIONAL-!42):,OSPASOSASEGUIRSON 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA ,EER-!42):;) *= !LVARIARLOSÓNDICESDE)Y* CADAELEMENTODE-!42):QUESELEESEASIGNAAL LUGARQUELECORRESPONDEENELARREGLO SEGÞNLAPOSICIØNDELOSÓNDICES)Y* 0ARA)Y* SELEEELELEMENTODELRENGLØNYCOLUMNA )Y* SELEEELELEMENTODELRENGLØNYCOLUMNA )Y* SELEEELELEMENTODELRENGLØNYCOLUMNA
%SCRITURA ,AESCRITURADEUNARREGLOBIDIMENSIONALTAMBIÏNSELLEVAACABOELEMENTOTRASELEMEN TO3UPONGAMOSQUESEQUIERAESCRIBIRTODOSLOSCOMPONENTESDELARREGLO-!42):,OS PASOSASEGUIRSON 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA %SCRIBIR-!42):;) *= !LVARIARLOSVALORESDE)Y*SEESCRIBEELELEMENTODE-!42):CORRESPONDIENTEA LAPOSICIØNINDICADAJUSTAMENTEPORLOSÓNDICES)Y*
24
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 0ARA)Y* SEESCRIBEELELEMENTODELRENGLØNYCOLUMNA )Y* SEESCRIBEELELEMENTODELRENGLØNYCOLUMNA )Y* SEESCRIBEELELEMENTODELRENGLØNYCOLUMNA
!SIGNACIØN ,AASIGNACIØNDEVALORESAUNARREGLOBIDIMENSIONALSEREALIZADEDIFERENTESFORMAS,A FORMADEPENDEDELNÞMERODECOMPONENTESINVOLUCRADOS/BSERVEMOSACONTINUACIØN DOSALTERNATIVASDIFERENTES 3EASIGNANVALORESATODOSLOSELEMENTOSDELARREGLOENESTECASOSENECESITARÈNDOS CICLOSPARARECORRERTODOELARREGLO 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA -!42):;) *=← !LVARIARLOSVALORESDE)Y*SEASIGNAELALELEMENTODE-!42):CORRESPONDIENTE ALAPOSICIØNINDICADAPORLOSÓNDICES)Y* 0ARA)Y* SEASIGNAELVALORALELEMENTODELRENGLØNYCOLUMNA )Y* SEASIGNAELVALORALELEMENTODELRENGLØNYCOLUMNA )Y* SEASIGNAELVALORALELEMENTODELRENGLØNYCOLUMNA %NLAlGURASEPRESENTACØMOQUEDAELARREGLOBIDIMENSIONALCUANDOSEASIGNA ELVALORACADAUNADELASCASILLAS 3EASIGNAUNVALORAUNELEMENTOENPARTICULARDELARREGLOENESTECASOLAASIGNA CIØNESDIRECTAYSEDEBEINDICARELRENGLØNYLACOLUMNADELCOMPONENTEINVOLUCRA DO0OREJEMPLO PARAASIGNARELVALORALELEMENTODELRENGLØNYCOLUMNASE PROCEDEDELASIGUIENTEMANERA
&)'52! !SIGNACIØNDEARREGLOS
"33&(-04%&.Ç4%&%04%*.&/4*0/&4
25
&)'52! !SIGNACIØNDEARREGLOS
-!42):; =← %LARREGLOSEMUESTRAENLAlGURA %SIMPORTANTEACLARARQUELASOPERACIONESDELECTURA ESCRITURAYASIGNACIØNATODOS LOSELEMENTOSDEUNARREGLOBIDIMENSIONALSEPUEDENHACERTANTOPORRENGLONESCOMO PORCOLUMNAS
!22%',/3$%-3$%$/3$)-%.3)/.%3 5NARREGLOMULTIDIMENSIONAL.DIMENSIONESSEDElNECOMOUNACOLECCIØNlNITA HOMOGÏNEAYORDENADADE+§+§§+.ELEMENTOS0ARAHACERREFERENCIAACADA COMPONENTEDEUNARREGLODE.DIMENSIONES SEUSARÈN.ÓNDICES UNOPARACADADIMEN SIØN %LARREGLO!DE.DIMENSIONESSEDECLARADELASIGUIENTEMANERA !!22%',/;,),3 ,),3 ,).,3.=$%TIPO %LTOTALDECOMPONENTESDE!SERÈ
.4#,3n,) ,3,) ,3. ,).
▼ &ØRMULA
0OREJEMPLO ELARREGLOTRIDIMENSIONAL!;L =TENDRÈ ELEMENTOS 'RÈlCAMENTEELARREGLO!SEPUEDEREPRESENTARCOMOSEMUESTRAENLASlGURAS Y !CONTINUACIØNSEPRESENTAUNEJEMPLODEUNARREGLOTRIDIMENSIONAL
26
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52! 2EPRESENTACIØNDEARREGLOS DEMÉSDEDOS DIMENSIONES
%JEMPLO
5NAEMPRESALLEVAUNREGISTRODELTOTALPRODUCIDOMENSUALMENTEPORCADADEPARTAMEN TO,AEMPRESACONSTADECINCODEPARTAMENTOSYLAINFORMACIØNSEHAREGISTRADOALOLAR GODELOSÞLTIMOSCUATROA×OS0ARAALMACENARLOSDATOSDELAPRODUCCIØNDELAEMPRESA SEREQUIEREENTONCESDEUNARREGLODETRESDIMENSIONES§§ELEMENTOS COMOELDELAlGURA !!22%',/; =$%REALES 3UPONGAMOSQUELAEMPRESANECESITAOBTENERLASIGUIENTEINFORMACIØN A %L TOTAL MENSUAL DE CADA DEPARTAMENTO DURANTE EL SEGUNDO A×O 0ARA OBTENER LA INFORMACIØNSOLICITADASEDEBENREALIZARLOSSIGUIENTESPASOS 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA %SCRIBIR!;) * = /BSERVE QUE PARA ESTE CASO SE ASIGNA LA CONSTANTE AL TERCER ÓNDICE EL DE LOS A×OSYSEHACEVARIARALOSOTROSDOSÓNDICES$EESTAMANERASEESCRIBIRÈNLASPRODUC CIONESMENSUALES B %LTOTALDELAPRODUCCIØNDURANTEELPRIMERA×O0ARAOBTENERLAINFORMACIØNSOLICI TADASEDEBENREALIZARLOSSIGUIENTESPASOS
&)'52! 2EPRESENTACIØNDEARREGLOS DEMÉSDEDOS DIMENSIONES
-"$-"4&,, "
27
&)'52!
(ACER35-!← 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA (ACER35-!←35-!!;) * = %SCRIBIR35-! /BSERVEQUEESTECASOESSIMILARALANTERIOR,ADIFERENCIARADICAENQUELASCANTIDA DESMENSUALESNOSEESCRIBIRÈN SINOQUESEACUMULARÈNOBTENIENDOELTOTALANUAL C %LTOTALDELAPRODUCCIØNDELDEPARTAMENTOALOLARGODELÞLTIMOA×O0ARAOBTENER LAINFORMACIØNSOLICITADASERÈNECESARIOEJECUTARLOSSIGUIENTESPASOS (ACER35-!← 2EPETIRCON*DESDEHASTA (ACER35-!←35-!!; * = %SCRIBIR35-! .OTEQUEENESTECASOSETIENENDOSÓNDICESCONSTANTES ELDEDEPARTAMENTOSYELDE A×OS YSEHACEVARIARSOLAMENTEELÓNDICEDEMESES#ONCLUIDOELCICLOSEESCRIBIRÈEL TOTALPRODUCIDOPORELDEPARTAMENTODURANTEELCUARTOA×O
,!#,!3%!22%',/ 0ARAENTENDERLACLASEARREGLO SEREQUIEREPRIMEROCONOCERALGUNOSCONCEPTOSBÈSICOS RELACIONADOSCONELPARADIGMADELAPROGRAMACIØNORIENTADAAOBJETOS0// 5NACLASEDElNEAUNOBJETOPORMEDIODELADESCRIPCIØNDESUSDATOS CONOCIDOS COMO ATRIBUTOS Y DE SU COMPORTAMIENTO REPRESENTADO POR MÏTODOS 3E DICE QUE LOS ATRIBUTOSYLOSMÏTODOSSONMIEMBROSDELACLASE 5NACLASEPUEDEREPRESENTARALOSALUMNOSDEUNAESCUELA%NESTECASOLOSDATOS SON LOS ATRIBUTOS QUE CARACTERIZAN A UN ALUMNO POR EJEMPLO NOMBRE FECHA DE NACI MIENTO DIRECCIØN TELÏFONO ETCÏTERA MIENTRASQUEELCOMPORTAMIENTOHACEREFERENCIAA LASOPERACIONESQUEPUEDENREALIZARSESOBREESOSDATOS POREJEMPLO CAMBIARDIRECCIØN OTELÏFONODELALUMNO ,APROGRAMACIØNORIENTADAAOBJETOSTIENECUATROPROPIEDADES !BSTRACCIØN %NCAPSULAMIENTOUOCULTAMIENTODELAINFORMACIØN
28
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 (ERENCIA 0OLIMORlSMO ,AABSTRACCIØNPERMITECONCENTRARSEENLOSDATOSYOPERACIONESQUEDElNENAUN CONJUNTODEOBJETOS IGNORANDOLOSELEMENTOSQUENOSONRELEVANTES,ASEGUNDAPRO PIEDAD ENCAPSULAMIENTO IMPLICA QUE TANTO LOS ATRIBUTOS COMO LOS MÏTODOS FORMAN UNTODOLACLASEYPUEDENOCULTARSEDELOSCLIENTESDELACLASE ALCONTROLARDEESTA MANERAELACCESOQUESETENGAASUSINTEGRANTES0ORSUPARTE LAHERENCIAREPRESENTALA PROPIEDADQUEPERMITECOMPARTIRATRIBUTOSYMÏTODOSENTRECLASES0ORÞLTIMO ELPOLI MORlSMOOFRECELAFACILIDADDEQUECIERTOSMÏTODOSPUEDANADOPTARDISTINTASFORMAS ,ACLASE!RREGLOTENDRÈATRIBUTOSYMÏTODOS,OSATRIBUTOSCONSTITUIRÈNLACOLECCIØN DEELEMENTOSYELTAMA×O,OSMÏTODOSSERÈNTODASLASOPERACIONESANALIZADASENLAS SECCIONESPREVIASLECTURA INSERCIØN ELIMINACIØN ETCÏTERA'RÈlCAMENTELACLASE!RRE GLOPUEDEVERSECOMOSEMUESTRAENLAlGURA 5NOBJETOESUNAINSTANCIADEUNACLASE%SDECIR ESTAÞLTIMAREPRESENTAAUNCON JUNTODEOBJETOS AUNCONCEPTOGENERAL POREJEMPLO LOSALUMNOSDEUNAESCUELAOLOS ARREGLOS MIENTRASQUELOSPRIMEROSSONOCURRENCIASDELACLASE#ONSIDERANDOLACLASE !RREGLO UNEJEMPLODEOBJETOSERÈELARREGLODECALIlCACIONESDEUNGRUPODEALUMNOS %NLOSLENGUAJESDEPROGRAMACIØNORIENTADAAOBJETOSMÈSCONOCIDOSSEUSALANO TACIØNDEPUNTOSPARATENERACCESOALOSMIEMBROSNOPRIVADOSDEUNOBJETO OBJETOMIEMBRO $ENTRODEUNMÏTODODEUNACLASE LAREFERENCIAACUALQUIERADESUSOTROSMIEMBROS NOREQUIEREELUSODEESTANOTACIØN!SUMIENDOQUELAVARIABLE#!,)&ESUNOBJETODE LACLASE!RREGLO SEPUEDENTENERLASSIGUIENTESINSTRUCCIONES #!,)&4AMA×O#!,)&4AMA×O #!,)&$ATOS;= 0ARAELCASODEQUELASINSTRUCCIONESFUERANPARTEDEUNMÏTODO SEPUEDEOMITIREL NOMBREDELOBJETOYELPUNTO YUSARDIRECTAMENTEELATRIBUTO $ATOS;=
&)'52! #LASE!RREGLO
3&(*45304
29
2%')342/3 $EACUERDOCONLOESTUDIADOENLASSECCIONESPREVIAS LOSARREGLOSSONESTRUCTURASDE DATOSMUYÞTILESPARAALMACENARUNACOLECCIØNDEDATOS TODOSDELMISMOTIPO3INEM BARGO ENLAPRÈCTICA AVECESSENECESITANESTRUCTURASQUEPERMITANALMACENARDATOSDE DISTINTOSTIPOSQUESEANMANIPULADOSCOMOUNÞNICODATO0ARAILUSTRARESTEPROBLEMASE INCLUYEELSIGUIENTEEJEMPLO
%JEMPLO
5NACOMPA×ÓATIENEPORCADAEMPLEADOLASIGUIENTEINFORMACIØN ◗ ◗ ◗ ◗ ◗
.OMBRE $IRECCIØN %DAD 3EXO !NTIGàEDAD
CADENADECARACTERES CADENADECARACTERES ENTERO CARÈCTER ENTERO
3ISEQUISIERAALMACENARESTOSDATOSNOSERÓAPOSIBLEUSARUNARREGLO YAQUESUS COMPONENTES DEBEN SER TODOS DEL MISMO TIPO ,A ESTRUCTURA QUE PUEDE GUARDAR ESTA INFORMACIØNDEMANERAEFECTIVASECONOCECOMOREGISTROOESTRUCTURA 5NREGISTROSEDElNECOMOUNACOLECCIØNlNITAYHETEROGÏNEADEELEMENTOS4AM BIÏNREPRESENTAUNTIPODEDATOESTRUCTURADO ENELQUECADAUNODESUSCOMPONENTESSE DENOMINACAMPO,OSCAMPOSDEUNREGISTROPUEDENSERTODOSDEDIFERENTESTIPOSDE DATOS0ORTANTO TAMBIÏNPODRÈNSERREGISTROSOARREGLOS#ADACAMPOSEIDENTIlCACON UNNOMBREÞNICO ELIDENTIlCADORDECAMPO/TRADIFERENCIAIMPORTANTECONLOSARREGLOS ESQUENOESNECESARIOESTABLECERUNORDENENTRELOSCAMPOS
$ECLARACIØNDEREGISTROS #OMONOESLAINTENCIØNDELOSAUTORESSEGUIRLASINTAXISDEALGÞNLENGUAJEDEPROGRAMA CIØNENPARTICULAR UNREGISTROSEDECLARADELASIGUIENTEFORMA IDENT?REGISTRO2%')342/ ID?CAMPOLTIPOL ID?CAMPOTIPO ID?CAMPONTIPON [&INDELADECLARACIØNDELREGISTRO] $ONDEIDENT?REGISTROESELNOMBREDELDATOTIPOREGISTRO ID?CAMPOIESELNOMBREDELCAMPOI ID?CAMPOI≠ID?CAMPOJ∀I J NEI≠J TIPOIESELTIPODELCAMPOI ,OSQUESIGUENSONEJEMPLOSDEDECLARACIONESDEREGISTROS CONSUCORRESPONDIENTE REPRESENTACIØNGRÈlCA
30
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
%JEMPLO
3EA &%#(! UN REGISTRO FORMADO POR TRES CAMPOS NUMÏRICOS 3U REPRESENTACIØN SE MUESTRAENLAlGURA &%#(!2%')342/ DÓA MES A×O [&INDELADECLARACIØNDELREGISTRO&%#(!]
%JEMPLO
3EA$/-)#),)/UNREGISTROFORMADOPORCUATROCAMPOS UNODEELLOSESNUMÏRICOYLOS TRESRESTANTESDELTIPOCADENADECARACTERES3UREPRESENTACIØNSEMUESTRAENLAlGURA $/-)#),)/2%')342/ CALLECADENA?DE?CARACTERES NÞMEROENTERO CIUDADCADENA?DE?CARACTERES PAÓSCADENA?DE?CARACTERES [&INDELADECLARACIØNDELREGISTRO$/-)#),)/]
%JEMPLO
3EA#,)%.4%UNREGISTROFORMADOPORCUATROCAMPOS DOSDELTIPOCADENADECARAC TERES UNODELTIPOREALYELOTRODELTIPOBOOLEANO3UREPRESENTACIØNSEMUESTRAENLA lGURA #,)%.4%2%')342/ NOMBRECADENA?DE?CARACTERES TELÏFONOCADENA?DE?CARACTERES SALDOREAL MOROSOBOOLEANO [&INDELADECLARACIØNDELREGISTRO#,)%.4%]
!CCESOALOSCAMPOSDEUNREGISTRO #OMOUNREGISTROESUNTIPODEDATOESTRUCTURADO NOSEPUEDETENERACCESOAÏLDIREC TAMENTECOMOUNÞNICODATO SINOQUESEDEBEESPECIlCARELELEMENTOCAMPODEL
&)'52!
3&(*45304
31
&)'52!
REGISTROQUENOSINTERESA0ARAELLO ENLAMAYORÓADELOSLENGUAJESSESIGUELASIGUIENTE SINTAXIS VARIABLE?REGISTROID?CAMPO $ONDE VARIABLE?REGISTROESUNAVARIABLEDETIPOREGISTRO ID?CAMPOESELIDENTIlCADORDELCAMPODESEADO %SDECIR SEUSARÈNDOSIDENTIlCADORESPARAHACERREFERENCIAAUNELEMENTOELNOM BREDELAVARIABLETIPOREGISTROYELNOMBREDELCAMPO SEPARADOSENTRESÓPORUNPUNTO $EACUERDOCONLOSEJEMPLOSDEREGISTROS Y SEPRESENTANACONTINUA CIØNDIFERENTESCASOSQUEILUSTRANELACCESOALOSCAMPOSDEUNREGISTRO A 0ARALEERLOSTRESCAMPOSDEUNAVARIABLE&DETIPO&%#(! ,EER&DÓA &MES &A×O B 0ARAESCRIBIRLOSCUATROCAMPOSDEUNAVARIABLE$DETIPO$/-)#),)/ %SCRIBIR$CALLE $NÞMERO $CIUDAD $PAÓS C 0ARAASIGNARVALORESAALGUNOSDELOSCAMPOSDEUNAVARIABLE#DETIPO#,)%.4% #SALDO←#SALDOCANT #MOROSO←6%2$!$%2/ #NOMBRE←h*UAN0ÏREZv
&)'52!
32
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 %NGENERAL COMOSEMENCIONØANTERIORMENTE ELORDENENELQUESEMANEJANLOS CAMPOSNOESIMPORTANTE%SDECIR SEPODRÓANHABERLEÓDOLOSCAMPOSDELAVARIABLE &DELASIGUIENTEMANERA ,EER&A×O &DÓA &MES 3ØLOSEDEBETENERENCUENTAQUELOSDATOSPROPORCIONADOSPORELUSUARIOOASIGNA DOSENUNALGORITMOSECORRESPONDANENTIPOCONLOSCAMPOS
$IFERENCIASENTREREGISTROSYARREGLOS ,ASDOSDIFERENCIASSUSTANCIALESEXISTENTESENTREREGISTROSYARREGLOSSON 5N ARREGLO PUEDE ALMACENAR . ELEMENTOS DEL MISMO TIPO ESTRUCTURA DE DATOS HOMOGÏNEA MIENTRASQUEUNREGISTROPUEDEALMACENAR.ELEMENTOSDEDIFERENTES TIPOSDEDATOSESTRUCTURADEDATOSHETEROGÏNEA !LOSCOMPONENTESDEUNARREGLOSETIENEACCESOPORMEDIODEÓNDICESQUEINDICAN LAPOSICIØNDELELEMENTOCORRESPONDIENTEENELARREGLO MIENTRASQUEALOSCOMPO NENTESDEUNREGISTRO LOSCAMPOS SETIENEACCESOPORMEDIODESUNOMBRE QUEES ÞNICO
#OMBINACIONESENTREARREGLOSYREGISTROS ,OSREGISTROSTIENENVARIOSCAMPOS#ADAUNODEELLOSPUEDESERDECUALQUIERTIPODE DATOS SIMPLESOESTRUCTURADOS3INEMBARGO LOSCOMPONENTESDELNIVELMÈSBAJODEUN TIPOESTRUCTURADOSIEMPREDEBENSERTIPOSSIMPLESDEDATOS $EACUERDOCONESTACONDICIØN SEINlEREQUEUNCAMPODEUNREGISTROPUEDESER OTROREGISTROOBIENUNARREGLO0OROTRAPARTE LOSCOMPONENTESDEUNARREGLOTAMBIÏN PUEDEN SER REGISTROS %STOS CASOS ENUNCIADOS ADEMÈS SE PUEDEN PRESENTAR EN FORMA ANIDADA
3&(*45304
33
!RREGLOSDEREGISTROS %NESTECASO CADAELEMENTODELARREGLOESUNREGISTRO4ODOSLOSCOMPONENTESDELARRE GLOTIENENQUESERDELMISMOTIPODEREGISTRO YAQUEESUNAESTRUCTURADEDATOSHOMO GÏNEA!CONTINUACIØNPRESENTAMOSUNEJEMPLO
%JEMPLO
5NAEMPRESAREGISTRAPARACADAUNODESUSCLIENTESLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗
.OMBRE 4ELÏFONO 3ALDO -OROSO
CADENADECARACTERES CADENADECARACTERES REAL BOOLEANO
3ILAEMPRESATIENE.CLIENTESNECESITARÈUNARREGLODE.ELEMENTOS ENELCUALCADA UNODESUSCOMPONENTESESUNREGISTROCOMOELDESCRITOENELEJEMPLO,AlGURA MUESTRALAESTRUCTURADEDATOSCORRECTAPARARESOLVERESTEPROBLEMA !!22%',/;=$%#,)%.4% #ADAELEMENTODE!SERÈUNDATOTIPO#,)%.4%0ORTANTO SISEQUIERE POREJEM PLO LEERELARREGLO! DEBELEERSEPORCADACOMPONENTECADAUNODELOSCAMPOSQUE FORMANALREGISTRO 2EPETIRCON)DESDEHASTA. ,EER!;)=NOMBRE ,EER!;)=TELÏFONO ,EER!;)=SALDO ,EER!;)=MOROSO #ON !;)= SE HACE REFERENCIA AL ELEMENTO ) DEL ARREGLO ! QUE ES UN REGISTRO CON ID?CAMPOSEESPECIlCACUÈLDELOSCAMPOSDELREGISTROSELEERÈ$EFORMASIMILARSE PROCEDEPARAESCRITURA ASIGNACIØN ETCÏTERA
&)'52! !RREGLODEREGISTROS
34
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
2EGISTROSANIDADOS %NLOSREGISTROSANIDADOS ALMENOSUNCAMPODELREGISTROESDELTIPOREGISTRO/BSERVE MOSACONTINUACIØNELSIGUIENTEEJEMPLO
%JEMPLO
5NAEMPRESAREGISTRAPARACADAUNODESUSACREEDORESLOSSIGUIENTESDATOS ◗ ◗
.OMBRECADENADECARACTERES $IRECCIØN s #ALLECADENADECARACTERES s .ÞMEROENTERO s #IUDADCADENADECARACTERES s 0AÓSCADENADECARACTERES
◗
3ALDOREAL
0ARADElNIRELTIPODEDATODELCAMPODIRECCIØN ESNECESARIODECLARARPREVIAMENTE UNREGISTROFORMADOPORLOSCUATROCOMPONENTESCALLE NÞMERO CIUDADYPAÓSQUESE ESPECIlCAN3EUSARÈELREGISTRODELEJEMPLO PRESENTADOANTERIORMENTE PARARESOL VERESTECASO !#2%%$/22%')342/ NOMBRECADENA?DE?CARACTERES DIRECCIØN$/-)#),)/ SALDOREAL [&INDELADECLARACIØNDELREGISTRO!#2%%$/2] ,AlGURAMUESTRALAESTRUCTURADEDATOSREQUERIDA %NESTECASO ELREGISTROTIENEUNCAMPODIRECCIØNQUEESDELTIPODEDATOS$/ -)#),)/ ELCUALESUNREGISTRODECUATROCAMPOS0ARATENERACCESOALOSCAMPOSQUE A SUVEZ SONREGISTROS ENLAMAYORÓADELOSLENGUAJESSESIGUELASIGUIENTESINTAXIS VARIABLE?REGISTROID?CAMPOID?CAMPON
&)'52! 2EGISTROSANIDADOS
$ONDE VARIABLE?REGISTROESUNAVARIABLEDETIPOREGISTRO ID?CAMPOESELIDENTIlCADORDEUNCAMPODELREGISTROELCAMPOESDE TIPOREGISTRO ID?CAMPONREPRESENTAELIDENTIlCADORDEUNCAMPO
3&(*45304
35
0ARATENERACCESOALOSCAMPOSDELAVARIABLE!#DETIPO!#2%%$/2 LASECUENCIA ASEGUIRESLASIGUIENTE !#NOMBRE !#DIRECCIØNCALLE !#DIRECCIØNNÞMERO !#DIRECCIØNCIUDAD !#DIRECCIØNPAÓS !#SALDO
2EGISTROSCONARREGLOS ,OSREGISTROSCONARREGLOSTIENEN PORLOMENOS UNCAMPOQUEESDETIPOARREGLO!NALI CECUIDADOSAMENTEELSIGUIENTEEJEMPLO
%JEMPLO
5NAEMPRESAREGISTRAPARACADAUNODESUSCLIENTESLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗
.OMBRE 4ELÏFONO 3ALDOMENSUALDELÞLTIMOA×O -OROSO
CADENADECARACTERES CADENADECARACTERES ARREGLODEREALES BOOLEANO
,ADElNICIØNDELREGISTROCORRESPONDIENTEES #,)%.4%2%')342/ NOMBRECADENA?DE?CARACTERES TELÏFONOCADENA?DE?CARACTERES SALDOS!22%',/;=$%REALES MOROSOBOOLEANO [&INDELADECLARACIØNDELREGISTRO#,)%.4%] ,AlGURAMUESTRALAESTRUCTURAREQUERIDA 0ARAESTECASOELREGISTROTIENEUNCAMPO SALDOS QUEESUNARREGLOUNIDIMENSIONAL DEELEMENTOSREALES#ONELPROPØSITODEHACERREFERENCIAAESECAMPO SEPROCEDEDE LASIGUIENTEMANERA &)'52! 2EGISTROSCONARREGLOS
36
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 VARIABLE?REGISTROID?CAMPO;ÓNDICE= 0ARATENERACCESOALOSCAMPOSDELAVARIABLE#,)DETIPO#,)%.4%SEDEBESEGUIR LASECUENCIA #,)NOMBRE #,)TELÏFONO 2EPETIRCON)DESDEHASTA #,)SALDOS;)= #,)MOROSO ,AS TRES POSIBLES COMBINACIONES ANALIZADAS AQUÓ ARREGLOS DE REGISTROS REGISTROS ANIDADOSYREGISTROSCONARREGLOS PUEDENPRESENTARSEDEMANERASIMULTÈNEAYENDIFE RENTESNIVELESENUNAMISMAESTRUCTURADEDATOS%NESTOSCASOS SERECOMIENDAQUELA ESTRUCTURARESULTANTESEACOMPRENSIBLEYQUENOSECOMPLIQUEDEMASIADOELACCESOALOS DATOSINDIVIDUALES
!RREGLOSPARALELOS 0ORARREGLOSPARALELOSSEENTIENDEDOSOMÈSARREGLOSCUYOSELEMENTOSSECORRESPON DEN%SDECIR LOSCOMPONENTESQUEOCUPANUNAMISMAPOSICIØNENDIFERENTESARREGLOS TIENENUNAESTRECHARELACIØNSEMÈNTICA0ARAILUSTRARESTAIDEA ACONTINUACIØNSEPRESEN TARÈUNCASOPRÈCTICOYSUSOLUCIØN MEDIANTEARREGLOSPARALELOS 3UPONGAMOSQUESECONOCEELNOMBREDELALUMNOYLACALIlCACIØNOBTENIDAPOR ÏSTEENUNEXAMENQUEFUEAPLICADOAUNGRUPODEALUMNOS3ISEQUISIERAUSARESTOS DATOSPARAGENERARINFORMACIØN POREJEMPLO PROMEDIODELGRUPO CALIlCACIØNMÈSALTA NOMBREDELOSALUMNOSCONCALIlCACIØNINFERIORALPROMEDIO ETC SETENDRÓANDOSALTER NATIVASPRINCIPALESENELDISE×ODELASOLUCIØN
5SODEARREGLOSPARALELOS 3ISEUTILIZANARREGLOSPARALELOSPARARESOLVERESTEPROBLEMA SEREQUIEREDEDOSARREGLOS UNIDIMENSIONALESENUNOSEALMACENARÈELNOMBREDELOSALUMNOS YENOTROLACALIlCA CIØNOBTENIDAPORÏSTEENELEXAMEN%SDECIR ACADAELEMENTODELARREGLO./-"2%3 LE CORRESPONDERÈ ENTONCES UNO DEL ARREGLO #!,)&)#!#)».!SÓ SI SE QUIERE HACER REFERENCIAALACALIlCACIØNDE./-"2%3;)= SEUTILIZARÈ#!,)&)#!#)».;)=/BSERVE LAlGURA ,ØPEZ -ARTÓNEZ 4ORRES 6IASA
OBTUVOUNACALIlCACIØNDE OBTUVOUNACALIlCACIØNDE OBTUVOUNACALIlCACIØNDE OBTUVOUNACALIlCACIØNDE
!CONTINUACIØNSEINCLUYEUNALGORITMOQUECALCULAELPROMEDIODELGRUPOEIMPRI MEELNOMBREDELOSALUMNOSQUETENGANCALIlCACIØNMENORALPROMEDIO
3&(*45304
37
&)'52! !RREGLOSPARALELOS
!LGORITMO !RREGLOS?PARALELOS !RREGLOS?PARALELOS [%STE ALGORITMO CALCULA EL PROMEDIO DEL GRUPO E IMPRIME EL NOMBRE DE LOS ALUMNOS CON CALIlCACIØNMENORALPROMEDIO] [./-"2%Y#!,)&)#!#)».SONVARIABLESDETIPOARREGLO)ESUNAVARIABLEDETIPOENTERO 02/-Y!#SONVARIABLESDETIPOREAL] (ACER!#← 2EPETIRCON)DESDEHASTA ,EER./-"2%;)=Y#!,)&)#!#)».;)= (ACER!#←!##!,)&)#!#)».;)= [&INDELCICLODELPASO] [3ECALCULAELPROMEDIODELGRUPO] (ACER02/-←!# %SCRIBIRh%LPROMEDIODELGRUPOESv02/["ÞSQUEDAEIMPRESIØNDELOSNOMBRESDELOSALUMNOSCONCALIlCACIØNINFERIORAL PROMEDIO] 2EPETIRCON)DESDEHASTA 3I#!,)&)#!#)».;)=02/- ENTONCES %SCRIBIR./-"2%;)= [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
5SODEARREGLOSDEREGISTROS /TRASOLUCIØNALPROBLEMASERÓAUTILIZARUNARREGLODEREGISTROS%NESTECASO CADACOM PONENTEDELARREGLO!,5-./ESUNREGISTROQUETIENEDOSCAMPOS./-"2%Y#! ,)&/BSERVELAlGURA
38
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
&)'52!
!SÓ
!,5-./3;)=./-"2%HARÈREFERENCIAALNOMBREDELALUMNO) !,5-./3;)=#!,)&HARÈREFERENCIAALACALIlCACIØNOBTENIDAPOREL ALUMNO)
%LSIGUIENTEALGORITMOPRESENTALASOLUCIØNALPROBLEMAANTERIORMEDIANTEUNARRE GLODEREGISTROS !LGORITMO !RREGLO?DE?REGISTROS ARREGLO?DE?REGISTROS [%STE ALGORITMO CALCULA EL PROMEDIO DEL GRUPO E IMPRIME EL NOMBRE DE LOS ALUMNOS CON CALIlCACIØNMENORALPROMEDIO] [!,5-./3 ES UN ARREGLO DE REGISTROS ) ES UNA VARIABLE DE TIPO ENTERO !# Y 02/- SON VARIABLESDETIPOREAL] (ACER!#← 2EPETIRCON)DESDEHASTA ,EER!,5-./3;)=./-"2%Y!,5-./3;)=#!,)& (ACER!#←!#!,5-./3;)=#!,)& [&INDELCICLODELPASO] (ACER02/-←!# %SCRIBIRh%LPROMEDIODELGRUPOESv02/["ÞSQUEDAEIMPRESIØNDELOSALUMNOSCONCALIlCACIØNINFERIORALPROMEDIO] 2EPETIRCON)DESDEHASTA 3I!,5-./3;)=#!,)&02/- ENTONCES %SCRIBIR!,5-./3;)=./-"2% [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
3&(*45304:$-"4&4
39
2%')342/39#,!3%3 ,OSREGISTROSSONLASESTRUCTURASDEDATOSQUEMÈSSEPARECENALCONCEPTODECLASEPRE SENTADO%NLASECCIØNANTERIORSEDIJOQUEUNREGISTROALMACENALASPRINCIPALESCARACTE RÓSTICASDEUNCONJUNTODEOBJETOS#ADAUNADEESASCARACTERÓSTICASCONSTITUYEUNCAMPO DELREGISTRO!LESTABLECERLARELACIØNCONLASCLASES LOSCAMPOSREPRESENTANLOSATRIBU TOS0ORTANTO SØLOSEAGREGANLOSMÏTODOSOPERACIONESQUEPUEDENAPLICARSESOBRE LOSCAMPOSPARACOMPLETARLADElNICIØNDEUNACLASE ,ACLASE2EGISTROCOMOTALNOSEDECLARA PORQUELOQUESEREQUIEREESUNACLASEPOR CADAREGISTRO%SDECIR SISEDESEAREPRESENTARALOSCLIENTESDEUNAEMPRESA SEGÞNEL EJEMPLOVISTOENLASECCIØNANTERIOR DESDEELPUNTODEVISTADELAPROGRAMACIØNORIEN TADAAOBJETOS SEDEBERÈDElNIRUNACLASEQUECONTENDRÈTANTOLOSATRIBUTOSLOQUEEN REGISTROSSELLAMANCAMPOSCOMOTODASLASOPERACIONESVÈLIDASPARAUNCLIENTE POR EJEMPLO ACTUALIZAR EL SALDO CAMBIAR EL NÞMERO TELEFØNICO ETCÏTERA 'RÈlCAMENTE LA CLASE#LIENTEPUEDEVERSECOMOSEMUESTRAENLAlGURA 5NOBJETODELACLASE#LIENTEESUNAINSTANCIADELAMISMA%SDECIR ESTÈREPRESEN TANDOAUNCLIENTECONUNNOMBRE UNNÞMEROTELEFØNICOYUNSALDOESPECÓlCO ,ANOTACIØNDEPUNTOSUTILIZADAENLOSREGISTROSVARIABLE?REGISTROCAMPO ESSIMILARALAUSADAENLOSLENGUAJESORIENTADOSAOBJETOSPARATENERACCESOALOSMIEM BROS NO PRIVADOS DE UN OBJETO OBJETOMIEMBRO!L ASUMIR QUE LA VARIABLE #,)ESUNOBJETODELACLASE#LIENTEPREVIAMENTEDElNIDA SEPUEDETENERACCESOALOS MIEMBROSNOPRIVADOSDEDICHOOBJETOPORMEDIODELASINSTRUCCIONES A #,)!CTUALIZAR3ALDO.UEVO3ALDO %NESTEEJEMPLOSEESTÈINVOCANDOALMÏTODOQUEACTUALIZAELSALDODELCLIENTE%L MÏTODOTIENEUNARGUMENTOQUEINDICAELNUEVOVALORQUESEASIGNARÈALATRIBUTO 3ALDO B #,)#AMBIA4ELÏFONO.UEVO4EL %NESTEEJEMPLOSEESTÈINVOCANDOALMÏTODOQUEACTUALIZAELNÞMEROTELEFØNICODEL CLIENTE%LMÏTODOTIENEUNARGUMENTOQUEINDICAELNUEVOVALORQUESEASIGNARÈAL ATRIBUTO4ELÏFONO
&)'52! #LASE#LIENTE
#LIENTE .OMBRECADENADECARACTERES 4ELÏFONOCADENADECARACTERES 3ALDOREAL !CTUALIZAR3ALDOARGUMENTOS #AMBIA4ELÏFONOARGUMENTOS x
40
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
▼ %*%2#)#)/3 !RREGLOSDEUNADIMENSIØNYARREGLOSPARALELOS Ê £° %NUNARREGLOUNIDIMENSIONALSEHAALMACENADOELNÞMEROTOTALDETONELADASDE CEREALESCOSECHADASDURANTECADAMESDELA×OANTERIOR%SCRIBAUNPROGRAMAQUE OBTENGAEIMPRIMALASIGUIENTEINFORMACIØN A %LPROMEDIOANUALDETONELADASCOSECHADAS B z#UÈNTOSMESESTUVIERONCOSECHASUPERIORALPROMEDIOANUAL C z#UÈNTOSMESESTUVIERONCOSECHAINFERIORALPROMEDIOANUAL Ê Ó° %NUNARREGLOUNIDIMENSIONALSEALMACENANLASCALIlCACIONESlNALESDE.ALUMNOS DEUNCURSOUNIVERSITARIO%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMA A B C D
%LPROMEDIOGENERALDELGRUPO .ÞMERODEALUMNOSAPROBADOSYREPROBADOS 0ORCENTAJEDEALUMNOSAPROBADOSYREPROBADOS .ÞMERODEALUMNOSCUYACALIlCACIØNFUEMAYOROIGUALA
Ê Î° $ADAUNACADENADECARACTERESCOMODATO SEDESEASABERELNÞMERODEVECESQUE APARECENLASLETRAS@A @B @ZY@! @" @:ENDICHACADENA%SCRIBAUNPRO GRAMAQUERESUELVAELPROBLEMA A 3IUSØARREGLOS zCUÈNTOSNECESITØz0ORQUÏ B z%XISTEOTRAFORMADERESOLVERLO Ê {° $ADOUNARREGLOUNIDIMENSIONALDENÞMEROSENTEROS ORDENADOSCRECIENTEMENTE ES CRIBAUNPROGRAMAQUEELIMINETODOSLOSELEMENTOSREPETIDOS#ONSIDEREQUEDEHA BERVALORESREPETIDOS ÏSTOSSEENCONTRARÈNENPOSICIONESCONSECUTIVASDELARREGLO Ê x° 5NA COMPA×ÓA ALMACENA LA INFORMACIØN RELACIONADA CON SUS PROVEEDORES EN LOS SIGUIENTESARREGLOS *,"6
",
P
P
P
PN
#ADAPESELNOMBREDELPROVEEDORI%STEARREGLOESTÈORDENADOALFABÏTICAMENTE
1 C
C
C
CN
#ADACREPRESENTAELNOMBREDELACIUDADENLAQUERESIDEELPROVEEDORI
&+&3$*$*04
41
2 ,"Ê Ê,/ 1"A
A
A
AN
#ADAAIESELNÞMERODEARTÓCULOSDIFERENTESQUEPROVEEELPROVEEDORI %SCRIBAUNPROGRAMAQUEPUEDALLEVARACABOLASSIGUIENTESTRANSACCIONES A $ADOELNOMBREDEUNPROVEEDOR INFORMARELNOMBREDELACIUDADENLAQUERESIDE YELNÞMERODEARTÓCULOSQUEPROVEE B !CTUALIZARELNOMBREDELACIUDAD ENCASODEQUEUNPROVEEDORCAMBIEDEDOMICI LIO,OSDATOSSERÈNELNOMBREDELPROVEEDORYELNOMBREDELACIUDADALACUALSE MUDØ C !CTUALIZARELNÞMERODEARTÓCULOS MANEJADOSPORUNPROVEEDORPARAELCASODEQUE ÏSTEAUMENTEODISMINUYA,OSDATOSSERÈNELNOMBREDELPROVEEDORYLACANTIDAD ENLAQUEAUMENTA ODISMINUYE ELTOTALDEARTÓCULOSQUEPROVEE D ,ACOMPA×ÓAINCORPORAAUNNUEVOPROVEEDOR!CTUALIZARLOSARREGLOSSINALTERAREL ORDENDE02/6%%$/2%3,OSDATOSSERÈNELNOMBREDELPROVEEDOR ELNOMBREDE LACIUDADYELTOTALDEARTÓCULOSQUEPROVEE E ,A COMPA×ÓA DA DE BAJA A UN PROVEEDOR!CTUALIZAR LOS ARREGLOS %L DATO SERÈ EL NOMBREDELPROVEEDOR Ê È° 5NAINMOBILIARIATIENEINFORMACIØNSOBREDEPARTAMENTOSENRENTAALMACENADAEN DOSARREGLOS
8/ -$ E
E
E
EN
%LARREGLO%84%.3)».ALMACENALASUPERlCIE ENMETROSCUADRADOS DECADAUNO DELOS.DEPARTAMENTOS *, " 0
0
0
0.
%LARREGLO02%#)/ALMACENALOSPRECIOSDEALQUILERDELOS.DEPARTAMENTOS%STE ARREGLOESTÈORDENADODEMANERACRECIENTE#ONSIDEREQUENOEXISTENDEPARTAMENTOS CONIGUALSUPERlCIEYDISTINTOSPRECIOS %SCRIBAUNPROGRAMAQUEPUEDALLEVARACABOLASSIGUIENTESOPERACIONES A ,LEGAUNCLIENTEALAINMOBILIARIAYSOLICITARENTARUNDEPARTAMENTO3IEXISTEALGUNO CONSUPERlCIEMAYOROIGUALALABUSCADAYPRECIOMENOROIGUALALBUSCADO SEDARÈ DEBAJAALDEPARTAMENTOSELECCIONADO B 3EVENCEUNCONTRATOYELCLIENTENODESEARENOVARLO3EDEBENACTUALIZARLOSARRE GLOS
42
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 Ê Ç° 3ETIENELASIGUIENTEINFORMACIØN
#4 A
A
A
AN
%NELARREGLO#4SEALMACENANLOSNOMBRESDE.CENTROSTURÓSTICOSDELPAÓS
( B
B
B
BN
%N EL ARREGLO ( SE ALMACENA EL NÞMERO DE HABITACIONES DE CADA TIPO SENCILLA O DOBLE DECADACENTROTURÓSTICO 0OREJEMPLO (;=GUARDAELNÞMERODEHABITACIONESSENCILLASDELCENTRO (;=GUARDAELNÞMERODEHABITACIONESDOBLESDELCENTRO (;=GUARDAELNÞMERODEHABITACIONESSENCILLASDELCENTRO (;=GUARDAELNÞMERODEHABITACIONESDOBLESDELCENTRO ETCÏTERA
42 C
C
C
CN
%NELARREGLO42SEALMACENAELNÞMEROTOTALDERESTAURANTESPORCENTROTURÓSTICO $EBERÈDESARROLLARUNPROGRAMAQUEPROPORCIONELASIGUIENTEINFORMACIØN A %LNOMBREDELCENTROTURÓSTICOQUECUENTACONMÈSRESTAURANTES B %LNOMBREDELCENTROTURÓSTICOQUECUENTACONMÈSHABITACIONES TENIENDOENCUENTA LASSENCILLASYLASDOBLES C $ADOELNOMBREDEUNCENTROTURÓSTICOCOMODATO INFORMARCUÈNTASHABITACIONES TIENESENCILLAS DOBLESYELTOTAL D %LNOMBREDELCENTROTURÓSTICOQUEMÈSRESTAURANTESTIENEENRELACIØNCONELNÞMERO DEHABITACIONES Ê n° 3ETIENENTRESARREGLOS352 #%.42/Y./24%QUEALMACENANLOSNOMBRESDE LOSPAÓSESDE3UR #ENTROY.ORTEAMÏRICA RESPECTIVAMENTE,OSTRESARREGLOSESTÈN ORDENADOSALFABÏTICAMENTE %SCRIBA UN PROGRAMA QUE MEZCLE LOS TRES ARREGLOS ANTERIORES FORMANDO UN CUARTOARREGLO !-²2)#! ENELCUALAPAREZCANLOSNOMBRESDETODOSLOSPAÓSES DELCONTINENTEORDENADOSALFABÏTICAMENTE Ê ° 3ETIENENDOSARREGLOS#).%3Y4%!42/3%LPRIMEROALMACENALOSNOMBRES DETODOSLOSCINESDELACIUDAD%STÈORDENADOALFABÏTICAMENTEDEMANERAAS CENDENTE
&+&3$*$*04
43
#).%3;=≤#).%3;=≤≤#).%3;.= %LSEGUNDOARREGLOGUARDALOSNOMBRESDETODOSLOSTEATROSDELACIUDAD%STÈORDE NADOALFABÏTICAMENTEDEMANERADESCENDENTE 4%!42/3;=≥4%!42/3;=≥≥4%!42/3;+= %SCRIBAUNPROGRAMAQUEMEZCLEESTOSARREGLOSFORMANDOUNTERCERO %.42%4% .)-)%.4/3 QUEQUEDEORDENADOALFABÏTICAMENTEDEMANERAASCENDENTE £ä°3ETIENENREGISTRADASLASCALIlCACIONESOBTENIDASENUNEXAMENAALUMNOS,OS DATOSSONCAL CAL CAL DONDECALIESUNNÞMEROENTEROCOMPRENDIDOENTRELOS VALORESY≤CALI≤ %SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALAFRECUENCIADECADAUNODELOS POSIBLESVALORES ,ASALIDADELPROGRAMASEMUESTRAACONTINUACIØN #ALIlCACIØN
&RECUENCIA
!,5-./
!,5-./3
!,5-./3
!,5-./3
££°%SCRIBASUSPROPIOSALGORITMOSPARAINSERTAR ELIMINAROMODIlCARUNELEMENTODE UNARREGLO A 3IELARREGLOESTÈDESORDENADO B 3IELARREGLOESTÈORDENADO £Ó°$ADOUNARREGLOUNIDIMENSIONALDETIPOENTEROQUECONTIENECALIlCACIONESDEEXÈ MENESDEALUMNOS CONSTRUYAUNPROGRAMAQUECALCULELOSIGUIENTE A -EDIAARITMÏTICA3ECALCULACOMOLASUMADELOSELEMENTOSENTREELNÞMERODE ELEMENTOS B 6ARIANZA3ECALCULACOMOLASUMADELOSCUADRADOSDELASDESVIACIONESDELAME DIA ENTREELNÞMERODEELEMENTOS C $ESVIACIØNESTÈNDAR3ECALCULACOMOLARAÓZCUADRADADELAVARIANZA D -ODA3ECALCULAALOBTENERELNÞMEROCONMAYORFRECUENCIA £Î°%SCRIBAUNPROGRAMAQUEALMACENEENUNARREGLOUNIDIMENSIONALLOSPRIMEROSNÞ MEROSPERFECTOS5NNÞMEROSECONSIDERAPERFECTO SILASUMADELOSDIVISORESEXCEP TOELMISMOESIGUALALPROPIONÞMERO%L POREJEMPLO ESUNNÞMEROPERFECTO
44
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504
!RREGLOSMULTIDIMENSIONALES £{°3EANLOSARREGLOSBIDIMENSIONALES!-§. Y"-§. $ONDE≤-≤ ≤.≤ AI JYBI JSONREALES %SCRIBAUNPROGRAMAQUECALCULE#-§. !-§. "-§. £x°3EANLOSARREGLOSBIDIMENSIONALES!-§. Y".§0 $ONDE≤-≤ ≤.≤ ≤0≤ AI JYBI JSONREALES %SCRIBAUNPROGRAMAQUECALCULE#-§0 !-§. ".§0 £È°%SCRIBAUNPROGRAMAQUELLENEDECEROSUNAMATRIZ!.§. EXCEPTOENLADIAGONAL PRINCIPALDONDEDEBEASIGNAR3I. LAMATRIZDEBEQUEDAR
£Ç°%SCRIBAUNPROGRAMAQUEINTERCAMBIEPORRENGLØNLOSELEMENTOSDEUNARREGLOBIDI MENSIONAL,OSELEMENTOSDELRENGLØNDEBENINTERCAMBIARSECONLOSDELRENGLØN . LOSDELRENGLØNCONLOSDEL.n YASÓSUCESIVAMENTE 0OREJEMPLO SI!ES
%LRESULTADODELAOPERACIØNDEBESER
&+&3$*$*04
45
£n°$ADOCOMODATOELARREGLOBIDIMENSIONAL!-§. QUEALMACENANÞMEROSREA LES
$ONDE≤-≤ ≤.≤ %SCRIBAUNPROGRAMAQUEENCUENTREEIMPRIMAELVALORMÈSGRANDEALMACENADO ENCADAUNADELASCOLUMNASYENCADAUNODELOSRENGLONESDELARREGLO3UPRO GRAMADEBEIMPRIMIR JUNTOALVALORENCONTRADO LACOLUMNAORENGLØNENLACUALSE ENCONTRØ
£°3ETIENENLOSCOSTOSDEPRODUCCIØNDETRESDEPARTAMENTOSDULCES BEBIDASYCONSER VAS CORRESPONDIENTESALOSMESESDELA×OANTERIOR
%SCRIBAUNPROGRAMAQUEPUEDAPROPORCIONARLASIGUIENTEINFORMACIØN A z%NQUÏMESSEREGISTRØELMAYORCOSTODEPRODUCCIØNDEDULCES B 0ROMEDIOANUALDELOSCOSTOSDEPRODUCCIØNDEBEBIDAS C z%NQUÏMESSEREGISTRØELMAYORCOSTODEPRODUCCIØNENBEBIDAS YENQUÏMESEL MENORCOSTO D z#UÈLFUEELRUBROQUETUVOELMENORCOSTODEPRODUCCIØNENDICIEMBRE Óä°3ETIENEUNATABLACONLASCALIlCACIONESOBTENIDASPORALUMNOSENSEISEXÈMENES DIFERENTES
%SCRIBAUNPROGRAMAQUECALCULE
46
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 A %L PROMEDIO GENERAL DE CALIlCACIONES DE LOS ALUMNOS CONSIDERANDO LOS SEIS EXÈMENES B %LALUMNOQUEOBTUVOLAMAYORCALIlCACIØNENELTERCEREXAMEN C %LALUMNO SILOHUBIERA QUEOBTUVOLAMAYORCALIlCACIØNENELPRIMEROYENEL SEXTOEXÈMENES D $ADOELNÞMEROQUEIDENTIlCAAUNALUMNO INFORMARENQUÏEXAMENLOGRØLAMENOR CALIlCACIØN E z%NCUÈLEXAMENFUEMÈSALTOELPROMEDIODELOSALUMNOS Ó£°%SCRIBAUNPROGRAMAQUEGENEREEIMPRIMAUNCUADRADOMÈGICODEDIMENSIØN. /BSERVEQUE.ESENTERO POSITIVOEIMPAR5NCUADRADOMÈGICOESUNAMATRIZCUA DRADADEORDEN. QUECONTIENEALOSNÞMEROSNATURALESDELAL. . YDONDELA SUMADECUALQUIERADELOSRENGLONES COLUMNASODIAGONALESPRINCIPALESESSIEMPRE LAMISMA0UEDEUTILIZARLOSSIGUIENTESPASOSPARAGENERARUNCUADRADOMÈGICO A %LNÞMEROSECOLOCAENLACASILLACENTRALDELPRIMERRENGLØN B %LSIGUIENTENÞMEROSECOLOCAENLACASILLACORRESPONDIENTEALRENGLØNANTERIORY COLUMNAPOSTERIOR C %LRENGLØNANTERIORALPRIMEROESELÞLTIMO YLACOLUMNAPOSTERIORALAÞLTIMAESLA PRIMERA D 3IELNÞMEROESUNSUCESORDEUNMÞLTIPLODE. NOSEAPLICALAREGLA SINOQUESE COLOCAENLACASILLADELRENGLØNPOSTERIORYENLAMISMACOLUMNA 3I. ELCUADRADOGENERADODEBEQUEDAR
ÓÓ°3EAN!-§. Y". ARREGLOSDEDOSYUNADIMENSIØN RESPECTIVAMENTE%SCRIBA UNPROGRAMAQUEASIGNEVALORESA" APARTIRDE! TENIENDOENCUENTALOSSIGUIENTES CRITERIOS N
A BI ¤ AI J
3IIESIMPAR
J N
B BI ¤ AI J AI J AI J
3IIESPAR
J
Óΰ3EAN!B§. Y". DOSARREGLOSDEDOSYUNADIMENSIØN RESPECTIVAMENTE
&+&3$*$*04
47
%SCRIBAUNPROGRAMAQUEASIGNEVALORESA! APARTIRDE" TENIENDOENCUENTALOS SIGUIENTESCRITERIOS A AIJBI B AIJ
3II≤J 3IIJ
#OMBINACIONESENTREARREGLOSYREGISTROS Ó{°%LDEPARTAMENTODEPERSONALDEUNAESCUELATIENEREGISTROSDELNOMBRE SEXOYEDAD DECADAUNODELOSPROFESORESADSCRITOSAHÓ
%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSSIGUIENTESDATOS
A B C D E
%DADPROMEDIODELGRUPODEPROFESORES .OMBREDELPROFESORMÈSJOVENDELGRUPO .OMBREDELPROFESORDEMÈSEDAD .ÞMERODEPROFESORASCONEDADMAYORALPROMEDIO .ÞMERODEPROFESORESCONEDADMENORALPROMEDIO
Óx°2ESUELVA EL PROBLEMA ANTERIOR CON TRES ARREGLOS PARALELOS #OMPARE SUS SOLUCIO NES
ÓÈ°%NUNAESCUELAPORCADAALUMNOSETIENENLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗
.OMBRE -ATRÓCULA .ÞMERODESEMESTRESCURSADOS #ALIlCACIØNPROMEDIOPORSEMESTRE
%SCRIBA UN PROGRAMA QUE DADA LA INFORMACIØN DE . ALUMNOS PUEDA REALIZAR LAS SIGUIENTESOPERACIONES
48
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 A ,ISTARNOMBREYMATRÓCULADEESTUDIANTESCONPROMEDIOSGENERALESMAYORESOIGUA LESA B !CTUALIZAR LOS CAMPOS QUE CORRESPONDAN CUANDO UN ESTUDIANTE HA CONCLUIDO UN SEMESTRE C ,ISTARNOMBREYMATRÓCULADEESTUDIANTESQUEHAYANOBTENIDOOMÈSDECALIlCA CIØNENTODOSLOSSEMESTRESCURSADOSHASTAELMOMENTO ÓÇ°5NACOMPA×ÓADISTRIBUYE.PRODUCTOSADISTINTOSCOMERCIOSDELACIUDAD0ARAELLO ALMACENAENUNARREGLOTODALAINFORMACIØNRELACIONADACONSUMERCANCÓA ◗ ◗ ◗ ◗ ◗
#LAVE $ESCRIPCIØN %XISTENCIA -ÓNIMOAMANTENERDEEXISTENCIA 0RECIOUNITARIO
%SCRIBAUNPROGRAMAQUEEFECTÞELASSIGUIENTESOPERACIONES
A 6ENTADEUNPRODUCTOSEDEBENACTUALIZARLOSCAMPOSQUECORRESPONDANYVERIlCAR QUELANUEVAEXISTENCIANOESTÏPORDEBAJODELMÓNIMO$ATOSCLAVE CANTIDADVEN DIDA B 2EABASTECIMIENTODEUNPRODUCTOSEDEBENACTUALIZARLOSCAMPOSQUECORRESPON DAN$ATOSCLAVE CANTIDADCOMPRADA C !CTUALIZARELPRECIODEUNPRODUCTO$ATOSCLAVE PORCENTAJEDEAUMENTO D )NFORMARSOBREUNPRODUCTOSEDEBENPROPORCIONARTODOSLOSDATOSRELACIONADOS CONUNPRODUCTO$ATOCLAVE Ón°!LMOMENTODESUINGRESOALHOSPITAL AUNPACIENTESELESOLICITANLOSSIGUIENTES DATOS ◗ ◗ ◗ ◗ ◗ ◗
.OMBRE %DAD 3EXO $OMICILIO s#ALLE s.ÞMERO s#IUDAD 4ELÏFONO 3EGUROESTECAMPOTENDRÈELVALOR6%2$!$%2/SIELPACIENTETIENESEGUROMÏDI COY&!,3/ENOTROCASO
%SCRIBAUNPROGRAMAQUEPUEDALLEVARACABOLASSIGUIENTESOPERACIONES
A ,ISTARLOSNOMBRESDETODOSLOSPACIENTESHOSPITALIZADOS B /BTENERELPORCENTAJEDEPACIENTESHOSPITALIZADOSENLASSIGUIENTESCATEGORÓASDA DASPORLAEDAD
&+&3$*$*04
49
.I×OSHASTAA×OS *ØVENESMAYORESDEA×OSYMENORESDE !DULTOSMAYORESDEA×OS
C /BTENERELPORCENTAJEDEHOMBRESYDEMUJERESHOSPITALIZADOS D $ADOELNOMBREDEUNPACIENTE LISTARTODOSLOSDATOSRELACIONADOSCONDICHOPA CIENTE E #ALCULARELPORCENTAJEDEPACIENTESQUEPOSEENSEGUROMÏDICO Ó°5NAINMOBILIARIATIENEINFORMACIØNSOBREDEPARTAMENTOSENRENTA$ECADADEPARTA MENTOSECONOCE ◗ ◗ ◗ ◗ ◗
#LAVEESUNENTEROQUEIDENTIlCAALINMUEBLE %XTENSIØNSUPERlCIEDELDEPARTAMENTO ENMETROSCUADRADOS 5BICACIØNEXCELENTE BUENA REGULAR MALA 0RECIOESUNREAL $ISPONIBLE6%2$!$%2/SIESTÈDISPONIBLEPARALARENTAY&!,3/SIYAESTÈREN TADO
$IARIAMENTEACUDENMUCHOSCLIENTESALAINMOBILIARIASOLICITANDOINFORMACIØN %SCRIBAUNPROGRAMACAPAZDEREALIZARLASSIGUIENTESOPERACIONESSOBRELAIN FORMACIØNDISPONIBLE
A ,ISTELOSDATOSDETODOSLOSDEPARTAMENTOSDISPONIBLESQUETENGANUNPRECIOINFERIOR OIGUALACIERTOVALOR0 B ,ISTELOSDATOSDELOSDEPARTAMENTOSDISPONIBLESQUETENGANUNASUPERlCIEMAYORO IGUALAUNCIERTOVALORDADO%YUNAUBICACIØNEXCELENTE C ,ISTEELMONTODELARENTADETODOSLOSDEPARTAMENTOSALQUILADOS D ,LEGAUNCLIENTESOLICITANDORENTARUNDEPARTAMENTO3IEXISTEALGUNOCONUNASU PERlCIE MAYOR O IGUAL A LA DESEADA CON PRECIO Y UBICACIØN QUE SE AJUSTAN A LAS NECESIDADESDELCLIENTE ELDEPARTAMENTOSERENTARÈ!CTUALIZARLOSDATOSQUECORRES PONDAN E 3EVENCEUNCONTRATOSINOSERENUEVA ACTUALIZARLOSDATOSQUECORRESPONDAN F 3EHADECIDIDOAUMENTARLASRENTASENUN8!CTUALIZARLOSPRECIOSDELASRENTAS DELOSDEPARTAMENTOSNOALQUILADOS
0ROBLEMASINTERESANTES $ECIDAELLECTORQUÏESTRUCTURADEDATOSDEBEUTILIZARPARARESOLVERLOS Îä°%SCRIBAUNPROGRAMAQUELEAUNNÞMEROROMANOEIMPRIMASUEQUIVALENTEENARÈ BIGO 2ECUERDEQUE ) 6
50
>«ÌÕÊ£Ê Ê Ê &4536$563"4'6/%".&/5"-&4%&%"504 8 , # $ - Σ°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSNÞMEROSPERFECTOSCOMPRENDIDOS ENTREDOSNÞMEROS!Y"5NNÞMEROESPERFECTOSILASUMADESUSDIVISORES EXCEP TOÏLMISMO ESIGUALALPROPIONÞMERO ÎÓ°%SCRIBAUNSUBPROGRAMAQUERECIBACOMODATOSELNOMBREDEUNDÓADELASEMANAY UNNÞMEROENTERO. POSITIVOONEGATIVO EIMPRIMAELDÓADELASEMANACORRESPON DIENTEA.DÓASDESPUÏSPOSITIVOO.DÓASANTESNEGATIVODELDÓADADO Îΰ,OMISMOQUEENELPROBLEMA PEROAHORACONRESPECTOAUNMES Î{°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSNÞMEROSPRIMOSMENORESQUECIERTO NÞMERODADO. Îx°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMALOSNÞMEROSPRIMOSGEMELOSMENORES QUECIERTONÞMERODADO.$OSNÞMEROSSONPRIMOSGEMELOSSISONNÞMEROSPRI MOSCONUNADIFERENCIAENTREELLOSDEEXACTAMENTE0OREJEMPLO YSONPRIMOS GEMELOS
#APÓTULO
Ó
!22%',/3 -5,4)$)-%.3)/.!,%3 2%02%3%.4!$/3 %.!22%',/3 5.)$)-%.3)/.!,%3 ).42/$5##)¼. !CTUALMENTELAMAYORÓADELOSLENGUAJESDEPROGRAMACIØNDEALTONIVELPROPORCIONANAL USUARIOMEDIOSElCACESPARAALMACENARYRECUPERARELEMENTOSDEARREGLOSBIDIMENSIO NALES TRIDIMENSIONALESEINCLUSODEMÈSDETRESDIMENSIONES%LUSUARIODELLENGUAJENO DEBEPREOCUPARSEPORDETALLESESPECÓlCOSDELALMACENAMIENTONIPORELMANEJOFÓSICO DEL DATO 3U ATENCIØN SE DEBE CONCENTRAR SOLAMENTE EN EL TRATAMIENTO LØGICO DE ESTE ÞLTIMOESDECIR ENENCONTRARUNAESTRUCTURADEDATOSQUEPERMITARESOLVERCIERTOSPRO BLEMASDEMANERAØPTIMA 0OROTRAPARTE LASCOMPUTADORASNOPUEDENALMACENARDIRECTAMENTEUNARREGLOMUL TIDIMENSIONAL3UREPRESENTACIØNENMEMORIADEBESERLINEALACADAELEMENTOLESIGUE UNÞNICOELEMENTO MEDIANTEUNBLOQUEDEPOSICIONESSUCESIVAS %NESTECAPÓTULOSEESTUDIARÈNALGUNASTÏCNICASUTILIZADASPARAELALMACENAMIENTO LINEALDEARREGLOSMULTIDIMENSIONALES
!22%',/3")$)-%.3)/.!,%3 ,OSLENGUAJESDEPROGRAMACIØNPUEDENREPRESENTARUNARREGLOBIDIMENSIONAL! DEM§ NELEMENTOS MEDIANTEUNBLOQUEDEM§NPOSICIONESSUCESIVAS,ADISTRIBUCIØNDELOS ELEMENTOSSEPUEDEREALIZARDEDOSFORMASDIFERENTESRENGLØNARENGLØN LLAMADATAM
52
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 BIÏNORDENACIØNPORRENGLONES QUEUTILIZANLAMAYORÓADELOSLENGUAJESDEPROGRAMA CIØN POREJEMPLO "!3)# #/"/, 0!3#!, # ETCÏTERA OBIENCOLUMNAACOLUMNA LLAMADATAMBIÏNORDENACIØNPORCOLUMNAS QUEUTILIZA&/242!. 3EAELARREGLOBIDIMENSIONAL!DE§ELEMENTOSlGA 3UREPRESENTACIØNEN UNARREGLOUNIDIMENSIONALORDENADOPORRENGLONESSEOBSERVAENLAlGURAB MIENTRAS QUEELQUECORRESPONDEAUNARREGLOUNIDIMENSIONALORDENADOPORCOLUMNASSEOBSERVA ENLAlGURAC 5NAVEZALMACENADOSLOSVALORESDEMANERALINEALSEREQUIEREUNAFØRMULAQUEPRO PORCIONELAPOSICIØNENELARREGLOUNIDIMENSIONALQUELECORRESPONDEACADAELEMENTO DELARREGLOBIDIMENSIONALORIGINAL 3EAN ENTONCES MELNÞMERODERENGLONESYNELNÞMERODECOLUMNASDEUNARREGLO BIDIMENSIONAL0OROTRAPARTE IYJINDICANELRENGLØNYCOLUMNA RESPECTIVAMENTE DE LAPOSICIØNDELELEMENTOQUESEQUIEREUBICAR,AFØRMULAPARALOCALIZARUNELEMENTO DETERMINADO ENUNARREGLOUNIDIMENSIONALORDENADOPORRENGLONES ESLASIGUIENTE
,/#!;I J= 0/3).)N In Jn
▼ &ØRMULA
$ONDE0/3).) PRIMERTÏRMINODELAFØRMULA REPRESENTALAPOSICIØNDELARRE GLOUNIDIMENSIONALAPARTIRDELACUALSEENCUENTRAALMACENADOELARREGLOBIDIMENSIO NAL%NGENERAL PARALLEGARACUALQUIERRENGLØNISEDEBENCONTABILIZARLOSELEMENTOS CORRESPONDIENTESAI RENGLONESCOMPLETOS%STERESULTADOSEOBTIENEMEDIANTELA OPERACIØNN I SEGUNDOTÏRMINODELAFØRMULA#UANDOSELLEGAALRENGLØN CORRESPONDIENTESEDEBENCONTABILIZARLOSJ ELEMENTOSNECESARIOSPARALLEGARALA COLUMNAJ TERCERTÏRMINODELAFØRMULA,ASUMADELOSTRESTÏRMINOSPROPORCIONALA LOCALIZACIØNDELELEMENTOI JCORRESPONDIENTE ENUNARREGLOUNIDIMENSIONALORDENADO PORRENGLONES !SÓ POREJEMPLO SIDESEAMOSLOCALIZARELELEMENTO!; =DELARREGLODELAlGURA AHACEMOS ,/#!; = &)'52! 2EPRESENTACIØNLINEALDE ARREGLOSBIDIMENSIONALES > !RREGLOBIDIMENSIONAL L /RDENACIØNPOR RENGLONESENUNARREGLO UNIDIMENSIONAL D /RDENACIØNPOR COLUMNASENUNARREGLO UNIDIMENSIONAL
"33&(-04#*%*.&/4*0/"-&4
53
!HORABIEN SIELARREGLOSEENCUENTRAALMACENADOPORCOLUMNAS LAFØRMULAPARA LOCALIZARUNELEMENTODETERMINADOES
,/#!;I J= 0/3).)M Jn In
▼ &ØRMULA
%NESTECASO 0/3).) PRIMERTÏRMINODELAFØRMULA REPRESENTA COMOENEL CASO ANTERIOR LA POSICIØN DEL ARREGLO UNIDIMENSIONAL A PARTIR DE LA CUAL SE ENCUENTRA ALMACENADO EL ARREGLO BIDIMENSIONAL %N GENERAL PARA LLEGAR A CUALQUIER COLUMNA J PRIMEROSEDEBENCONTABILIZARLOSELEMENTOSCORRESPONDIENTESAJ COLUMNASCOM PLETAS%STERESULTADOSEOBTIENECONLAOPERACIØNM J SEGUNDOTÏRMINODELA FØRMULA,UEGOQUESELLEGAALACOLUMNADESEADA SEDEBENCONSIDERARLOSI ELEMENTOSNECESARIOSPARALLEGARALRENGLØNI TERCERTÏRMINODELAFØRMULA,ASUMA DELOSTRESTÏRMINOSDElNELALOCALIZACIØNDELELEMENTOI JCORRESPONDIENTE ENUNARRE GLOUNIDIMENSIONALORDENADOPORCOLUMNAS !SÓ POREJEMPLO SISEDESEALOCALIZARELELEMENTO!; =DELARREGLOPRESENTADOEN LAlGURAASEHACE ,/#!; =
%JEMPLO
#ONSIDEREELARREGLOBIDIMENSIONAL#/34/3DERENGLONESYTRESCOLUMNAS CORRES PONDIENTE A LOS COSTOS MENSUALES DE PRODUCCIØN DE TRES DEPARTAMENTOS DULCES CON SERVASYBEBIDAS DEUNAFÈBRICA#ONSIDERETAMBIÏNQUEAQUÏLSEENCUENTRAORDENADO PORRENGLONESAPARTIRDELAPOSICIØN ENUNARREGLOUNIDIMENSIONALLLAMADO#/3 !NALICELOSSIGUIENTESCASOS A 3ENECESITACONOCERELCOSTODEPRODUCCIØNDELDEPARTAMENTODECONSERVAS DURANTE AGOSTO 3EPROCEDEDEESTAFORMA (ACER)← *← %SCRIBIR#/3; ) * = [%LRESULTADODELCÈLCULOES] B 3ENECESITAELCOSTODEPRODUCCIØNANUALDELDEPARTAMENTODEBEBIDAS ,OSPASOSASEGUIRSON (ACER35-← 2EPETIRCON)DESDEHASTA (ACER35-←35-#/3; ) = C 3ENECESITAELCOSTOTOTALDEPRODUCCIØNDELOSTRESDEPARTAMENTOS DURANTESEPTIEMBRE ,OSPASOSASEGUIRSON (ACER35-← 2EPETIRCON*DESDEHASTA (ACER35-←35-#/3;n * =
54
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4
%JEMPLO
3UPONGAMOSQUESETIENEALMACENADOELARREGLOBIDIMENSIONAL!; =ENDOSARRE GLOSUNIDIMENSIONALESDIFERENTES%LPRIMEROORDENADOPORRENGLONESAPARTIRDELAPO SICIØN YELSEGUNDOORDENADOPORCOLUMNASAPARTIRDELAPOSICIØN#ONSIDERELOS SIGUIENTESCASOS A 3ENECESITAOBTENERLAPOSICIØNDELELEMENTO!; =ENELARREGLOUNIDIMENSIONAL ORDENADOPORRENGLONES 3EPROCEDEDEESTAFORMA ,/# ! ; =
0/3).)
N I J
B 3ENECESITAOBTENERLAPOSICIØNDELELEMENTO!; =ENELARREGLOUNIDIMENSIONAL ORDENADOPORCOLUMNAS ,/# ! ; = 0/3).) M J I
!22%',/3$%-3$%$/3$)-%.3)/.%3 ,OSLENGUAJESDEPROGRAMACIØNDEALTONIVELALMACENANUNARREGLO!DE.DIMENSIO NES SIENDO.Y PORTANTO DEM§M§§MNELEMENTOS MEDIANTEUNBLOQUEDE M§M§§MNPOSICIONESSUCESIVAS%STAREPRESENTACIØN ALIGUALQUEENELCASODE ARREGLOSBIDIMENSIONALES SEPUEDEREALIZARDEDOSFORMASDIFERENTESRENGLØNARENGLØN LLAMADATAMBIÏNORDENACIØNPORRENGLONES YCOLUMNAACOLUMNA LLAMADATAMBIÏN ORDENACIØNPORCOLUMNAS 3EA!UNARREGLOTRIDIMENSIONALDE§§ELEMENTOSlGA 3UREPRESEN TACIØN EN UN ARREGLO UNIDIMENSIONAL ORDENADO POR RENGLONES PUEDE OBSERVARSE EN LA lGURAB MIENTRASQUELAQUECORRESPONDEAUNARREGLOUNIDIMENSIONALORDENADOPOR COLUMNASSEOBSERVAENLAlGURAC 5NAVEZALMACENADOSLOSVALORESDEMANERALINEAL SEREQUIERECALCULARLAPOSICIØN DECUALESQUIERADELOSELEMENTOSGUARDADOSENELARREGLOUNIDIMENSIONAL0ARAELLOSE NECESITAPRIMEROOBTENERLOSÓNDICES+I LOSTAMA×OSDELASDIMENSIONES4I YLOSÓNDI CESEFECTIVOS)%I CORRESPONDIENTES#ABEACLARARQUEUNÓNDICEEFECTIVO)%I SECALCULA COMOLADIFERENCIADELÓNDICE+ICORRESPONDIENTEYELLÓMITEINFERIORDELADIMENSIØNI DONDEIVARÓADESDEHASTA. SIENDO.ELNÞMERODEDIMENSIONESDELARREGLOMULTIDI MENSIONAL ,AFORMADELOCALIZARUNELEMENTODETERMINADOENUNARREGLOORDENADOPORRENGLO NESES ¥ ¨ N ·´ ,/# ¦ ! © KI ¸µ 0/3).) § ª I ¹¶
)% 4 )% 4 x )%
N
4N )%N
▼ &ØRMULA
"33&(-04%&.Ç4%&%04%*.&/4*0/&4
55
&)'52! 2EPRESENTACIØNLINEALDE ARREGLOSDEMÉSDEDOS DIMENSIONES B !RREGLOTRI DIMENSIONALC /RDENACIØN PORRENGLONESENUNARREGLO UNIDIMENSIONALD /RDE NACIØNPORCOLUMNASENUN ARREGLOUNIDIMENSIONAL
3UPONGAMOSQUESEDESEALOCALIZARELELEMENTO!; =DELARREGLOPRESENTADO ENLAlGURAA%NPRIMERLUGAR SEREALIZANLOSSIGUIENTESCÈLCULOSPARAOBTENERLOS4I YLOS)%I 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn ,UEGOSEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNCORRESPONDIENTEDELELEMEN TOENUNARREGLOUNIDIMENSIONALORDENADOPORRENGLONES3EPROCEDEASÓ ,/#!; = 0ARACALCULARLAPOSICIØNDELELEMENTO!; =SEREALIZANLASSIGUIENTESOPERACIO NESPARAOBTENERLOS4ISEUSANLOSGENERADOSENELCASOANTERIORYLOS)%I
56
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 4 )%+nLÓMINFn 4 )%+nLÓMINFn 4 )%+nLÓMINFn YLUEGOSEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNREQUERIDA ,/#!; = !HORABIEN SIELARREGLOSEENCUENTRAALMACENADOPORCOLUMNAS LAFORMADELOCA LIZARUNELEMENTOES ¥ ¨ N ·´ ,/# ¦ ! © KI ¸µ 0/3).) § ª I ¹¶
)%
▼ &ØRMULA
4 )%
4 )%
4 x )%
4 )% N N N N
3UPONGAMOSQUESEDESEAENCONTRARELELEMENTO!; =DELARREGLOPRESENTADO ENLAlGURAA3ETIENENQUECALCULARPRIMEROLOS4ISEUSANLOSGENERADOSANTERIOR MENTEYLOS)%ICORRESPONDIENTES 4 )%+nLÓMINFn 4 )%+nLÓMINFn 4 )%+nLÓMINFn YPOSTERIORMENTESEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNDELELEMENTO!; = ENUNARREGLOUNIDIMENSIONALORDENADOPORCOLUMNAS ,/#!; = 3ISEQUIERECALCULARLAPOSICIØNDELELEMENTO!; = SEREALIZANLASSIGUIENTES OPERACIONESPARAOBTENERLOS4ISEUSANLOSGENERADOSANTERIORMENTEYLOS)%I 4 )%+nLÓMINFn 4 )%+nLÓMINFn 4 )%+nLÓMINFn YLUEGOSEAPLICALAFØRMULAPARAOBTENERLAPOSICIØNREQUERIDA ,/#!; =
%JEMPLO
#ONSIDEREELARREGLOTRIDIMENSIONAL#/34/3DE§§ CORRESPONDIENTEALOSCOS TOS DE PRODUCCIØN MENSUALES EN TRES DEPARTAMENTOS DULCES CONSERVAS Y BEBIDAS DE UNAFÈBRICA ENLOSÞLTIMOSCINCOA×OS DESDEHASTA#ONSIDERETAMBIÏNQUE AQUÏLSEENCUENTRAORDENADOPORRENGLONESAPARTIRDELAPRIMERAPOSICIØNENUNARREGLO UNIDIMENSIONALLLAMADO#/3!NALICELOSSIGUIENTESCASOS A 3ENECESITALAPOSICIØNENELARREGLO#/3DONDESEENCUENTRAELCOSTODEPRODUCCIØN DELDEPARTAMENTODEBEBIDAS DURANTEAGOSTOYDURANTEELA×ODE
"33&(-04%&.Ç4%&%04%*.&/4*0/&4
57
3EOBTIENENLOS4IYLOS)%ICORRESPONDIENTES 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn YLUEGOSEPROCEDEDELASIGUIENTEFORMA ,/##/34/3; = B 3ENECESITAELCOSTODEPRODUCCIØNDELDEPARTAMENTODECONSERVAS DURANTE 3EOBTIENENLOS4ISEUSANLOSGENERADOSENELINCISOA YLOS)%ICORRES PONDIENTES 4 )%DESDEHASTA 4 )%+nLIMINFn 4 )%+nLIMINFn YLUEGOSEREALIZANLOSSIGUIENTESPASOS (ACER35-← 2EPETIRCON)DESDEHASTA (ACER35-←35-#/3;) = C 3ENECESITAELCOSTOTOTALDEPRODUCCIØNDELOSTRESDEPARTAMENTOS DURANTESEPTIEM BREDE 3EOBTIENENLOS4ISEUSANLOSGENERADOSENELINCISOA YLOS)%ICORRES PONDIENTES 4 )%+nLÓMINFn 4 )%)DESDEHASTA 4 )%+nLÓMINFn YLUEGOSEAPLICANLOSSIGUIENTESPASOS (ACER35-← 2EPETIRCON)DESDEHASTA (ACER35-←35-#/3; ) = D 3E NECESITA EL COSTO TOTAL DE PRODUCCIØN DE LOS TRES DEPARTAMENTOS DURANTE TODO 3EOBTIENENLOS4ISEUSANLOSGENERADOSENELINCISOA YLOS)%ICORRES PONDIENTES
58
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 4 )%)DESDEHASTA 4 )%*DESDEHASTA 4 )%+nLÓMINFn YLUEGOSEAPLICANLOSSIGUIENTESPASOS (ACER35-← 2EPETIRCON)DESDEHASTA 2EPETIRCON*DESDEHASTA (ACER35-←35-#/3;) *= =
%JEMPLO
3UPONGAMOS QUE SE TIENE ALMACENADO EL ARREGLO DE CUATRO DIMENSIONES !; L =ENDOSARREGLOSUNIDIMENSIONALESDIFERENTES%LPRIMEROORDENADOPORREN GLONESAPARTIRDELAPOSICIØNYELSEGUNDOPORCOLUMNASAPARTIRDELAPOSICIØN #ONSIDERELOSSIGUIENTESCASOS A 3ENECESITALAPOSICIØNDELELEMENTO!; =ENELARREGLOUNIDIMENSIONALOR DENADOPORRENGLONES 0RIMEROSEOBTIENENLOS4IYLOS)%ICORRESPONDIENTES 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn 4LÓMSUPnLÓMINFn
)%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn YLUEGOSEPROCEDEDEESTAMANERA ,/#!; = B 3E NECESITA LA POSICIØN DEL ELEMENTO !; = EN EL ARREGLO UNIDIMENSIONAL ORDENADOPORCOLUMNAS 0RIMEROSEOBTIENENLOS4ISEUSANLOSGENERADOSENELINCISOA YLOS)%I CORRESPONDIENTES 4 4 4 4
)%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn )%+nLÓMINFn
YLUEGOSEPROCEDEASÓ ,/#!; n =
."53*$&410$0%&/4"4
59
-!42)#%30/#/$%.3!3 -ATRIZREPRESENTAUNTÏRMINOMATEMÈTICOQUESEUTILIZAPARAINDICARUNCONJUNTODEELE MENTOSORGANIZADOSPORMEDIODERENGLONESYCOLUMNAS%SEQUIVALENTEALTÏRMINOARRE GLOBIDIMENSIONALUTILIZADOENCOMPUTACIØN%STETÏRMINOSEEMPLEAENESTASECCIØN FUNDAMENTALMENTE PORQUE A LOS ARREGLOS BIDIMENSIONALES POCO DENSOS SE LES CONOCE MUCHOMÈSCOMOMATRICESPOCODENSAS 0OCODENSOÓNDICAPROPORCIØNMUYALTADECEROSENTRELOSELEMENTOSDELAMATRIZ /BSERVELAMATRIZ!DE§ELEMENTOSDELAlGURA %SFÈCILDARSECUENTADEQUEESTAMATRIZTIENEGRANCANTIDADDECEROS3IENDOPRECI SOS DESUSELEMENTOSSONCEROS0IENSEELLECTORQUÏOCURRIRÓASIENLUGARDETENER UNAMATRIZDE§SETUVIERAUNAMATRIZDE§YLAMAYORÓADESUSELEMENTOS FUERANIGUALESACERO#ONELPORCENTAJEANTERIORYPARAESTECASOENPARTICULAR SETEN DRÓANELEMENTOSIGUALESACERO 5NA SITUACIØN COMO ÏSTA EXIGE QUE SE HAGA UN USO MÈS ElCIENTE DEL ESPACIO DE MEMORIA#ONESEPROPØSITOEXISTENDIVERSOSMÏTODOSPARAALMACENARSØLOLOSVALORES DIFERENTESDECERODEUNAMATRIZPOCODENSA!CONTINUACIØNPRESENTAMOSDOSDELOS MÈSUSADOS
!RREGLODEREGISTROS 3EUTILIZAUNARREGLOUNIDIMENSIONAL DONDECADAELEMENTOREPRESENTAUNREGISTROFOR MADOPORTRESCAMPOSUNOPARAGUARDARELRENGLØNDONDESEENCONTRØELVALORDIFERENTE DECEROOTROPARAGUARDARLACOLUMNA YELTERCEROPARAGUARDARELVALORDELELEMENTO DISTINTODECERODELAMATRIZ %NLATABLASEMUESTRALAFORMADEALMACENARLOSELEMENTOSDELAMATRIZPOCO DENSAQUESEOBSERVAENLAlGURA 4!",!
&)'52! -ATRIZDE
2ENGLØN
#OLUMNA
6ALOR
60
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 %S PERTINENTE ACLARAR QUE PUEDE RESULTAR MUY CONVENIENTE ALMACENAR EL TOTAL DE RENGLONESYDECOLUMNASDELAMATRIZORIGINAL !CONTINUACIØNSEPRESENTAUNALGORITMOMUYSIMPLEQUEALMACENAENUNARREGLO UNIDIMENSIONALLOSELEMENTOSDISTINTOSDECERODEUNAMATRIZPOCODENSA !LGORITMO !LMACENA?MATRIZ?POCO?DENSA
!LMACENA?MATRIZ?POCO?DENSA-!4 [%LALGORITMOALMACENALOSELEMENTOSDISTINTOSDECERODEUNAMATRIZPOCODENSAENUNARREGLO UNIDIMENSIONAL -!4 CONSTITUYE UN ARREGLO UNIDIMENSIONAL DE REGISTROS ,OS CAMPOS DEL REGISTROSON2%.',». #/,5-.!Y6!,/2] [&) #/ ) *Y+SONVARIABLESDETIPOENTERO6!,ESUNAVARIABLEDETIPOREAL] ,EERELNÞMERODERENGLONESYDECOLUMNASDELAMATRIZ&)Y#/ (ACER-!4;=2%.',».←&) -!4;=#/,5-.!←#/Y+← 2EPETIRCON)DESDEHASTA&) 2EPETIRCON*DESDEHASTA#/ ,EERINFORMACIØN6!, 3I6!,≠ ENTONCES (ACER-!4;+=2%.',».←) -!4;+=#/,5-.!←* -!4;+=6!,/2←6!,←Y+←+ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO] (ACER-!4;=6!,/2←+n [%N-!4;=2%.',».Y-!4;=#/,5-.!QUEDANALMACENADOSELNÞMERODERENGLONES YDECOLUMNAS RESPECTIVAMENTE DELAMATRIZ%N-!4;=6!,/2QUEDAALMACENADOELTOTAL DEELEMENTOSDIFERENTESDECERODELAMATRIZ]
!RREGLODELISTAS 3ESUGIEREQUEANTESDEESTUDIARESTEMÏTODOUSADOPARAELALMACENAMIENTODEMATRICES POCODENSASCONSULTEELCAPÓTULO ,AREPRESENTACIØNDELAMATRIZPOCODENSASEREALIZAPORMEDIODEUNARREGLODE LISTAS%SDECIR ENELELEMENTOIDEUNARREGLOUNIDIMENSIONALSETIENEUNREGISTROQUE ALMACENAENUNODESUSCAMPOSELTOTALDEELEMENTOSDIFERENTESDECEROENCONTRADOSEN ELRENGLØNIDELAMATRIZ YENOTROCAMPOLADIRECCIØNALPRIMERNODODEUNALISTA#ADA NODODELALISTAALMACENARÈLACOLUMNADELAMATRIZENLAQUESEENCUENTRAELVALORDIFE RENTEDECERO ELPROPIOVALORYLADIRECCIØNALSIGUIENTENODODELALISTA
."53*$&410$0%&/4"4
61
&)'52! !RREGLODELISTAS
%NLAlGURASEPRESENTAUNESQUEMADEESTAESTRUCTURADEDATOSQUESEAPLICAA LAMATRIZPOCODENSADELAlGURA
-ATRICESCUADRADASPOCODENSAS ,ASMATRICESCUADRADASSONAQUELLASQUETIENENIGUALNÞMERODERENGLONESYDECO LUMNAS3IADEMÈSESTASMATRICESTIENENUNAPROPORCIØNMUYALTADECEROS SEDENOMI NANPOCODENSAS 0OROTRAPARTE LASMATRICESCUADRADASENLASQUELOSELEMENTOSQUESEENCUENTRAN ARRIBAODEBAJODELADIAGONALPRINCIPALSONIGUALESACERO SELLAMANMATRICESTRIANGU LARES²STAS SEGÞNLAUBICACIØNDELOSCEROS SECLASIlCANENMATRIZTRIANGULARINFERIOR SILOSELEMENTOSIGUALESACEROSEENCUENTRANSOBRELADIAGONALPRINCIPALlGA YEN MATRIZTRIANGULARSUPERIORSILOSELEMENTOSIGUALESACEROSEENCUENTRANDEBAJODELA DIAGONALPRINCIPALlGB
-ATRIZTRIANGULARINFERIOR 3UPONGAMOSQUESEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"lG LAMATRIZ TRIANGULARINFERIORDELAlGURAA %SFÈCILOBSERVARQUEELARREGLO"TENDRÈ N &)'52! -ATRICESCUADRADASPOCO DENSASA -ATRIZTRIANGULAR INFERIORB -ATRIZTRIANGULAR SUPERIOR
62
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4
&)'52! !LMACENAMIENTODEUNA MATRIZTRIANGULARINFERIOREN UNARREGLOUNIDIMENSIONAL
ELEMENTOS QUEESIGUALA N N PORELPRINCIPIODEINDUCCIØNMATEMÈTICA#ABESE×ALARQUEENLOQUERESTADEESTECAPÓ TULO ASÓCOMOENLOSSIGUIENTES SEHARÈUSODEESTEPRINCIPIO !SUMIENDOQUELOSELEMENTOSDELAMATRIZTRIANGULARINFERIORFUERONALMACENADOS ENUNARREGLOUNIDIMENSIONAL SEREQUIEREENCONTRARUNAFØRMULAQUEPERMITALOCALIZARA CADAUNODEELLOS%NPRIMERLUGAR SEDEBECONSIDERARA0/3).) QUEINDICALAPOSICIØN APARTIRDELACUALSEENCUENTRAALMACENADOELARREGLOPRIMERTÏRMINODELAFØRMULA %NGENERAL PARALLEGARACUALQUIERRENGLØNISEDEBENCONTABILIZARLOSELEMENTOSCORRES PONDIENTESAIn RENGLONES3EDEBETENERENCUENTAENTONCES In ELEMENTOS LOQUEESIGUALA
I I
SEGUNDOTÏRMINODELAFØRMULA
5NAVEZENELRENGLØNIDESEADO SEDEBENCONTABILIZARLOSJn ELEMENTOSNECE SARIOSPARALLEGARALACOLUMNAJTERCERTÏRMINODELAFØRMULA,ASUMADELOSTRES TÏRMINOSDETERMINALALOCALIZACIØNDELELEMENTOI JDELAMATRIZTRIANGULARINFERIOR EN UNARREGLOUNIDIMENSIONAL,AFØRMULAES ,/# ! ; I J = 0/3).)
I I
J
▼ &ØRMULA
!SÓ POREJEMPLO SISEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLO PRESENTADO EN LA lGURA A ALMACENADO EN UN ARREGLO UNIDIMENSIONAL APLICANDO LA FØRMULASETIENE ,/# ! ; = 3I ENCAMBIO SEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLOPRE SENTADOENLAlGURAA ALAPLICARLAFØRMULASETIENE ,/# ! ; =
."53*$&410$0%&/4"4
63
-ATRIZTRIANGULARSUPERIOR 0ARAELCASODELAMATRIZTRIANGULARSUPERIORDELAlGURAB SISEALMACENAENUNARRE GLOUNIDIMENSIONAL"lG ÏSTETENDRÈ N ELEMENTOS QUEESIGUALA N N 3E REQUIERE ENTONCES DE UNA FØRMULA PARA LOCALIZAR LA POSICIØN DE UN ELEMENTO DEUNAMATRIZTRIANGULARSUPERIOR ENUNARREGLOUNIDIMENSIONAL!DIFERENCIADELCASO ANTERIORMATRIZTRIANGULARINFERIOR ELPROCESOESMÈSCOMPLICADO %NPRIMERLUGAR SEDEBECONSIDERARA0/3).) QUEREPRESENTALAPOSICIØNAPARTIR DELACUALSEENCUENTRAALMACENADOELARREGLOPRIMERTÏRMINODELAFØRMULA%N SEGUNDOLUGAR SEDEBENCONTABILIZARLOSELEMENTOSNECESARIOSPARALLEGARAUNRENGLØN ICUALQUIERA ESTOES LOSELEMENTOSCORRESPONDIENTESALOSIn RENGLONESANTERIORES AI%STECÈLCULOSEPUEDEREALIZARENDOSPARTES0RIMEROSECONTABILIZANLOSELEMENTOS CORRESPONDIENTESAIn RENGLONESCOMPLETOSN In YLUEGOSERESTANAESTE RESULTADOLOSQUESONCEROSENLOSIn RENGLONESANTERIORESAI 3I I→TENEMOSCEROSENLOSRENGLONESANTERIORES I→TENEMOSCEROSENLOSRENGLONESANTERIORES I→TENEMOSCEROENLOSRENGLONESANTERIORES I→TENEMOSCEROSENLOSRENGLONESANTERIORES %NGENERAL PODEMOSAlRMARQUEPARAIn RENGLONESSETIENEN In CEROS QUEESIGUALA
I I ,AEXPRESIØNOBTENIDAENLAPRIMERAPARTEMENOSLAFØRMULAOBTENIDAENLASEGUNDA DACOMORESULTADOELSEGUNDOTÏRMINODELAFØRMULA
&)'52! !LMACENAMIENTODEUNA MATRIZTRIANGULARSUPERIOR ENUNARREGLOUNIDIMEN SIONAL
64
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4
N I
I I
0OR ÞLTIMO Y UNA VEZ EN EL RENGLØN I DESEADO SE DEBEN CONTABILIZAR LOS J n I ELEMENTOSNECESARIOSPARALLEGARALACOLUMNAJTERCERTÏRMINODELAFØRMULA,A SUMADELOSTRESTÏRMINOSINDICALALOCALIZACIØNDELELEMENTOI JDELAMATRIZTRIANGULAR SUPERIOR ENUNARREGLOUNIDIMENSIONAL,AFØRMULAESLASIGUIENTE ¥ I I ´ ,/# ! ; I J = 0/3).) ¦ N I µ¶ J I §
▼ &ØRMULA
!SÓ POREJEMPLO SISEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; = DELARREGLO PRESENTADOENLAlGURAB ENUNARREGLOUNIDIMENSIONAL SEREALIZALOSIGUIENTE ¥ ´ ,/# ; = ¦ µ¶ § 3I ENCAMBIO SEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLOPRE SENTADOENLAlGURAB ¥ ´ ,/# ! ; = ¦ µ¶ §
%JEMPLO
3UPONGAMOSQUESETIENEUNAMATRIZTRIANGULARINFERIOR!CONLASIGUIENTEDIMENSIØN !; = ALMACENADA EN UN ARREGLO UNIDIMENSIONAL " A PARTIR DE LA POSICIØN !NALICELOSSIGUIENTESCASOS A 3E NECESITA LA POSICIØN DONDE SE ENCUENTRA ALMACENADO EL ELEMENTO !; = 3E PROCEDEDEESTAFORMA ,/# ! ; =
B 3ENECESITALAPOSICIØNDELELEMENTO!; =3EPROCEDEASÓ ,/# ! ; =
%JEMPLO
3UPONGAMOSQUESETIENEUNAMATRIZTRIANGULARSUPERIOR!CONLASIGUIENTEDIMENSIØN !; = ALMACENADAENUNARREGLOUNIDIMENSIONAL"APARTIRDELAPOSICIØN !NALICELOSSIGUIENTESCASOS
."53*$&410$0%&/4"4
65
A 3ENECESITALAPOSICIØNDELELEMENTO!; =3EPROCEDEDEESTAFORMA
´ ¥ ,/# ! ; = ¦ µ¶ § B 3E NECESITA LA POSICIØN DONDE SE ENCUENTRA ALMACENADO EL ELEMENTO !; = 3E PROCEDEASÓ ¥ ´ ,/# ! ; = ¦ µ¶ §
-ATRIZTRIDIAGONAL 3EDICEQUEUNAMATRIZESTRIDIAGONALSILOSELEMENTOSDISTINTOSDECEROSEENCUENTRAN LOCALIZADOSENLADIAGONALPRINCIPALYENLASDIAGONALESPORENCIMAYPORDEBAJODEÏSTA 0ORTANTO ELVALORABSOLUTODELÓNDICEIMENOSELÓNDICEJSERÈMENOROIGUALQUE%NLA lGURAELLECTORPUEDEOBSERVARUNAMATRIZTRIDIAGONAL 3UPONGAMOSQUESEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"lGURA LA MATRIZTRIDIAGONALPRESENTADAANTERIORMENTE %SFÈCILOBSERVARQUEELARREGLO!TIENENELEMENTOSENLADIAGONALPRINCIPALYN n ELEMENTOSENLASDIAGONALESPORENCIMAYDEBAJODEÏSTA0ORTANTO ELNÞMERODE ELEMENTOSDEUNAMATRIZTRIDIAGONALSECALCULACOMO N Nn !LHACERLASOPERACIONESQUEDA Nn #ONELPROPØSITODELOCALIZARLAPOSICIØNDEUNELEMENTODELAMATRIZTRIDIAGONAL ALMACENADAENUNARREGLOUNIDIMENSIONAL SEREQUIEREDEUNAFØRMULA%NPRIMERLUGAR SEDEBECONSIDERARA0/3).) QUEINDICALAPOSICIØNINICIAL APARTIRDELACUALSEEN CUENTRAALMACENADOELARREGLOPRIMERTÏRMINODELAFØRMULA%NSEGUNDOLUGAR SE DEBENCONTABILIZARLOSELEMENTOSNECESARIOSPARALLEGARAUNRENGLØNICUALQUIERAESTO ES LOSELEMENTOSCORRESPONDIENTESALOSIn RENGLONESANTERIORES3ECALCULACOMOLA SUMADELOSELEMENTOSDELAPRIMERAlLA MÈSTRESELEMENTOSPORIn RENGLONES 0ORTANTO ELSEGUNDOTÏRMINODELAFØRMULAES In
&)'52! -ATRIZTRIDIAGONAL
66
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4
&)'52! !LMACENAMIENTODEUNA MATRIZTRIDIAGONALENUN ARREGLOUNIDIMENSIONAL
0ORÞLTIMO YUNAVEZENELRENGLØNIDESEADO SEDEBENCONTABILIZARLOSELEMENTOS CORRESPONDIENTESALASCOLUMNAS#ONESTElNSESIGUEELSIGUIENTECRITERIO IJ→NOSETIENEQUECONTABILIZARNINGÞNELEMENTO IJ→SEDEBECONTABILIZARUNELEMENTO IJ→SETIENENQUECONTABILIZARDOSELEMENTOS #ONLOCUALSEOBTIENELASIGUIENTEEXPRESIØN JnI TERCERTÏRMINODELAFØRMULA /BSERVEQUEESTAEXPRESIØNCONTEMPLALOSTRESCASOSENUNCIADOS3I IJ ALOSUMOLOSERÈENUNAUNIDADPORTANTO LAEXPRESIØNDACEROELEMENTOS IJ LOSMISMOSSEANULAN QUEDANDOUNELEMENTO IJ ALOSUMOLOSERÈENUNAUNIDADPORTANTO LAEXPRESIØNDADOSELEMENTOS .UEVAMENTELASUMADELOSTRESTÏRMINOSDALALOCALIZACIØNDELELEMENTOI JDELA MATRIZTRIDIAGONALENUNARREGLOUNIDIMENSIONAL0ORTANTO ,/#!;I J= 0/3).) In JnI OPERANDOQUEDA
,/#!;I J= 0/3).)IJn
▼ &ØRMULA
!SÓ POREJEMPLO SISEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; = DELARREGLO PRESENTADOENLAlGURA ENUNARREGLOUNIDIMENSIONALSEHACE ,/#!; = n 3I ENCAMBIO SEDESEALOCALIZARLAPOSICIØNDELELEMENTO!; =DELARREGLOPRE SENTADOENLAMISMAlGURA SEHACE ,/#!; = n 3EDEBETENERENCUENTA ADEMÈS QUESIELRENGLØNQUESEEVALÞAESIGUALA SE PUEDEAPLICARLASIGUIENTEFØRMULA
."53*$&410$0%&/4"4
¥ ´ ,/# ¦ ! ¨©I J ·¸µ J § ª I ¹¶
67
▼ &ØRMULA
%S IMPORTANTE ACLARAR QUE LA FØRMULA ANTERIOR AUNQUE UN POCO MÈS LARGA TAMBIÏNFUNCIONAPARAESTECASO
%JEMPLO
3UPONGAMOSQUESETIENEUNAMATRIZTRIDIAGONAL!CONLADIMENSIØN!; = AL MACENADAENUNARREGLOUNIDIMENSIONAL"APARTIRDELAPOSICIØN!NALICEMOSLOS SIGUIENTESCASOS A 3ENECESITALAPOSICIØNDONDESEENCUENTRAELELEMENTO!; =3EPROCEDEASÓ ,/#; = n B 3ISENECESITALAPOSICIØNDONDESEENCUENTRAELELEMENTO!; = SEPROCEDEDEESTA FORMA ,/#; = n
-ATRICESSIMÏTRICASYANTISIMÏTRICAS 5NAMATRIZ!DEN§NELEMENTOSESSIMÏTRICASI!;I J=ESIGUALA!;J I= YESTOÞLTIMOSE CUMPLEPARATODOIYPARATODOJ%NLAlGURASEPRESENTANDOSEJEMPLOSDEMATRICES SIMÏTRICAS 0OROTRAPARTE UNAMATRIZ!DEN§NELEMENTOSESANTISIMÏTRICASI!;I J=ESIGUAL An!;J I= YLOANTERIORSECUMPLEPARATODOIYPARATODOJCONSIDERANDOAI≠J%NLA lGURASEOBSERVANDOSEJEMPLOSDEMATRICESANTISIMÏTRICAS 3UPONGAMOSAHORAQUESEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"LAMA TRIZSIMÏTRICADELAlGURAA%STOÞLTIMOSEPUEDEHACERALALMACENARÞNICAMENTE LOSELEMENTOSDELAMATRIZTRIANGULARINFERIOROSUPERIOR%NLAlGURASEPRESENTAUN ARREGLOUNIDIMENSIONAL"QUEALMACENALAMATRIZTRIANGULARINFERIORDELAMATRIZSIMÏ TRICAMOSTRADAENLAlGURAA 0ARALOCALIZARCUALQUIERELEMENTODELAMATRIZSIMÏTRICASEDEBEAPLICARLAFØRMULA PRESENTADAANTERIORMENTE PARAMATRIZTRIANGULARINFERIOR#ABEACLARARQUESIENUN &)'52! -ATRICESSIMÏTRICAS B -ATRIZSIMÏTRICA DE C -ATRIZSIMÏTRICA DE
68
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4
&)'52! -ATRICESANTISIMÏTRICAS B -ATRIZANTISIMÏTRICA DE C -ATRIZANTISIMÏTRICA DE
DETERMINADOMOMENTOSENECESITARALOCALIZARUNELEMENTODELAMATRIZSIMÏTRICATALQUE ELÓNDICEJSEAMAYORQUEELÓNDICEI SENECESITARÓANINVERTIRLOSMISMOSYAPLICARPOSTE RIORMENTELAMISMAFØRMULA0OREJEMPLO SISEDESEALOCALIZARELELEMENTO!; = SE TENDRÈQUEBUSCARELELEMENTO!; = 3IAHORASEDESEAALMACENARENUNARREGLOUNIDIMENSIONAL"LOSELEMENTOSDELA MATRIZANTISIMÏTRICADELAlGURAA SEPROCEDEDEMANERASIMILARQUEENELCASOAN TERIOR3EALMACENANENUNARREGLOUNIDIMENSIONALSOLAMENTELOSELEMENTOSDELAMATRIZ TRIANGULARINFERIOROSUPERIOR%NLAlGURASEPRESENTAUNARREGLOUNIDIMENSIONAL" QUEALMACENALAMATRIZTRIANGULARSUPERIORDELAMATRIZANTISIMÏTRICADELAlGURAA 0ARALOCALIZAR ENESTECASO UNELEMENTODELAMATRIZANTISIMÏTRICA SEDEBEAPLICAR LAFØRMULAPARAMATRIZTRIANGULARSUPERIOR%SIMPORTANTESE×ALARQUESISETUVIERA QUELOCALIZARUNELEMENTODELAMATRIZANTISIMÏTRICA TALQUEELÓNDICEISEAMAYORQUEEL ÓNDICEJ SENECESITARÓAINVERTIRLOSMISMOSYAPLICARLAMISMAFØRMULA0OSTERIORMENTE ELCONTENIDODELACELDAI JSEDEBEMULTIPLICARPORn0OREJEMPLO SINOSINTERESALOCA LIZARELELEMENTO!; = SEBUSCARÈLAPOSICIØNDELELEMENTO!; =YELCONTENIDODE DICHAPOSICIØNSEMULTIPLICARÈPORn
&)'52! !LMACENAMIENTODEUNA MATRIZSIMÏTRICAENUN ARREGLOUNIDIMENSIONAL
&)'52! !LMACENAMIENTODEUNA MATRIZANTISIMÏTRICAENUN ARREGLOUNIDIMENSIONAL
&+&3$*$*04
69
▼ %*%2#)#)/3 !RREGLOSMULTIDIMENSIONALES Ê £° #ONSIDEREQUEELARREGLOBIDIMENSIONAL!; =SEENCUENTRAALMACENADOREN GLØNPORRENGLØNENELARREGLOUNIDIMENSIONAL6%# APARTIRDELAPOSICIØN#ON SIDERE ADEMÈS QUE EL ARREGLO BIDIMENSIONAL "; = TAMBIÏN SE ENCUENTRA ALMACENADOENELARREGLO6%# COLUMNAACOLUMNA APARTIRDELAPOSICIØN #ALCULELOSIGUIENTE A B C D
,APOSICIØNDELELEMENTO!; =ENELARREGLO6%# ,APOSICIØNDELELEMENTO!; =ENELARREGLO6%# ,APOSICIØNDELELEMENTO"; =ENELARREGLO6%# ,APOSICIØNDELELEMENTO"; =ENELARREGLO6%#
Ê Ó° #ONSIDERE LOS ARREGLOS MULTIDIMENSIONALES !- Y "- DECLARADOS DE LA SIGUIENTE FORMA !-; =Y"-; = !-ESTÈALMACENADORENGLØNPORRENGLØNENELARREGLOUNIDIMENSIONAL6%!- A PARTIRDELAPRIMERAPOSICIØN"-ESTÈALMACENADO COLUMNAACOLUMNA ENELARRE GLOUNIDIMENSIONAL6%"- APARTIRDELAPOSICIØN#ALCULELOSIGUIENTE A B C D
,APOSICIØNDELELEMENTO!-; =ENELARREGLO6%!- ,APOSICIØNDELELEMENTO!-; =ENELARREGLO6%!- ,APOSICIØNDELELEMENTO"-; =ENELARREGLO6%"- ,APOSICIØNDELELEMENTO"-; =ENELARREGLO6%"-
Ê Î° #ONSIDEREMOSQUELOSARREGLOSBIDIMENSIONALES!Y"DEM§NELEMENTOSSEEN CUENTRANALMACENADOSENUNARREGLOUNIDIMENSIONAL6%#DE§M§NELEMENTOS !ESTÈALMACENADORENGLØNPORRENGLØNAPARTIRDELAPRIMERAPOSICIØN"ESTÈALMA CENADOCOLUMNAACOLUMNAAPARTIRDELAPOSICIØNM N %SCRIBAUNPROGRAMA QUEREALICELOSIGUIENTE A /BTENGALASUMADELOSARREGLOSBIDIMENSIONALESALMACENADOSEN6%#YALMACÏNE LAENELARREGLOUNIDIMENSIONAL35- ORDENADOPORRENGLONES APARTIRDELAPRIMERA POSICIØN B )MPRIMAELRESULTADODELASUMA ALMACENADOEN35- ENFORMADEMATRIZ Ê {° 3EANLOSARREGLOSBIDIMENSIONALES!Y"DEM§NYN§PELEMENTOS RESPECTIVA MENTE AMBOSALMACENADOSENUNARREGLOUNIDIMENSIONAL6%#!ESTÈALMACENADO RENGLØNPORRENGLØNAPARTIRDELAPOSICIØNY"TAMBIÏNSEENCUENTRAORDENADOPOR RENGLONESAPARTIRDELAPOSICIØNM N %SCRIBAUNPROCEDIMIENTOQUEREALICE LOSIGUIENTE
70
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 A /BTENGAELPRODUCTODELOSARREGLOSBIDIMENSIONALES!Y"ALMACENADOSEN6%#Y GUARDEELRESULTADOENELMISMOARREGLO COLUMNAACOLUMNA APARTIRDELAPOSICIØN M N N P B )MPRIMAELRESULTADODELPRODUCTO ALMACENADOEN6%# ENFORMADEMATRIZ Ê x° 3EA#!,UNARREGLOBIDIMENSIONALDE§CORRESPONDIENTEALASCALIlCACIONES DEALUMNOSENSEISEXÈMENESDIFERENTES#!,SEENCUENTRAALMACENADORENGLØN PORRENGLØN APARTIRDELAPOSICIØN ENELARREGLOUNIDIMENSIONAL5.)%SCRIBA UNPROCEDIMIENTOQUEOBTENGALOSIGUIENTE A %LPROMEDIODECALIlCACIONESDELOSALUMNOSENLOSSEISEXÈMENES B %LALUMNOQUEOBTUVOLAMAYORCALIlCACIØNENELTERCEREXAMEN/BSERVEQUEPUE DEHABERMÈSDEUNALUMNOCONLAMÈSALTACALIlCACIØN C %LEXAMENENELQUEELPROMEDIODELOSALUMNOSFUEELMÈSALTO Ê È° #ONSIDEREELARREGLOTRIDIMENSIONAL!42)DEM§N§PELEMENTOSALMACENADOS COLUMNAACOLUMNA ENELARREGLOUNIDIMENSIONAL!5.)APARTIRDELAPRIMERAPOSI CIØN%SCRIBAUNPROCEDIMIENTOQUEIMPRIMALOSIGUIENTE A %LRENGLØNYLACOLUMNADONDESEENCUENTRANELEMENTOSNULOSUSTEDDEBETRABAJAR CONELARREGLO!5.) B %LTOTALDEELEMENTOSNULOS C %LPORCENTAJEDEELEMENTOSNULOS CONRESPECTOALNÞMEROTOTALDEELEMENTOSDEL ARREGLOTRIDIMENSIONAL Ê Ç° ,OSELEMENTOSDEUNARREGLOBIDIMENSIONALDE§ELEMENTOSSEALMACENARON REN GLØNPORRENGLØN ENUNARREGLOUNIDIMENSIONAL!%SCRIBAUNSUBPROGRAMAQUE A )NTERCAMBIELOSELEMENTOSDELRENGLØNCONLOSDELRENGLØN.YLOSDELRENGLØN CONLOSDELRENGLØN.n YASÓSUCESIVAMENTE B )MPRIMAELARREGLORESULTANTE ENFORMADEMATRIZ
-ATRICESPOCODENSAS Ê n° 3EA6%#UNARREGLOUNIDIMENSIONALQUEALMACENALOSELEMENTOSDISTINTOSDECERO DEUNAMATRIZPOCODENSA!DECUATRORENGLONESYSEISCOLUMNAS#ADAELEMENTODEL ARREGLO6%#ESUNREGISTROQUECONTIENEELRENGLØN LACOLUMNAYELVALORDISTINTODE CERODELAMATRIZ%SCRIBASUBPROGRAMASQUEREALICENLOSIGUIENTE A $ETERMINEELVALORDELELEMENTOI JDELAMATRIZ4OMEENCUENTAQUELABÞSQUEDAA REALIZARENELARREGLO6%#DEBESERØPTIMA B )MPRIMALAMATRIZPOCODENSA! APARTIRDELARREGLO6%#
&+&3$*$*04
71
Ê ° 3UPONGAMOSQUEEXISTENDOSMATRICESPOCODENSAS!Y"DE§ELEMENTOS QUE TIENENALMACENADOSSUSVALORESDISTINTOSDECEROENLOSARREGLOSUNIDIMENSIONALES 6%#Y6%# RESPECTIVAMENTE%JEMPLO
%SCRIBAUNSUBPROGRAMAQUEOBTENGALASUMADEDICHASMATRICESPOCODENSAS UTI LIZANDOSOLAMENTELOSARREGLOS6%#Y6%# YALMACENEELRESULTADOCONSIDERE SOLAMENTELOSELEMENTOSDISTINTOSDECEROENELARREGLOUNIDIMENSIONAL6%# £ä°#ONSIDERELASMATRICESPOCODENSAS!Y" DECLARADASDELASIGUIENTEFORMA !; =Y"; = !SEENCUENTRAALMACENADAENELARREGLOUNIDIMENSIONAL6%#Y"ENELARREGLO UNIDIMENSIONAL6%# %SCRIBA UN SUBPROGRAMA QUE OBTENGA EL PRODUCTO DE ! Y "UTILIZANDOSOLAMENTELOSARREGLOS6%#Y6%#YALMACENEELRESULTADO COLUMNAACOLUMNA ENELARREGLOUNIDIMENSIONAL6%#
72
>«ÌÕÊÓÊ Ê Ê "33&(-04.6-5*%*.&/4*0/"-&43&13&4&/5"%04&/"33&(-046/*%*.&/4*0/"-&4 ££°3ETIENENLOSDATOSDELAPRODUCCIØNAGRÓCOLA PORTIPODECULTIVOENTOTAL DE LASENTIDADESDELPAÓS.OTODOSLOSESTADOSTIENENTODOSLOSCULTIVOS%NAQUELLOS CASOSENLOSCUALESUNESTADONOCULTIVACIERTOSPRODUCTOS HABRÈCEROSENLASPOSI CIONESCORRESPONDIENTES%SCRIBAUNPROGRAMAQUE A !LMACENELOSDATOSDIFERENTESDECERO ENUNARREGLOUNIDIMENSIONAL B %NCUENTREELESTADOQUEOBTUVOMAYORPRODUCCIØNAGRÓCOLA CONSIDERANDOTODOSLOS CULTIVOS C %NCUENTREELPRODUCTO SIEXISTIERA QUESECULTIVAENTODOSLOSESTADOS D %NCUENTREELESTADO SIEXISTIERA QUECULTIVATODOSLOSPRODUCTOS E %NCUENTREELESTADO SIEXISTIERA QUECULTIVASØLOLOSCULTIVOSDETIPOSY £Ó°,ASMATRICESCUADRADASPOCODENSAS!Y"DEORDENFUERONALMACENADASENEL ARREGLOUNIDIMENSIONAL5.)APARTIRDELAPRIMERAYDECIMOPRIMERAPOSICIØN EN FORMARESPECTIVA$ELAMATRIZ!SOLAMENTESEALMACENARONLOSELEMENTOSCORRES PONDIENTESALAMATRIZTRIANGULARINFERIOR$ELAMATRIZ" ENCAMBIO SEALMACENA RONSØLOLOSELEMENTOSDELAMATRIZTRIANGULARSUPERIOR%SCRIBAUNSUBPROGRAMAQUE SUMEDICHASMATRICESYALMACENEELRESULTADO COLUMNAACOLUMNA ENELARREGLO UNIDIMENSIONAL35-!APARTIRDELAPRIMERAPOSICIØN
-ATRICESSIMÏTRICASYANTISIMÏTRICAS £Î°,ASMATRICESSIMÏTRICAS!Y"DEDIMENSIØNFUERONALMACENADASENUNARREGLO UNIDIMENSIONAL6%# A PARTIR DE LAS POSICIONES Y RESPECTIVAMENTE 3ØLO SE ALMACENARONLOSELEMENTOSPERTENECIENTESALAMATRIZTRIANGULARINFERIOR%SCRIBA UN SUBPROGRAMA QUE SUME DICHAS MATRICES Y ALMACENE EL RESULTADO RENGLØN POR RENGLØN ENELARREGLO35-3)-APARTIRDELAPOSICIØN £{°,A MATRIZ SIMÏTRICA ! DE DIMENSIØN Y LA MATRIZ ANTISIMÏTRICA " DE LA MISMA DIMENSIØN FUERONALMACENADASENELARREGLOUNIDIMENSIONAL6%#APARTIRDELAS POSICIONESY RESPECTIVAMENTE$ELAMATRIZ!SOLAMENTESEALMACENARONLOS ELEMENTOSCORRESPONDIENTESALAMATRIZTRIANGULARINFERIOR$ELAMATRIZ"SØLOSE ALMACENARONLOSELEMENTOSDELAMATRIZTRIANGULARSUPERIOR%SCRIBAUNSUBPROGRA MAQUEOBTENGALASUMADEDICHASMATRICESYALMACENEELRESULTADO RENGLØNPOR RENGLØN ENELARREGLOUNIDIMENSIONAL35-!APARTIRDELAPRIMERAPOSICIØN £x°5NAPERSONATIENEQUEVIAJARDEUNACIUDADAOTRA VÓATERRESTRE ENLA2EPÞBLICA MEXICANAYDESEAREALIZARELRECORRIDOENELMENORTIEMPOPOSIBLE,OSDATOSREFE RENTESALOSTIEMPOSENTRECIUDADESSEENCUENTRANDADOSDELASIGUIENTEFORMA
&+&3$*$*04
73
0UEDESUCEDERQUEENTREDOSCIUDADESNOEXISTAUNACARRETERADIRECTAY PORTAN TO ELTIEMPOENTREAMBASSEAREPRESENTADOCOMO3INEMBARGO ESPOSIBLELLEGARA UNACIUDADINTERMEDIAYDESDEAHÓTRASLADARSEHASTALACIUDADDESTINO0OREJEMPLO SIDELACIUDADALANOHAYCARRETERADIRECTA SEPODRÓAIRPRIMEROALACIUDAD SIEXISTECARRETERAENTRELAYLAYLUEGODELACIUDADALASIENTREELLAS EXISTENCARRETERAS%SCRIBAUNPROGRAMAQUEREALICELOSIGUIENTE A ,EALOSTIEMPOSENTRELASDISTINTASCIUDADESYLASALMACENEENUNARREGLOUNIDIMEN SIONAL B ,EALACIUDADORIGENYLACIUDADDESTINO C $ETERMINEELMENORTIEMPODETRASLADOENTREDICHASCIUDADES D 0RESENTELARUTAASEGUIR £È°3ETIENEINFORMACIØNSOBRECOSTOSDEBOLETOSAÏREOSENTRE.CIUDADESDELPAÓS%L COSTODELBOLETOPARAIRDELACIUDADIALACIUDADJESIGUALALCOSTODELBOLETOPARA IRDELACIUDADJALAI0ORTANTO SEPUEDEAHORRARESPACIODEMEMORIARECUERDE LOVISTOSOBREMATRICESSIMÏTRICASUTILIZANDOUNARREGLOUNIDIMENSIONALPARAAL MACENARTODOSLOSCOSTOS%SCRIBAUNPROGRAMAQUE A ,EAELNÞMERODECIUDADES B ,EALOSCOSTOSYLOSALMACENEUSANDOUNARREGLOUNIDIMENSIONAL C $ADOELNÞMERODEUNACIUDADORIGENYDEUNACIUDADDESTINO IMPRIMAELCOSTODEL BOLETOCORRESPONDIENTE D $ADOELNÞMERODEUNACIUDAD IMPRIMALOSNÞMEROSDETODASLASCIUDADESALASQUE HAYVUELO PARTIENDODELACIUDADESPECÓlCA
#APÓTULO
Î
0),!39 #/,!3 ).42/$5##)¼. #UANDOSEPRESENTARONLOSARREGLOS ENELCAPÓTULO SEMENCIONØQUEERANESTRUCTURAS LINEALES%SDECIR CADACOMPONENTETIENEUNÞNICOSUCESORYUNÞNICOPREDECESORCON EXCEPCIØNDELPRIMEROYDELÞLTIMO RESPECTIVAMENTE0OROTRAPARTE ALANALIZARLASOPE RACIONESDEINSERCIØNYELIMINACIØN SEOBSERVØQUELOSELEMENTOSSEPODÓANINSERTARO ELIMINARENCUALQUIERPOSICIØNDELARREGLO#ABESE×ALAR SINEMBARGO QUEEXISTENPRO BLEMASQUEPORSUNATURALEZAREQUIERENQUELOSELEMENTOSSEAGREGUENOSEQUITENSØLO PORUNEXTREMO%STECAPÓTULOSEDEDICAALESTUDIODEPILASYCOLAS QUESONESTRUCTURAS DEDATOSLINEALESCONRESTRICCIONESENCUANTOALAPOSICIØNENLACUALSEPUEDENLLEVARA CABOLASOPERACIONESDEINSERCIØNYELIMINACIØNDECOMPONENTES
0),!3 5NAPILAREPRESENTAUNAESTRUCTURALINEALDEDATOSENLAQUESEPUEDEAGREGAROQUITAR ELEMENTOSÞNICAMENTEPORUNODELOSDOSEXTREMOS%NCONSECUENCIA LOSELEMENTOSDE UNAPILASEELIMINANENORDENINVERSOALQUESEINSERTARONESDECIR ELÞLTIMOELEMENTO QUESEMETEENLAPILAESELPRIMEROQUESESACA$EBIDOAESTACARACTERÓSTICA SELECO NOCECOMOESTRUCTURA,)&/,AST )NPUT &IRST /UTPUTELÞLTIMOENENTRARESELPRIMERO ENSALIR %XISTEN NUMEROSOS CASOS PRÈCTICOS EN LOS QUE SE UTILIZA EL CONCEPTO DE PILA POR EJEMPLO UNAPILADEPLATOS UNAPILADELATASENUNSUPERMERCADO UNAPILADELIBROSQUE SEEXHIBENENUNALIBRERÓA ETCÏTERA%NLAlGURASEOBSERVAUNAPILADEPLATOS%SDE SUPONERQUESIELCOCINERONECESITAUNPLATOLIMPIO TOMARÈELQUEESTÈENCIMADETODOS QUEESELÞLTIMOQUESECOLOCØENLAPILA ,ASPILASSONESTRUCTURASDEDATOSLINEALES COMOLOSARREGLOS YAQUELOSCOMPO NENTESOCUPANLUGARESSUCESIVOSENLAESTRUCTURAYCADAUNODEELLOSTIENEUNÞNICOSUCE SORYUNÞNICOPREDECESOR CONEXCEPCIØNDELÞLTIMOYDELPRIMERO RESPECTIVAMENTE 5NAPILASEDElNEFORMALMENTECOMOUNACOLECCIØNDEDATOSALOSCUALESSEPUEDE ACCEDERMEDIANTEUNEXTREMO QUESECONOCEGENERALMENTECOMOTOPE
76
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
&)'52! %JEMPLOSPRÉCTICOSDEPILAS
2EPRESENTACIØNDEPILAS ,ASPILASNOSONESTRUCTURASFUNDAMENTALESDEDATOSESDECIR NOESTÈNDElNIDASCOMO TALESENLOSLENGUAJESDEPROGRAMACIØN0ARASUREPRESENTACIØNREQUIERENELUSODEOTRAS ESTRUCTURASDEDATOS COMO ◗ ◗
!RREGLOS ,ISTAS
%NESTELIBROSEUTILIZARÈNARREGLOS%NCONSECUENCIA ESIMPORTANTEDElNIRELTAMA ×OMÈXIMODELAPILA ASÓCOMOUNAVARIABLEAUXILIARALAQUESEDENOMINA4/0%%STA VARIABLESEUTILIZAPARAINDICARELÞLTIMOELEMENTOQUESEINSERTØENLAPILA%NLAlGURA SEPRESENTANDOSALTERNATIVASDEREPRESENTACIØNDEUNAPILA UTILIZANDOARREGLOS
&)'52! 2EPRESENTACIØNDEPILAS
1*-"4
77
&)'52! 2EPRESENTACIØNDEPILAS A 0ILALLENAB 0ILACON ALGUNOSELEMENTOSC 0ILA VACÓA
%NLAlGURASEPRESENTANEJEMPLOSDEA PILALLENA B PILACONALGUNOSELEMEN TOSYC PILAVACÓA !L UTILIZAR ARREGLOS PARA IMPLEMENTAR PILAS SE TIENE LA LIMITACIØN DE QUE SE DEBE RESERVARESPACIODEMEMORIACONANTICIPACIØN CARACTERÓSTICAPROPIADELOSARREGLOS5NA VEZDADOUNMÈXIMODECAPACIDADALAPILANOESPOSIBLEINSERTARUNNÞMERODEELEMEN TOSMAYORALMÈXIMOESTABLECIDO3ILAPILAESTUVIERALLENAYSEINTENTARAINSERTARUN NUEVOELEMENTO SEPRODUCIRÈUNERRORCONOCIDOCOMODESBORDAMIENTOOVERmOW 0OREJEMPLO SIENLAPILAQUESEPRESENTAENLAlGURAA DONDE4/0%-!8 SE QUISIERAINSERTARUNNUEVOELEMENTO SEPRODUCIRÈUNERRORDEESTETIPO,APILAESTÈLLENA YELESPACIODEMEMORIARESERVADOESlJO NOSEPUEDEEXPANDIRNICONTRAER 5NAPOSIBLESOLUCIØNAESTETIPODEINCONVENIENTESCONSISTEENDElNIRPILASDEGRAN TAMA×O PEROESTOÞLTIMORESULTARÓAINElCIENTEYCOSTOSOSISØLOSEUTILIZARANALGUNOS ELEMENTOS.OSIEMPREESVIABLESABERCONEXACTITUDCUÈLESELNÞMERODEELEMENTOSA TRATARPORTANTO SIEMPREEXISTELAPOSIBILIDADDECOMETERUNERRORDEDESBORDAMIENTO SISERESERVAMENOSESPACIODELQUEEFECTIVAMENTESEUSARÈOBIENDEHACERUSOINE lCIENTEDELAMEMORIASISERESERVAMÈSESPACIODELQUEREALMENTESENECESITA %XISTEOTRAALTERNATIVADESOLUCIØNAESTEPROBLEMA#ONSISTEENUSARESPACIOSCOM PARTIDOSDEMEMORIAPARALAIMPLEMENTACIØNDEPILAS3UPONGAMOSQUESENECESITAN DOSPILAS CADAUNADEELLASCONUNTAMA×OMÈXIMODE.ELEMENTOS3EDElNIRÈENTON CESUNSOLOARREGLOUNIDIMENSIONALDE .ELEMENTOS ENLUGARDEDOSARREGLOSDE. ELEMENTOSCADAUNO #OMOSEILUSTRAENLAlGURA LA0),!OCUPARÈDESDELAPOSICIØNENADELANTE MIENTRASQUELA0),!OCUPARÈDESDELAPOSICIØN .HACIAATRÈS .n .n 3IENALGÞNPUNTODELPROCESOLA0),!NECESITARAMÈSESPACIODELQUE REALMENTETIENE.YENESEMOMENTOLA0),!NOTUVIERAOCUPADOSSUS.LUGARES ENTONCESSERÓAPOSIBLEAGREGARELEMENTOSALA0),!SINCAERENUNERRORDEDESBORDA MIENTOlGURA !LGOSIMILARPODRÓASUCEDERPARALA0),! SIÏSTANECESITARAMÈSDE .ESPACIOSYLA0),!TUVIERALUGARESDISPONIBLESlGURAB
78
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
&)'52! 2EPRESENTACIØNDEPILASEN ESPACIOSCOMPARTIDOS
/TROERRORQUESEPUEDEPRESENTARALTRABAJARCONPILASESTRATARDEELIMINARUNELE MENTODEUNAPILAVACÓA%STETIPODEERRORSECONOCECØMOSUBDESBORDAMIENTOUN DERmOW0OREJEMPLO SIENLAPILAQUESEPRESENTAENLAlGURAC DONDE4/0% SEDESEARAELIMINARUNELEMENTO SEPRESENTARÓAUNERRORDEESTETIPO
/PERACIONESCONPILAS ,ADElNICIØNDEUNAESTRUCTURADEDATOSQUEDACOMPLETAALINCLUIRLASOPERACIONESQUESE PUEDENREALIZARENELLA0ARAELCASODELASPILAS LASOPERACIONESBÈSICASQUESEPUEDEN LLEVARACABOSON ◗ ◗
&)'52! 2EPRESENTACIØNDEPILAS ENESPACIOSCOMPARTIDOS A 0),!TIENEMÉSDE. ELEMENTOSY0),!TIENE MENOSDE.ELEMENTOS B 0),!TIENEMÉSDE. ELEMENTOSY0),!TIENE MENOSDE.ELEMENTOS
)NSERTARUNELEMENTO0USHENLAPILA %LIMINARUNELEMENTO0OPDELAPILA
1*-"4
79
9LASOPERACIONESAUXILIARES ◗ ◗
0ILA?VACÓA 0ILA?LLENA
#ONSIDERANDOQUESETIENEUNAPILACONCAPACIDADPARAALMACENARUNNÞMEROMÈXI MODEELEMENTOS-!8 YQUEELÞLTIMODEELLOSSEINDICACON4/0% ACONTINUA CIØNSEPRESENTANLOSALGORITMOSCORRESPONDIENTESALASOPERACIONESMENCIONADAS3ILA PILAESTÈVACÓA ENTONCES4/0%ESIGUALA !LGORITMO 0ILA?VACÓA
0ILA?VACÓA0),! 4/0% "!.$ [%STEALGORITMOVERIlCASIUNAESTRUCTURATIPOPILA0),!ESTÈVACÓA ASIGNANDOA"!.$EL VALORDEVERDADCORRESPONDIENTE,APILASEIMPLEMENTAENUNARREGLOUNIDIMENSIONAL4/0% ESUNPARÈMETRODETIPOENTERO"!.$ESUNPARÈMETRODETIPOBOOLEANO] 3I4/0% [6ERIlCASINOHAYELEMENTOSALMACENADOSENLAPILA] ENTONCES (ACER"!.$←6%2$!$%2/[,APILAESTÈVACÓA] SINO (ACER"!.$←&!,3/[,APILANOESTÈVACÓA] [&INDELCONDICIONALDELPASO]
!LGORITMO 0ILA?LLENA
0ILA?LLENA0),! 4/0% -!8 "!.$ [%STEALGORITMOVERIlCASIUNAESTRUCTURATIPOPILA0),!ESTÈLLENA ASIGNANDOA"!.$EL VALORDEVERDADCORRESPONDIENTE,APILASEIMPLEMENTAENUNARREGLOUNIDIMENSIONALDE-!8 ELEMENTOS4/0%ESUNPARÈMETRODETIPOENTERO"!.$ESUNPARÈMETRODETIPOBOOLEANO] 3I4/0%-!8 ENTONCES (ACER"!.$←6%2$!$%2/[,APILAESTÈLLENA] SINO (ACER"!.$←&!,3/[,APILANOESTÈLLENA] [&INDELCONDICIONALDELPASO]
80
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 !LGORITMO 0ONE
0ONE0),! 4/0% -!8 $!4/ [%STEALGORITMOAGREGAELELEMENTO$!4/ENUNAESTRUCTURATIPOPILA0),! SILAMISMA NOESTÈLLENA!CTUALIZAELVALORDE4/0%-!8REPRESENTAELNÞMEROMÈXIMODEELEMENTOS QUEPUEDEALMACENAR0),!4/0%ESUNPARÈMETRODETIPOENTERO] ,LAMARA0ILA?LLENACON0),! 4/0% -!8Y"!.$ 3I"!.$6%2$!$%2/ ENTONCES %SCRIBIRh$ESBORDAMIENTOn0ILALLENAv SINO (ACER4/0%←4/0%Y0),!;4/0%=←$!4/ [!CTUALIZA4/0%EINSERTAELNUEVOELEMENTOENEL4/0%DE0),!] [&INDELCONDICIONALDELPASO]
!LGORITMO 1UITA 1UITA0),! 4/0% $!4/ [%STEALGORITMOSACAUNELEMENTO$!4/DEUNAESTRUCTURATIPOPILA0),! SIÏSTANO SEENCUENTRAVACÓA%LELEMENTOQUESEELIMINAESELQUESEENCUENTRAENLAPOSICIØNINDICADA POR4/0%] ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ 3I"!.$6%2$!$%2/ ENTONCES %SCRIBIRh3UBDESBORDAMIENTOn0ILAVACÓAv SINO (ACER$!4/←0),!;4/0%=Y4/0%←4/0%n[!CTUALIZA4/0%] [&INDELCONDICIONALDELPASO]
!CONTINUACIØNSEPRESENTAUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODELASOPE RACIONESDEINSERCIØNYELIMINACIØNENPILAS
%JEMPLO
3ISEINSERTARANLOSELEMENTOSLUNES MARTES MIÏRCOLES JUEVESYVIERNESEN0),! LA ESTRUCTURAQUEDARÓATALYCOMOSEMUESTRAENLAlGURAA!HORABIEN SISEELIMINARA ELELEMENTOVIERNES EL4/0%APUNTARÓAAHORAAJUEVESlGB 3IENALGÞNMOMENTOSEQUISIERAELIMINARALELEMENTOMARTES ESTONOSERÓAPOSIBLE YAQUESØLOSEPUEDETENERACCESOALELEMENTOQUESEENCUENTRAENLACIMADELAPILA
1*-"4
81
&)'52! )NSERCIØNYELIMINACIØN ENPILAS
5NAFORMADERESOLVERESTEPROBLEMAESELIMINARPRIMERAMENTELOSELEMENTOSJUEVESY MIÏRCOLES DEESTAMANERAMARTESQUEDARÓAUBICADOENLACIMADE0),!YAHORASERÓA POSIBLEEXTRAERLOlGURASA BYC
!PLICACIONESDEPILAS ,AS PILAS SON UNA ESTRUCTURA DE DATOS MUY USADA EN LA SOLUCIØN DE DIVERSOS TIPOS DE PROBLEMAS ENELÈREADELACOMPUTACIØN!HORASEANALIZARÈNALGUNOSDELOSCASOSMÈS REPRESENTATIVOSDEAPLICACIØNDELASMISMAS &)'52! )NSERCIØNYELIMINACIØN A ,UEGODESACARJUEVES B ,UEGODESACARMIÏR COLESC ,UEGODESACAR MARTES
82
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 ◗ ◗ ◗ ◗
,LAMADASASUBPROGRAMAS 2ECURSIVIDAD 4RATAMIENTODEEXPRESIONESARITMÏTICAS /RDENACIØN
,LAMADASASUBPROGRAMAS #UANDO SE TIENE UN PROGRAMA QUE LLAMA A UN SUBPROGRAMA TAMBIÏN CONOCIDO COMO MØDULOOFUNCIØN INTERNAMENTESEUSANPILASPARAGUARDARELESTADODELASVARIABLES DELPROGRAMA ASÓCOMOLASINSTRUCCIONESPENDIENTESDEEJECUCIØNENELMOMENTOQUESE HACELALLAMADA#UANDOTERMINALAEJECUCIØNDELSUBPROGRAMA LOSVALORESALMACENADOS ENLAPILASERECUPERANPARACONTINUARCONLAEJECUCIØNDELPROGRAMAENELPUNTOENEL CUALFUEINTERRUMPIDO!DEMÈSDELASVARIABLESSERECUPERALADIRECCIØNDELPROGRAMAEN LAQUESEHIZOLALLAMADA PORQUEAESAPOSICIØNSEREGRESAELCONTROLDELPROCESO 3UPONGAMOS POREJEMPLO QUESETIENEUNPROGRAMAPRINCIPAL00 QUELLAMAA LOSSUBPROGRAMAS5./Y$/3!SUVEZ ELSUBPROGRAMA$/3LLAMAAL42%3#ADA VEZQUELAEJECUCIØNDEUNODELOSSUBPROGRAMASCONCLUYE SEREGRESAELCONTROLALNIVEL INMEDIATOSUPERIORlG #UANDOELPROGRAMA00LLAMAA5./ SEGUARDAENUNAPILALAPOSICIØNENLAQUE SEHIZOLALLAMADAlGA !LTERMINAR5./ ELCONTROLSEREGRESAA00RECUPERANDO PREVIAMENTELADIRECCIØNDELAPILAlGB !LLLAMARA$/3 NUEVAMENTESEGUARDA LADIRECCIØNDE00ENLAPILAlGC #UANDO$/3LLAMAA42%3 SEPONEENLAPILA LADIRECCIØNDE$/3lGD $ESPUÏSDEPROCESAR42%3 SERECUPERALAPOSICIØNDE $/3PARACONTINUARCONSUEJECUCIØNlGE !LTERMINAR$/3SEREGRESAELCONTROL A00 OBTENIENDOPREVIAMENTELADIRECCIØNGUARDADAENLAPILAlGF &INALMENTEPODEMOSCONCLUIRQUELASPILASSONNECESARIASENESTETIPODEAPLICACIO NESPORLOSIGUIENTE
&)'52! ,LAMADAASUBPROGRAMAS
1*-"4
83
&)'52! !PLICACIØNDEPILASLLAMA DASASUBPROGRAMAS
◗ ◗
0ERMITENGUARDARLADIRECCIØNDELPROGRAMA OSUBPROGRAMA DESDEDONDESEHIZOLA LLAMADAAOTROSSUBPROGRAMAS PARAREGRESARPOSTERIORMENTEYSEGUIREJECUTÈNDOLOA PARTIRDELAINSTRUCCIØNINMEDIATAALALLAMADA 0ERMITENGUARDARELESTADODELASVARIABLESENELMOMENTOENQUESEHACELALLAMA DA PARASEGUIROCUPÈNDOLASALREGRESARDELSUBPROGRAMA
2ECURSIVIDAD %LCAPÓTULOESTÈDEDICADOALESTUDIODELARECURSIVIDAD3EDEJARÈPARAENTONCESLAAPLI CACIØNDEPILASENPROCESOSRECURSIVOS
4RATAMIENTODEEXPRESIONESARITMÏTICAS 5NPROBLEMAINTERESANTEENCOMPUTACIØNCONSISTEENCONVERTIREXPRESIONESENNOTACIØN INlJAASUEQUIVALENTEENNOTACIØNPRElJAOPOSlJAOPRElJA3EPRESENTAPRIMEROUNA BREVEINTRODUCCIØNAESTOSCONCEPTOS ◗
$ADALAEXPRESIØN!"SEDICEQUEÏSTASEENCUENTRAENNOTACIØNINlJA PORQUEEL OPERADOR SEENCUENTRAENTRELOSOPERANDOS!Y"
84
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 ◗ ◗
$ADALAEXPRESIØN!"SEDICEQUEÏSTASEENCUENTRAENNOTACIØNPOSTlJA PORQUE ELOPERADOR SEENCUENTRADESPUÏSDELOSOPERANDOS!Y" $ADALAEXPRESIØN!"SEDICEQUEÏSTASEENCUENTRAENNOTACIØNPRElJA PORQUEEL OPERADOR ESTÈPRECEDIENDOALOSOPERANDOS!Y"
,AVENTAJADEUSAREXPRESIONESENNOTACIØNPOSTlJAOPRElJARADICAENQUENOSON NECESARIOSLOSPARÏNTESISPARAINDICARORDENDEOPERACIØN YAQUEÏSTEQUEDAESTABLECIDA PORLAUBICACIØNDELOSOPERADORESCONRESPECTOALOSOPERANDOS 0ARACONVERTIRUNAEXPRESIØNDADAENNOTACIØNINlJAAUNAENNOTACIØNPOSTlJAO PRElJASEESTABLECENPRIMEROCIERTASCONDICIONES ◗
3OLAMENTESEMANEJARÈNLOSSIGUIENTESOPERADORESSEPRESENTANDEMAYORAME NORSEGÞNSEASUPRIORIDADDEEJECUCIØN /PERADOR >
◗ ◗ ◗
.OMBREDELAOPERACIØN 0OTENCIA
-ULTIPLICACIØNYDIVISIØN
n
3UMAYRESTA
,OSOPERADORESDEMÈSALTAPRIORIDADSEEJECUTANPRIMERO 3IHUBIERAENUNAEXPRESIØNDOSOMÈSOPERADORESDEIGUALPRIORIDAD ENTONCESSE PROCESARÈNDEIZQUIERDAADERECHA ,ASSUBEXPRESIONESQUESEENCUENTRANENTREPARÏNTESISTENDRÈNMÈSPRIORIDADQUE CUALQUIEROPERADOR
3EPRESENTANACONTINUACIØN PASOAPASO ALGUNOSEJEMPLOSDECONVERSIØNDEEXPRE SIONESINlJASANOTACIØNPOSlJA
%JEMPLO
%NESTEEJEMPLOSEEXPONENDOSCASOSDETRADUCCIØNDENOTACIØNINlJAAPOSlJA%LPRI MERODEELLOSESUNAEXPRESIØNSIMPLE MIENTRASQUEELSEGUNDOPRESENTAMAYORGRADODE COMPLEJIDAD%NLATABLASEMUESTRANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØN DELAPRIMERAEXPRESIØN YENLATABLALOSCORRESPONDIENTESALASEGUNDAEXPRESIØN A %XPRESIØNINlJA8: 7 %XPRESIØNPOSlJA8:7 %LPRIMEROPERADORQUESEPROCESADURANTELATRADUCCIØNDELAEXPRESIØNESLAMUL TIPLICACIØN PASO DEBIDOAQUEESELDEMÈSALTAPRIORIDAD3ECOLOCAELOPERADORDE
4!",! 4RADUCCIØNDEINlJA APOSlJA
EVhd
:megZh^c
8: 7
8:7
8:7
1*-"4
85
TALMANERAQUELOSOPERANDOSAFECTADOSPORÏLLOPRECEDAN0ARAELOPERADORDESUMASE SIGUEELMISMOCRITERIO LOSDOSOPERANDOSLOPRECEDEN%NESTECASOELPRIMEROPERANDO ES8YELSEGUNDOES:7 B %XPRESIØNINlJA8: 74>9n6 %XPRESIØNPOSTlJA8:7 49>6n 4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPOSlJA
0ASO
%XPRESIØN
8: 74>9n6
8: 74>9n6
8: 749>n6
8:7 49>n6
8:7 49>n6
8:7 49>6n
%NELPASOSECONVIERTELASUBEXPRESIØNQUESEENCUENTRAENTREPARÏNTESISPORSER LADEMÈSALTAPRIORIDAD,UEGOSESIGUECONELOPERADORDEPOTENCIA PASO YASÓCON LOSDEMÈS SEGÞNSUJERARQUÓA#OMOCONSECUENCIADEQUELAMULTIPLICACIØNYLADIVI SIØNTIENENIGUALPRIORIDAD SEPROCESAPRIMEROLAMULTIPLICACIØNPORENCONTRARSEMÈSA LAIZQUIERDAENLAEXPRESIØN PASO%LOPERADORDELARESTAESELÞLTIMOQUESEMUEVE PASO!CONTINUACIØNSEPRESENTAELALGORITMOQUETRADUCEUNAEXPRESIØNINlJAAOTRA POSlJA !LGORITMO #ONV?POSTlJA #ONV?POSTlJA%) %0/3 [%STEALGORITMOTRADUCEUNAEXPRESIØNINlJA%)APOSTlJA%0/3 HACIENDOUSODE UNAPILA0),!-!8ESELNÞMEROMÈXIMODEELEMENTOSQUEPUEDEALMACENARLAPILA] (ACER4/0%← -IENTRAS%)SEADIFERENTEDELACADENAVACÓA 2EPETIR 4OMARELSÓMBOLOMÈSALAIZQUIERDADE%)2ECORTARLUEGOLAEXPRESIØN 3IELSÓMBOLOESPARÏNTESISIZQUIERDO ENTONCES[0ONERSÓMBOLOEN0),!3EASUMEQUEHAYESPACIOEN0),!] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO SINO 3IELSÓMBOLOESPARÏNTESISDERECHO ENTONCES -IENTRAS0),!;4/0%=≠PARÏNTESISIZQUIERDO 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%0/3←%0/3$!4/
86
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
[&INDELCICLODELPASO] ,LAMARA1UITACON0),! 4/0%Y$!4/ [3EQUITAELPARÏNTESISIZQUIERDODE0),!YNOSEAGREGA A%0/3] SINO 3IELSÓMBOLOESUNOPERANDO ENTONCES !GREGARSÓMBOLOA%0/3 SINO[%SUNOPERADOR] ,LAMAR0ILA?VACÓACON0),! 4/0%Y"!.$ ! -IENTRAS"!.$&!,3/ YLAPRIORIDADDEL OPERADORSEAMENOROIGUALQUELAPRIORIDAD DELOPERADORQUEESTÈENLACIMADE0),! 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%0/3←%0/3$!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ " [&INDELCICLODELPASO!] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ -IENTRAS"!.$&!,3/ 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%0/3←%0/3$!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ [&INDELCICLODELPASO] %SCRIBIR%0/3
#ABESE×ALARQUEPARAESTEALGORITMOSEMANEJALAESCALADEPRIORIDADESPRESENTADA ALINICIODEESTASECCIØN
%JEMPLO
%NESTEEJEMPLOSERETOMANLOSCASOSDELEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEL ALGORITMO#ONV?POSlJA A %XPRESIØNINlJA8: 7 %XPRESIØNPOSlJA8:7 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO %NLOSPASOS YELSÓMBOLOANALIZADOUNOPERANDOSEAGREGADIRECTAMENTE A%0/3!LANALIZARELOPERADOR PASO SEVERIlCASIEN0),!HAYOPERADORESCON MAYOROIGUALPRIORIDAD%NESTECASO 0),!ESTÈVACÓAPORTANTO SEPONEELSÓMBOLO ENELTOPEDEELLA#ONELOPERADOR PASO SUCEDEALGOSIMILAR%N0),!NOEXISTEN
1*-"4 4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPOSlJA
3ÓMBOLO ANALIZADO
0ASO
%)
8: 7
: 7
8
: 7
7
7
0ILA
%0/3 8
8
:
8:
8:
7
8:7
87
8:7
8:7
OPERADORESDEMAYOROIGUALPRIORIDADLASUMATIENEMENORPRIORIDADQUELAMULTIPLI CACIØN PORLOQUESEAGREGAELOPERADOR A0),!%NLOSDOSÞLTIMOSPASOS Y SE EXTRAENDE0),!SUSELEMENTOS AGREGÈNDOLOSA%0/3 B %XPRESIØNINlJA8: 74>9n6 %XPRESIØNPOSTlJA8:7 49>6n %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO ,OSPASOS QUESECONSIDERANMÈSRELEVANTESSONENELPASO ALANALIZARELPA RÏNTESISDERECHOSEEXTRAENREPETIDAMENTETODOSLOSELEMENTOSDE0),!ENESTECASO SØLOELOPERADOR AGREGÈNDOLOSA%0/3HASTAENCONTRARUNPARÏNTESISIZQUIERDO%L PARÏNTESISIZQUIERDOSEQUITADE0),!PERONOSEINCLUYEEN%0/3RECUERDEQUELAS EXPRESIONESENNOTACIØNPOLACANONECESITANDEPARÏNTESISPARAINDICARPRIORIDADES #UANDOSETRATAELOPERADORDEDIVISIØN PASO SEQUITADE0),!ELOPERADOR YSE AGREGAA%0/3 YAQUELAMULTIPLICACIØNTIENEIGUALPRIORIDADQUELADIVISIØN!LANALI ZARELOPERADORDERESTA PASO SEEXTRAENDE0),!YSEINCORPORANA%0/3TODOSLOS OPERADORESDEMAYOROIGUALPRIORIDAD ENESTECASOSONTODOSLOSQUEESTÈNENELLALA POTENCIAYLADIVISIØN AGREGANDOlNALMENTEELSÓMBOLOEN0),!,UEGODEAGREGARA %0/3ELÞLTIMOOPERANDO YHABIENDOREVISADOTODALAEXPRESIØNINICIAL SEVACÓA0),! YSEINCORPORANLOSOPERADORESENESTECASOELOPERADORn ALAEXPRESIØNPOSTlJA !CONTINUACIØNSEPRESENTAELALGORITMOPARACONVERTIREXPRESIONESINlJASAEXPRE SIONESESCRITASENNOTACIØNPRElJA
%JEMPLO
%NESTEEJEMPLOSEEXPONENDOSCASOSDETRADUCCIØNDENOTACIØNINlJAAPRElJA%LPRI MERODEELLOSESUNAEXPRESIØNSIMPLE MIENTRASQUEELSEGUNDOPRESENTAMAYORGRADO DECOMPLEJIDAD A %XPRESIØNINlJA8: 7 %XPRESIØNPRElJA8 :7
88
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPOSTlJA
0ASO
%)
8: 74>9n6
3ÓMBOLO ANALIZADO
0ILA
%0/3
8: 74>9n6
: 74>9n6
8
8
: 74>9n6
8
74>9n6
:
8:
74>9n6
8:
8:
74>9n6
8:
4>9n6
7
8:7
4>9n6
8:7
8:7
>9n6
4
8:7 4
9n6
>
>
8:7 4
n6
9
>
8:7 49
n
8:7 49>
n
6
8:7 49>
n
n
8:7 49>
6
n
8:7 49>6
8:7 49>6n
%NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA #OMOENELCASODELANOTACIØNPOSTlJA EJEMPLO AQUÓTAMBIÏNELOPERADORDE MULTIPLICACIØNSEPROCESAPRIMERO$ELATRADUCCIØNDELAEXPRESIØN PASO RESULTAEL OPERADORPRECEDIENDOALOSOPERANDOS,OMISMOPARAELOPERADORDESUMA PASO B %XPRESIØNINlJA8: 74>9n6 %XPRESIØNPRElJAn 8:7>496 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA ,OPRIMEROQUESEPROCESAENESTECASOESLASUBEXPRESIØNQUESEENCUENTRAENTRE PARÏNTESIS PASO%LORDENENQUESEPROCESANLOSOPERADORESESELMISMOQUESESIGUIØ
4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA
0ASO
%XPRESIØN
8: 7
8 :7
8 :7
1*-"4 4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA
0ASO
%XPRESIØN
8: 74>9n6
8: 74>9n6
8: 7>49n6
8:7>49n6
8:7>49n6
n 8:7>496
89
PARALACONVERSIØNDEINlJAAPOSlJA0ORTANTO SERÓAREITERATIVOVOLVERAEXPLICARPASOA PASOELCONTENIDODELATABLA3INEMBARGO ESDEDESTACARLAPOSICIØNQUEOCUPANLOS OPERADORESCONRESPECTOALOSOPERANDOSLOSPRIMEROSPRECEDENALOSSEGUNDOS !CONTINUACIØNSEINCLUYEELALGORITMODECONVERSIØNDENOTACIØNINlJAAPRElJA %STEALGORITMOSEDIFERENCIADELANTERIORBÈSICAMENTEENELHECHODEQUELOSELEMENTOS DELAEXPRESIØNENNOTACIØNINlJASERECORRERÈNDEDERECHAAIZQUIERDA !LGORITMO #ONV?PRElJA
#ONV?PRElJA%) %02% [%STEALGORITMOTRADUCEUNAEXPRESIØNENNOTACIØNINlJA %)APRElJA %02% HACIENDOUSODE UNAPILA0),!] [4/0%ESUNAVARIABLEDETIPOENTEROY-!8REPRESENTAELMÈXIMONÞMERODEELEMENTOSQUE PUEDEALMACENARLAPILA] (ACER4/0%← -IENTRAS%)SEADIFERENTEDELACADENAVACÓA 2EPETIR 4OMARELSÓMBOLOMÈSALADERECHADE%)RECORTANDOLUEGOLAEXPRESIØN 3IELSÓMBOLOESPARÏNTESISDERECHO ENTONCES[0ONERSÓMBOLOENPILA] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO SINO 3ISÓMBOLOESPARÏNTESISIZQUIERDO ENTONCES -IENTRAS0),!;4/0%=≠PARÏNTESISDERECHO 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%02%←%02%$!4/ [&INDELCICLODELPASO] [3ACAMOSELPARÏNTESISDERECHODE0),!YNOSEAGREGAA%02%] ,LAMARA1UITACON0),! 4/0%Y$!4/ SINO 3ISÓMBOLOESUNOPERANDO ENTONCES !GREGARSÓMBOLOA%02%
90
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
SINO[%SUNOPERADOR] ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ ! -IENTRAS"!.$&!,3/ YLAPRIORIDADDELOPERADOR SEAMENORQUELAPRIORIDADDELOPERADORQUEESTÈENLACIMADE 0),! 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%02%←%02%$!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ " [&INDELCICLODELPASO!] ,LAMARA0ONECON0),! 4/0% -!8YSÓMBOLO [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ -IENTRAS"!.$&!,3/ 2EPETIR ,LAMARA1UITACON0),! 4/0%Y$!4/ (ACER%02%←%02%$!4/ ,LAMARA0ILA?VACÓACON0),! 4/0%Y"!.$ [&INDELCICLODELPASO] %SCRIBIR%02%ENFORMAINVERTIDA
%JEMPLO
3EANALIZANNUEVAMENTELOSCASOSDELEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEL ALGORITMO A %XPRESIØNINlJA8: 7 %XPRESIØNPRElJA8 :7 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO
4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA
0ASO
%)
8: 7
8:
3ÓMBOLO ANALIZADO
0ILA
7
%02%
7
8:
7
8
:
7:
8
7:
8
7: 8
7:
7: 8 )NVERTIR%02%
8 :7
1*-"4
91
%LOPERADORDEMULTIPLICACIØNSEPONEEN0),!ALSEREXAMINADO PASO!LESTAR VACÓA0),!NOHAYOTROSOPERADORESQUESEPUDIERANQUITARSEGÞNSUPRIORIDADANTES DEPONERELOPERADOR %NCAMBIO ALANALIZARELOPERADORDESUMA PASO SECOMPARA SUPRIORIDADCONLADELOPERADORDELTOPEDE0),!%NESTECASO ESMENORPORTANTO SEEXTRAEELELEMENTODELTOPEDE0),!YSEAGREGAALAEXPRESIØNPRElJA PONIENDOl NALMENTEELOPERADOREN0),!#UANDOLAEXPRESIØNDEENTRADAQUEDAVACÓAESDECIR QUEYASEHANANALIZADOTODOSSUSSÓMBOLOS SEEXTRAEREPETIDAMENTECADAELEMENTODE 0),!YSEAGREGAALAEXPRESIØNPRElJAHASTAQUE0),!QUEDEVACÓA B %XPRESIØNINlJA8: 74>9n6 %XPRESIØNPRElJAn 8:7>496 %NLATABLASEPRESENTANLOSPASOSNECESARIOSPARALOGRARLATRADUCCIØNDESEADA SIGUIENDOELALGORITMO #OMO LA EXPRESIØN SE RECORRE DE DERECHA A IZQUIERDA EL PRIMER OPERADOR QUE SE PROCESAESLARESTA PASO0EROÏSTEESELOPERADORDELAEXPRESIØNDEMÈSBAJAPRIORI
4!",! 4RADUCCIØNDEEXPRESIØN INlJAAPRElJA
0ASO
%)
3ÓMBOLO ANALIZADO
8: 74>9n6
8: 74>9n
6
8: 74>9
n
0ILA
%02%
6 n
6
8: 74>
9
n
69
8: 74
>
n>
69
8: 7
4
n>
694
8: 7
n n
694> 694>
8:
7
n
694>7
8:
n
694>7
8:
n
694>7
8
:
n
694>7:
8
n
694>7:
8
n
694>7:8
n
694>7:8
n
694>7:8
n
694>7:8
n
694>7:8
694>7:8 n )NVERTIR%02%
n 8:7>496
92
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 DADPORTANTO PERMANECERÈEN0),!HASTAELlNALDELPROCESODECONVERSIØN PASO #UANDO SE ENCUENTRA UN PARÏNTESIS DERECHO PASO SE AGREGA DIRECTAMENTE A 0),! MIENTRASQUECUANDOELSÓMBOLOANALIZADOESUNPARÏNTESISIZQUIERDO PASO SEEXTRAE REPETIDAMENTECADAELEMENTODE0),!AGREGÈNDOLOA%02% HASTAQUESEENCUENTRAUN PARÏNTESISDERECHO²STESERETIRADE0),!YNOSEAGREGAA%02%#UANDOYASEANA LIZARONTODOSLOSSÓMBOLOSDELAEXPRESIØNSEPROCEDEAQUITARDE0),!SUSELEMENTOS A×ADIÏNDOLOSA%02%&INALMENTESEINVIERTE%02%PARAOBTENERLAEXPRESIØNENNOTA CIØNPRElJA PASO0ARAEVITARELÞLTIMOPASODELALGORITMO INVERTIRLAEXPRESIØN SE PODRÓANIRCONCATENANDOLOSSÓMBOLOSEN%02%ENORDENINVERSO
/RDENACIØN /TRAAPLICACIØNDELASPILASSEPUEDEVERENELMÏTODODEORDENACIØNRÈPIDA#OMOEL TEMADEORDENACIØNESAMPLIAMENTETRATADOENELCAPÓTULO SESUGIEREREMITIRSEAÏL
,ACLASE0ILA ,ACLASE0ILATIENEATRIBUTOSYMÏTODOS,OSATRIBUTOSSONLACOLECCIØNDEELEMENTOSY EL4/0%,OSMÏTODOS POROTRAPARTE SONTODASAQUELLASOPERACIONESANALIZADASENLA SECCIØNANTERIOR0ILA?VACÓA 0ILA?LLENA 0ONEY1UITA%NLAlGURASEPUEDE OBSERVARGRÈlCAMENTELACLASE0ILA 3ETIENEACCESOALOSMIEMBROSDEUNOBJETODELACLASE0ILAPORMEDIODELANOTA CIØNDEPUNTOS!LASUMIRQUELAVARIABLE0)/"*REPRESENTAUNOBJETODELACLASE0ILA PREVIAMENTECREADO SEPUEDEHACER 0)/"*0ILA?LLENAPARAINVOCARELMÏTODOQUEDETERMINASILAPILAESTÈLLENAONO %NESTEMÏTODONOHAYARGUMENTOS YAQUETODOSLOSVALORESREQUERIDOSSONMIEMBROS DELACLASE 0)/"*0ONEARGUMENTO PARAINSERTARUNNUEVOELEMENTOENLAPILA%NESTEMÏTODO SØLOHAYUNARGUMENTOQUEINDICAELVALORAGUARDARENLAPILALOSDEMÈSVALORESREQUE RIDOSSONMIEMBROSDELACLASE
&)'52! #LASE1JMB
$0-"4
93
#/,!3 5NACOLACONSTITUYEUNAESTRUCTURALINEALDEDATOSENLAQUELOSNUEVOSELEMENTOSSE INTRODUCENPORUNEXTREMOYLOSYAEXISTENTESSEELIMINANPORELOTRO%SIMPORTANTE SE×ALARQUELOSCOMPONENTESDELACOLASEELIMINANENELMISMOORDENENELCUALSE INSERTARON%SDECIR ELPRIMERELEMENTOQUESEINTRODUCEENLAESTRUCTURASERÈELQUE SEELIMINARÈENPRIMERORDEN$EBIDOAESTACARACTERÓSTICA LASCOLASTAMBIÏNRECIBENEL NOMBREDEESTRUCTURAS&)&/&IRST )N &IRST /UTELPRIMEROENENTRARESELPRIMEROEN SALIR
&)'52! %JEMPLOSPRÉCTICOS DECOLAS
94
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 %XISTEN NUMEROSOS CASOS DE LA VIDA REAL EN LOS CUALES SE USA ESTE CONCEPTO 0OR EJEMPLO LACOLADELOSBANCOSENLASQUELOSCLIENTESESPERANPARASERATENDIDOSLA PRIMERAPERSONADELACOLASERÈLAPRIMERAENRECIBIRELSERVICIO LACOLADELOSNI×OS QUE ESPERAN A VECES PACIENTEMENTE PARA SUBIR A UN JUEGO MECÈNICO LAS COLAS DE LOS VEHÓCULOSESPERANDOLALUZVERDEDELSEMÈFORO LASCOLASPARAENTRARAUNCINE TEATROO ESTADIODEFÞTBOL ETCÏTERA
2EPRESENTACIØNDECOLAS ,ASCOLAS ALIGUALQUELASPILAS NOEXISTENCOMOESTRUCTURASDEDATOSESTÈNDARENLOS LENGUAJESDEPROGRAMACIØN%STETIPODEESTRUCTURADEDATOSSEPUEDEREPRESENTARME DIANTEELUSODE ◗ ◗
!RREGLOS ,ISTAS
!LIGUALQUEENELCASODELASPILAS ENESTELIBROSEUTILIZARÈNARREGLOSPARAMOS TRARSUFUNCIONAMIENTO3INEMBARGO LAIMPLEMENTACIØNMEDIANTELISTASESINCLUSOMÈS SENCILLA%LLECTORPUEDEIMPLEMENTARLOSALGORITMOSNECESARIOSPARACOLAS DESPUÏSDE ESTUDIARELCAPÓTULOQUESEDEDICAALAESTRUCTURALINEALDEDATOS #UANDOSEIMPLEMENTANCONARREGLOSUNIDIMENSIONALES ESIMPORTANTEDElNIRUN TAMA×OMÈXIMOPARALACOLAYDOSVARIABLESAUXILIARES5NADEELLASPARAQUEALMA CENELAPOSICIØNDELPRIMERELEMENTODELACOLA&2%.4%YOTRAPARAQUEGUARDE LAPOSICIØNDELÞLTIMOELEMENTODELACOLA&).!,%NLAlGURASEMUESTRA LAREPRESENTACIØNDEUNACOLAENLACUALSEHANINSERTADOTRESELEMENTOS Y ENESEORDEN %LELEMENTOESTÈENEL&2%.4%YAQUEFUEELPRIMEROQUESEINSERTØMIENTRAS QUEELELEMENTO QUEFUEELÞLTIMOENENTRAR ESTÈENEL&).!,DELACOLA
&)'52! 2EPRESENTACIØNDECOLAS
$0-"4
95
&)'52! 2EPRESENTACIØNDECOLAS A #OLALLENAB #OLACON ALGUNOSELEMENTOSC #OLA VACÓA
%NLAlGURA POROTRAPARTE SEPRESENTANEJEMPLOSDEA COLALLENA B COLACON ALGUNOSELEMENTOSYC COLAVACÓA
/PERACIONESCONCOLAS ,ADElNICIØNDELAESTRUCTURADEDATOSTIPOCOLAQUEDACOMPLETAALINCLUIRLASOPERACIO NESQUESEPUEDENREALIZARENELLA,ASOPERACIONESBÈSICASQUEPUEDENEFECTUARSESON ◗ ◗
)NSERTARUNELEMENTOENLACOLA %LIMINARUNELEMENTODELACOLA
,ASINSERCIONESSELLEVARÈNACABOPOREL&).!,DELACOLA MIENTRASQUELASELIMI NACIONESSEHARÈNPOREL&2%.4%RECUERDEQUEELPRIMEROENENTRARESELPRIMEROEN SALIR #ONSIDERANDOQUEUNACOLAPUEDEALMACENARUNMÈXIMONÞMERODEELEMENTOSY QUEADEMÈS&2%.4%INDICALAPOSICIØNDELPRIMERELEMENTOY&).!,LAPOSICIØNDEL ÞLTIMO SEPRESENTANACONTINUACIØNLOSALGORITMOSCORRESPONDIENTESALASOPERACIONES MENCIONADAS !LGORITMO )NSERTA?COLA
)NSERTA?COLA#/,! -!8 &2%.4% &).!, $!4/ [%STE ALGORITMO INSERTA EL ELEMENTO $!4/ AL lNAL DE UNA ESTRUCTURA TIPO COLA &2%.4% Y &).!,SONLOSPUNTEROSQUEINDICAN RESPECTIVAMENTE ELINICIOYlNDE#/,!,APRIMERAVEZ &2%.4%Y&).!,TIENENELVALOR YAQUELACOLAESTÈVACÓA-!8ESELMÈXIMONÞMERODE ELEMENTOSQUEPUEDEALMACENARLACOLA]
96
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
3I&).!,-!8 [6ERIlCAQUEHAYESPACIOLIBRE] ENTONCES (ACER&).!,←&).!,[!CTUALIZA&).!,]Y#/,!;&).!,=←$!4/ 3I&).!, ENTONCES[3EINSERTØELPRIMERELEMENTODE#/,!] (ACER&2%.4%← [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh$ESBORDAMIENTOn#OLALLENAv [&INDELCONDICIONALDELPASO]
!LGORITMO %LIMINA?COLA %LIMINA?COLA#/,! &2%.4% &).!, $!4/ [%STEALGORITMOELIMINAELPRIMERELEMENTODEUNAESTRUCTURATIPOCOLAYLOALMACENAEN$!4/ &2%.4%Y&).!,SONLOSPUNTEROSQUEINDICAN RESPECTIVAMENTE ELINICIOYlNDELACOLA] 3I&2%.4%≠ [6ERIlCAQUELACOLANOESTÏVACÓA] ENTONCES (ACER$!4/←#/,!;&2%.4%= 3I&2%.4%&).!, [3IHAYUNSOLOELEMENTO] ENTONCES (ACER&2%.4%←Y&).!,←[)NDICA#/,!VACÓA] SINO (ACER&2%.4%←&2%.4% [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh3UBDESBORDAMIENTOn#OLAVACÓAv [&INDELCONDICIONALDELPASO]
%SPOSIBLEDElNIRALGORITMOSAUXILIARESPARADETERMINARSIUNACOLAESTÈLLENAOVA CÓA!PARTIRDEESTOSALGORITMOSSEPODRÓANREESCRIBIRLOSALGORITMOSY !CONTINUACIØNSEPRESENTANLOSALGORITMOSQUEPERMITENVERIlCARELESTADODEUNA COLA QUEDANDOCOMOTAREASUGERIDALAREESCRITURADELOSDOSALGORITMOSANTERIORES !LGORITMO #OLA?VACÓA #OLA?VACÓA#/,! &2%.4% "!.$ [%STEALGORITMODETERMINASIUNAESTRUCTURADEDATOSTIPOCOLAESTÈVACÓA ASIGNANDOA"!.$ ELVALORDEVERDADCORRESPONDIENTE] 3I&2%.4%
$0-"4
97
ENTONCES (ACER"!.$←6%2$!$%2/ SINO (ACER"!.$←&!,3/ [&INDELCONDICIONALDELPASO]
!LGORITMO #OLA?LLENA #OLA?LLENA#/,! &).!, -!8 "!.$ [%STEALGORITMODETERMINASIUNAESTRUCTURADEDATOSTIPOCOLAESTÈLLENA ASIGNANDOA"!.$ EL VALOR DE VERDAD CORRESPONDIENTE -!8 ES EL NÞMERO MÈXIMO DE ELEMENTOS QUE PUEDE ALMACENAR#/,!] 3I&).!,-!8 ENTONCES (ACER"!.$←6%2$!$%2/ SINO (ACER"!.$←&!,3/ [&INDELCONDICIONALDELPASO]
!QUÓSEINCLUYEUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODELASOPERACIONESDE INSERCIØNYELIMINACIØNENCOLAS
%JEMPLO
&)'52! )NSERCIØNYELIMINACIØN ENCOLAS
2ETOMEELEJEMPLODELASECCIØN3EINSERTANEN#/,!LOSELEMENTOSLUNES MARTES MIÏRCOLES JUEVESYVIERNESENESEORDEN DEMODOQUELAESTRUCTURAQUEDA COMOSEMUESTRAENLAlGURA0ARAESTEEJEMPLO-!8
98
>«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4
&)'52! )NSERCIØNYELIMINACIØNEN COLASA ,UEGODEELIMINAR LUNESB ,UEGODEINSERTAR SÉBADO
%LELEMENTOLUNESESELPRIMEROQUESEPUEDEELIMINARPORSERELPRIMEROQUESE INSERTØENLACOLA,UEGODELAELIMINACIØN &2%.4%GUARDALAPOSICIØNDELSIGUIENTE ELEMENTOlGA 3IAHORASEINSERTARASÈBADO ÏSTEOCUPARÓAAHORALAPOSICIØNSI GUIENTEALELEMENTOVIERNESlGB !NALICELOQUEOCURREENLACOLA SISELLEVANACABOLASSIGUIENTESOPERACIONES 3EELIMINANMARTES MIÏRCOLES JUEVESYVIERNESlGA 3EINSERTADOMINGOlGB 3EELIMINASÈBADOlGC &)'52! )NSERCIØNYELIMINACIØNENCOLASA ,UEGODEELIMINARMARTES MIÏRCOLES JUEVESYVIERNES B ,UEGODEINSERTARDOMINGOC ,UEGODEELIMINARSÉBADO
$0-"4
99
$ESPUÏSDEINSERTARALELEMENTODOMINGO YANOSEPUEDENINSERTARNUEVOSELEMEN TOSALACOLAPORQUE&).!,ESIGUALQUE-!8&).!,-!8 3INEMBARGO COMO LOREmEJALAlGURAC EXISTEESPACIODISPONIBLEDESPERDICIADO /BSERVEQUELUEGODEINSERTARDOMINGOSELLEGØAUNASITUACIØNCONmICTIVAPORQUEA PESARDEQUEHAYESPACIODISPONIBLE NOSEPUEDENINSERTAROTROSELEMENTOS%STEINCON VENIENTESEPUEDESUPERARPERFECTAMENTESIMANEJAMOSLASCOLASENFORMACIRCULAR
#OLASCIRCULARES 5NACOLACIRCULARCONSTITUYEUNAESTRUCTURADEDATOSLINEALENLACUALELSIGUIENTEELE MENTO DEL ÞLTIMO EN REALIDAD ES EL PRIMERO $E ESTA FORMA SE UTILIZA DE MANERA MÈS ElCIENTELAMEMORIADELACOMPUTADORA%NLAlGURASEMUESTRALAREPRESENTACIØN GRÈlCADEUNACOLACIRCULAR %NLAlGURASEILUSTRACØMOSEACTUALIZANLOSPUNTEROS&2%.4%Y&).!,EN UNACOLACIRCULAR AMEDIDAQUESEINSERTANOELIMINANELEMENTOS%NLAlGURAALA COLATIENEALGUNOSELEMENTOS&2%.4%Y&).!, %NLAlGURABSEHANELI
&)'52! 2EPRESENTACIØNDECOLAS CIRCULARESA &RENTE&INAL B &RENTE&INALC &RENTE &INAL
100 >«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 MINADODELACOLADOSELEMENTOSPRIMEROSEQUITØ88YLUEGO99 QUEDANDO&2%. 4%0ORÞLTIMO ENLAlGURACSEHAINSERTADOUNNUEVOELEMENTO00ENLA COLA#OMO&).!,-!8SELLEVØELAPUNTADORALAPRIMERAPOSICIØNQUEESTABAVACÓA &).!, $EESTAMANERASELOGRAMEJORAPROVECHAMIENTODELESPACIODEMEMORIA YAQUEALELIMINARUNELEMENTOLACASILLACORRESPONDIENTEDELACOLAQUEDADISPONIBLE PARAFUTURASINSERCIONES ! CONTINUACIØN SE PRESENTAN LOS ALGORITMOS DE INSERCIØN Y ELIMINACIØN EN COLAS CIRCULARES !LGORITMO )NSERTA?CIRCULAR )NSERTA?CIRCULAR#/,!#)2 -!8 &2%.4% &).!, $!4/ [%STEALGORITMOINSERTAELELEMENTO$!4/ALlNALDEUNAESTRUCTURATIPOCOLACIRCULAR#/ ,!#)2 &2%.4% Y &).!, SON LOS PUNTEROS QUE INDICAN RESPECTIVAMENTE EL INICIO Y EL lN DE LA COLA CIRCULAR -!8 ES EL NÞMERO MÈXIMO DE ELEMENTOS QUE PUEDE ALMACENAR #/,!#)2] 3I&).!,-!8 Y&2%.4% O&).!, &2%.4% ENTONCES %SCRIBIRh$ESBORDAMIENTOn#OLALLENAv SINO 3I&).!,-!8 ENTONCES (ACER&).!,← SINO (ACER&).!,←&).!, [&INDELCONDICIONALDELPASO] (ACER#/,!#)2;&).!,=←$!4/ 3I&2%.4% ENTONCES (ACER&2%.4%← [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!LGORITMO %LIMINA?CIRCULAR %LIMINA?CIRCULAR#/,!#)2 -!8 &2%.4% &).!, $!4/ [%STEALGORITMOELIMINAELPRIMERELEMENTODEUNAESTRUCTURATIPOCOLACIRCULAR#/,!#)2 YLOALMACENAEN$!4/&2%.4%Y&).!,SONLOSPUNTEROSQUEINDICAN RESPECTIVAMENTE EL INICIOYlNDELAESTRUCTURA-!8ESELTAMA×ODE#/,!#)2] 3I&2%.4% [6ERIlCASILACOLAESTÈVACÓA] ENTONCES %SCRIBIRh3UBDESBORDAMIENTOn#OLAVACÓAv
$0-"4
101
SINO (ACER$!4/←#/,!#)2;&2%.4%= 3I&2%.4%&).!,[3IHAYSØLOUNELEMENTO] ENTONCES (ACER&2%.4%←Y&).!,← SINO 3I&2%.4%-!8 ENTONCES (ACER&2%.4%← SINO (ACER&2%.4%←&2%.4% [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!CONTINUACIØNSEPRESENTAUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODELASOPE RACIONESDEINSERCIØNYELIMINACIØNENCOLASCIRCULARES
%JEMPLO
%NLAlGURAASEPRESENTAUNAESTRUCTURATIPOCOLACIRCULARDEMÈXIMOELEMENTOS -!8 EN LA CUAL YA SE HAN ALMACENADO ALGUNOS VALORES %N LA lGURA B SE MUESTRAELESTADODELACOLALUEGODEINSERTARELELEMENTO.. 3ISEQUISIERAINSERTAROTROELEMENTOSEPRESENTARÓAUNERRORDEDESBORDAMIENTO YA QUE&).!,&2%.4% !CONTINUACIØNSEELIMINANLOSVALORES88 99 :: ++ 44Y66ENESEORDEN,A COLAQUEDACOMOSEMUESTRAENLAlGURA
&)'52! )NSERCIØNYELIMINACIØNENCOLASCIRCULARESA %STADOINICIALDELACOLACIRCULARB ,UEGO DEINSERTAR..
102 >«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 &)'52! )NSERCIØNYELIMINACIØN ENCOLASCIRCULARES
!HORASEELIMINAELSIGUIENTEELEMENTO22!LSER&2%.4%-!8 SELEDAEL VALORDE lGURA &)'52! )NSERCIØNYELIMINACIØN ENCOLASCIRCULARES
!LELIMINAR.. COMO&2%.4%&).!, ESDECIR SØLOQUEDABAUNELEMENTOENLA COLA ACTUALIZAMOSLOSDOSPUNTEROSENCERO,ACOLAQUEDAVACÓA lGURA &)'52! )NSERCIØNYELIMINACIØN ENCOLASCIRCULARES
$OBLECOLA 5NADOBLECOLAOBICOLAESUNAGENERALIZACIØNDEUNAESTRUCTURADEDATOSTIPOCOLA%N UNADOBLECOLA LOSELEMENTOSSEPUEDENINSERTAROELIMINARPORCUALQUIERADELOSDOS EXTREMOS%SDECIR SEPUEDENINSERTARYELIMINARVALORESTANTOPOREL&2%.4%COMOPOR EL&).!,DELACOLA5NADOBLECOLASEREPRESENTACOMOSEMUESTRAENLAlGURA/B SERVEQUELASDOSmECHASENCADAEXTREMOINDICANQUEAMBASOPERACIONESSONPOSIBLES
$0-"4
103
&)'52! 2EPRESENTACIØNDEDOBLE COLA
%XISTENDOSVARIANTESDELASDOBLESCOLAS ◗ ◗
$OBLECOLACONENTRADARESTRINGIDA $OBLECOLACONSALIDARESTRINGIDA
,APRIMERADEELLASPERMITEQUELASELIMINACIONESSEREALICENPORCUALESQUIERADE LOSDOSEXTREMOS MIENTRASQUELASINSERCIONESSØLOPOREL&).!,DELACOLAlG ,ASEGUNDAVARIANTEPERMITEQUELASINSERCIONESSEREALICENPORCUALQUIERADELOSDOS EXTREMOS MIENTRASQUELASELIMINACIONESSØLOPOREL&2%.4%DELACOLAlG
&)'52! $OBLECOLACONENTRADA RESTRINGIDA
&)'52! $OBLECOLACONSALIDA RESTRINGIDA
!PLICACIONESDECOLAS %LCONCEPTODECOLAESTÈLIGADOACOMPUTACIØN5NAAPLICACIØNCOMÞNDELASCOLASSE PRESENTACUANDOSEENVÓAAIMPRIMIRALGÞNDOCUMENTOOPROGRAMAENLASCOLASDEIMPRE SIØN#UANDOHAYUNASOLAIMPRESORAPARAATENDERAVARIOSUSUARIOS SUELESUCEDERQUE ALGUNOSDEELLOSSOLICITENLOSSERVICIOSDEIMPRESIØNALMISMOTIEMPOOMIENTRASELDIS POSITIVOESTÈOCUPADO%NESTOSCASOSSEFORMAUNACOLACONLOSTRABAJOSQUEESPERANPARA SERIMPRESOSÏSTOSSEPROCESARÈNENELORDENENELCUALFUERONINTRODUCIDOSENLACOLA
104 >«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 /TROCASODEAPLICACIONESDECOLASENCOMPUTACIØNESELQUESEPRESENTAENLOSSIS TEMASDETIEMPOCOMPARTIDO6ARIOSUSUARIOSCOMPARTENCIERTOSRECURSOS COMO#05Y MEMORIADELACOMPUTADORA,OSRECURSOSSEASIGNANALOSPROCESOSQUEESTÈNENCOLADE ESPERA SUPONIENDOQUETODOSTIENENUNAMISMAPRIORIDAD ENELORDENENELCUALFUERON INTRODUCIDOSENLACOLA
,ACLASE#OLA ,A CLASE #OLA TIENE ATRIBUTOS Y MÏTODOS COMO CUALQUIER CLASE ,OS ATRIBUTOS SON LA COLECCIØNDEELEMENTOSYLOSPUNTEROS&2%.4%Y&).!,,OSMÏTODOS POROTRAPARTE SONTODASLASOPERACIONESANALIZADASENLASSECCIONESANTERIORES#OLA?VACÓA #OLA?LLE NA )NSERTA?COLAY%LIMINA?COLA %NLAlGURASEPUEDEOBSERVARGRÈlCAMENTEALACLASE#OLA3ETIENEACCESOA LOSMIEMBROSDEUNOBJETODELACLASE#OLAPORMEDIODELANOTACIØNDEPUNTOS#UANDO SEASUMEQUELAVARIABLE#//"*ESUNOBJETODELACLASE#OLA PREVIAMENTECREADO SE PUEDEHACER #//"*#OLA?LLENAPARAINVOCARELMÏTODOQUEDETERMINASILACOLAESTÈONOLLENA %NESTEMÏTODONOHAYARGUMENTOS YAQUETODOSLOSVALORESREQUERIDOSSONMIEMBROS DELACLASE #//"*)NSERTA?COLAARGUMENTO PARA INSERTAR UN NUEVO ELEMENTO EN LA COLA %N ESTEMÏTODOHAYUNÞNICOARGUMENTO QUEESELDATOAINSERTARTODOSLOSOTROSVALORES REQUERIDOSSONMIEMBROSDELACLASE
&)'52! #LASE#OLA°
&+&3$*$*04
105
▼ %*%2#)#)/3 0ILAS Ê £° 4RADUZCALASSIGUIENTESEXPRESIONESANOTACIØNPOSlJAMEDIANTEELALGORITMO A B C D E F
8 :7 4n6 :n7 98>+ 8>:n4 7 8n9 4n: :89 4 >7 7 :+n4
Ê Ó° 4RADUZCALASSIGUIENTESEXPRESIONESANOTACIØNPRElJACONELALGORITMO A B C D E F
8n4 >: : +n7 8 >9n4 84 7+ : 8n7>+ :n8 >::n9 >+ 78n: 4 n9 >+
Ê Î° %SCRIBAUNPROGRAMAQUELEAUNAEXPRESIØNENNOTACIØNINlJA YLATRADUZCAANOTA CIØNPOSlJA Ê {° %SCRIBA UN PROGRAMA QUE LEA UNA EXPRESIØN EN NOTACIØN POSlJA Y LA TRADUZCA A NOTACIØNPRElJA Ê x° %SCRIBAUNPROGRAMAQUEEVALÞE CONLAAYUDADEUNAPILA UNAEXPRESIØNARITMÏTICA DADAENNOTACIØNPRElJA Ê È° %SCRIBAUNPROGRAMAQUEEVALÞE CONLAAYUDADEUNAPILA UNAEXPRESIØNARITMÏTICA DADAENNOTACIØNPOSlJA Ê Ç° %SCRIBAUNSUBPROGRAMAQUEINSERTEUNELEMENTOENUNAPILA#ONSIDERETODOSLOS CASOSQUESEPUEDANPRESENTAR Ê n° %SCRIBAUNSUBPROGRAMAQUEELIMINEUNELEMENTOENUNAPILA#ONSIDERETODOSLOS CASOSQUESEPUEDANPRESENTAR Ê ° $IBUJELOSDISTINTOSESTADOSDEUNAESTRUCTURATIPOPILASISELLEVANACABOLASSI GUIENTESOPERACIONES-UESTRECØMOVANQUEDANDOLAPILAYELPUNTEROALTOPEDE LA MISMA #ONSIDERE QUE LA PILA ESTÈ INICIALMENTE VACÓA 4/0% Y TIENE UNA CAPACIDADMÈXIMAPARAELEMENTOS
106 >«ÌÕÊÎÊ Ê Ê 1*-"4:$0-"4 A B C D E F G H I
)NSERTAR0),! 8 )NSERTAR0),! 9 %LIMINAR0),! : %LIMINAR0),! 4 %LIMINAR0),! 5 )NSERTAR0),! 6 )NSERTAR0),! 7 %LIMINAR0),! 0 )NSERTAR0),! 2 ◗ ◗
z#ONCUÈNTOSELEMENTOSQUEDØLAPILA z(UBOALGÞNCASODEERRORDESBORDAMIENTOOSUBDESBORDAMIENTO 3IOCURRIØ ALGÞNERROR EXPLÓQUELO
£ä°%SCRIBAUNSUBPROGRAMAQUEELIMINELOSELEMENTOSREPETIDOSDEUNAPILA,OSELE MENTOSREPETIDOSOCUPANPOSICIONESSUCESIVAS ££°%SCRIBAUNSUBPROGRAMAQUEINVIERTALOSELEMENTOSDEUNAPILA £Ó°$ElNALACLASE0ILA USANDOALGÞNLENGUAJEORIENTADOAOBJETOS CONBASEENLOSAL GORITMOSPRESENTADOSPARAPROGRAMARLOSMÏTODOSPARAINSERTAR ELIMINARYVERIlCAR ELESTADODELAPILA
#OLAS £Î°3EA#UNACOLACIRCULARDEELEMENTOS)NICIALMENTELACOLAESTÈVACÓA&2%.4% &).!, $IBUJEELESTADODE#LUEGODEREALIZARCADAUNADELASSIGUIENTES OPERACIONES A )NSERTARLOSELEMENTOS!! ""Y## B %LIMINARELELEMENTO!! C )NSERTARLOSELEMENTOS$$ %%Y&& D )NSERTARELELEMENTO'' E )NSERTARELELEMENTO(( F %LIMINARLOSELEMENTOS""Y## ◗ ◗
z#ONCUÈNTOSELEMENTOSQUEDØ# z(UBOALGÞNCASODEERRORDESBORDAMIENTOOSUBDESBORDAMIENTO 3IOCU RRIØALGÞNERROR EXPLÓQUELO
£{°%SCRIBAUNSUBPROGRAMAQUEINSERTEUNELEMENTOENUNACOLACIRCULAR#ONSIDERE TODOSLOSCASOSQUESEPUEDANPRESENTAR £x°%SCRIBAUNSUBPROGRAMAQUEELIMINEUNELEMENTODEUNACOLACIRCULAR#ONSIDERE TODOSLOSCASOSQUESEPUEDANPRESENTAR
&+&3$*$*04
107
£È°5TILICEUNAESTRUCTURADECOLAPARASIMULARELMOVIMIENTODECLIENTESENUNACOLA DEESPERADEUNBANCOSEPUEDEAUXILIARCONLOSSUBPROGRAMASESCRITOSENLOS EJERCICIOSY £Ç°%SCRIBAUNSUBPROGRAMAQUEINVIERTALOSELEMENTOSDEUNACOLA £n°Ê$ElNAUNALGORITMOPARAINSERTARUNELEMENTOENUNADOBLECOLA £°$ElNAUNALGORITMOPARAELIMINARUNELEMENTODEUNADOBLECOLA Óä°Ê3EA#UNADOBLECOLACIRCULARDEELEMENTOS)NICIALMENTELADOBLECOLAESTÈVACÓA &2%.4%&).!, $IBUJEELESTADODELACOLADESPUÏSDEREALIZARCADAUNA DELASSIGUIENTESOPERACIONES A B C D
)NSERTARPORELEXTREMODERECHOTRESELEMENTOS! "Y# %LIMINARPORELEXTREMOIZQUIERDOUNELEMENTO )NSERTARPORELEXTREMOIZQUIERDODOSELEMENTOS$Y% %LIMINARPORLADERECHAUNELEMENTO
Ó£°$ElNALACLASE#OLA MEDIANTEALGÞNLENGUAJEDEPROGRAMACIØNORIENTADOAOBJETOS TOMANDO COMO BASE PARA PROGRAMAR LOS MÏTODOS LOS ALGORITMOS ESTUDIADOS PARA INSERTAR ELIMINARYVERIlCARELESTADODELACOLA ÓÓ°3ETIENEUNACOLADEIMPRESIØNDONDESEALMACENANLASCLAVESDELOSDOCUMENTOS QUESEDEBENIMPRIMIR%NLAMEDIDAENQUELLEGAUNNUEVOTRABAJO ÏSTESEENCOLA #UANDOLAIMPRESORASELIBERASETOMAUNTRABAJODELACOLAYSEIMPRIME5TILICELA CLASEPREVIAMENTEDElNIDAPARADECLARARELOBJETO#OLA)MPRESIØNYEMPLÏELOENEL DESARROLLODELAAPLICACIØNDESCRITA
#APÓTULO
{
2%#523)¼. ).42/$5##)¼. ,ARECURSIØNORECURSIVIDADESUNCONCEPTOAMPLIO CONMUCHASVARIANTES YDIFÓCILDE PRECISARCONPOCASPALABRAS!PARECEENNUMEROSASACTIVIDADESDELAVIDADIARIAPOR EJEMPLO ENUNAFOTOGRAFÓADONDESEOBSERVAOTRAFOTOGRAFÓA/TROCASOILUSTRATIVOESEL QUESEPRESENTAENLOSPROGRAMASDETELEVISIØN ENLOSCUALESUNPERIODISTATRANSlEREEL CONTROLDELANOTICIAAOTROPERIODISTAQUESEENCUENTRAENOTRACIUDAD YÏSTE ASUVEZ HACELOMISMOCONUNTERCERO#UANDOESTEÞLTIMOTERMINASUPARTICIPACIØNREGRESAEL CONTROL AL SEGUNDO Y CUANDO ÏSTE TAMBIÏN lNALIZA SU INTERVENCIØN REGRESA EL CONTROL ALPRIMERO%NESTECAPÓTULONOSLIMITAREMOSATRATARLARECURSIØNCOMOHERRAMIENTADE PROGRAMACIØN ,ARECURSIØNESUNRECURSOMUYPODEROSOQUEPERMITEEXPRESARSOLUCIONESSIMPLES YNATURALESACIERTOSTIPOSDEPROBLEMAS%SIMPORTANTECONSIDERARQUENOTODOSLOSPRO BLEMASSONNATURALMENTERECURSIVOSALGUNOSSÓLOSONYOTROSNO 5NOBJETORECURSIVOESAQUELQUEAPARECEENLADElNICIØNDESÓMISMO ASÓCOMOEL QUESELLAMAASÓMISMO,OSÈRBOLES POREJEMPLO QUESEESTUDIARÈNENELCAPÓTULO REPRESENTANLASESTRUCTURASDEDATOS NOLINEALESYDINÈMICAS MÈSElCIENTESQUEEXISTEN ACTUALMENTEENCOMPUTACIØN,ACARACTERÓSTICADELOSÈRBOLESESQUESONESTRUCTURASIN HERENTEMENTERECURSIVAS%SDECIR ENCUALQUIERACTIVIDADDEPROGRAMACIØNQUESEREALICE CONÈRBOLESSEUTILIZALARECURSIVIDAD ,ARECURSIØNSEPUEDEPRESENTARDEDOSMANERASDIFERENTES A $IRECTAELPROGRAMAOSUBPROGRAMASELLAMADIRECTAMENTEASÓMISMO0OREJEM PLO OBSERVEQUEENLAlGURA0REPRESENTAUNPROGRAMAYENALGUNAPARTEDEÏL APARECEUNALLAMADAASÓMISMO B )NDIRECTA EL SUBPROGRAMA LLAMA A OTRO SUBPROGRAMA Y ÏSTE EN ALGÞN MOMENTO LLAMANUEVAMENTEALPRIMERO0OREJEMPLO ENLAlGURAELSUBPROGRAMA0LLAMAAL SUBPROGRAMA1YÏSTE ASUVEZ INVOCAALPRIMEROESDECIR ELCONTROLREGRESAA0 %NTODADElNICIØNRECURSIVADEUNPROBLEMASIEMPRESEDEBENESTABLECERDOSPASOS DIFERENTESYMUYIMPORTANTESELPASOBÈSICOYELPASORECURSIVO%LPRIMERO UNOO VARIOS DEPENDIENDODELPROBLEMA SEUTILIZACOMOCONDICIØNDEPARADAOlNDELARECUR SIVIDAD!ÏSTELLEGAMOSCUANDOENCONTRAMOSLASOLUCIØNDELPROBLEMAOCUANDODECI DIMOSQUEYANOVAMOSASEGUIR PORQUENOESTÈNDADASLASCONDICIONESPARAHACERLO%L
110 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ &)'52! 2ECURSIØNDIRECTA
PASOSEGUNDO POROTRAPARTE PROPICIALARECURSIVIDAD3EPUEDENPRESENTARUNOOVARIOS NUEVAMENTEDEPENDIENDODELPROBLEMAARESOLVER #UANDOSEANALIZALASOLUCIØNRECURSIVADEUNPROBLEMAESIMPORTANTEDETERMINAR CONPRECISIØNCUÈLESSERÈNLOSPASOSBÈSICOYRECURSIVO%NCADAVUELTADELCICLOESIM PORTANTEQUENOSACERQUEMOSCADAVEZMÈSALASOLUCIØNDELPROBLEMA OSEA ALPASO BÈSICO3IESTONOOCURRE ENTONCESPODEMOSESTARANTEUNCICLOEXTRA×O%SDECIR ELPRO BLEMAESTARÓAMALDElNIDOY ENTALCASO LAMÈQUINASEQUEDARÓAEJECUTANDOPORTIEMPO INDElNIDOELPROGRAMAENQUEESTUVIERA YSØLOTERMINARÓAALAGOTARSELAMEMORIA !CONTINUACIØNSEPRESENTANALGUNOSEJEMPLOSQUENOSPUEDENAYUDARACOMPREN DERMÈSRÈPIDAMENTEELCONCEPTORECURSIØN
%JEMPLO
&ACTORIALDEUNNÞMERO %LFACTORIALDEUNNÞMEROENTEROPOSITIVONSEDElNECOMOELPRODUCTODELOSNÞMEROS COMPRENDIDOSENTREYN4AMBIÏNCOMONPORELFACTORIALDENn ASÓAPARECEEL CONCEPTODERECURSIØN,AEXPRESIØNNSIMBOLIZAELFACTORIALDEN!CONTINUACIØNSE ILUSTRAESTECASO 0ORDElNICIØN
&)'52! 2ECURSIØNINDIRECTA
→0ASOBÈSICO →0ASOBÈSICO
*/530%6$$*Î/
111
NN Nn c Nn x →0ASORECURSIVO !LCALCULAR POREJEMPLO ELFACTORIALDE DECIMOSQUEESIGUALA !LFACTO RIALDE LOCALCULAMOSCOMO !LFACTORIALDE COMO YASÓSUCESIVAMENTE HASTALLEGARAUNPASOBÈSICOQUEDETIENELARECURSIVIDAD,LEGAMOSADElNIR ENTONCES ELFACTORIALDEUNNÞMERONENTÏRMINOSDELFACTORIALDELNÞMERONn ▼ &ØRMULA
3INON
0ASOBÈSICO
N Nn
3IN
0ASORECURSIVO
N
!CONTINUACIØNSEPRESENTAELALGORITMORECURSIVODELCÈLCULODELFACTORIAL !LGORITMO &ACTORIAL?REC &ACTORIAL?REC. [%STEALGORITMOCALCULAELFACTORIALDEUNNÞMERO.ENFORMARECURSIVA DONDE.ESUNVALOR NUMÏRICOENTERO POSITIVOONULO] 3I. ENTONCES (ACER&ACTORIAL?REC←[0ASOBÈSICO] SINO (ACER&ACTORIAL?REC←. &ACTORIAL?REC.n [,LAMADAPASORECURSIVA] [&INDELCONDICIONALDELPASO]
#UANDO SE REALIZA UNA LLAMADA RECURSIVA SE UTILIZA EN FORMA IMPLÓCITA UNA ES TRUCTURA TIPO PILA PARA ALMACENAR LAS INSTRUCCIONES PENDIENTES DE EJECUTAR CON TODOS LOSVALORESQUETIENENLASVARIABLESOCONSTANTESENESEMOMENTO#UANDOSETERMINALA EJECUCIØNSELLEGAALESTADOBÈSICO SETOMALAINSTRUCCIØNQUESEENCUENTRAENELTOPEDE LAPILAYSECONTINÞAOPERANDO%STAACCIØNSEREPITEHASTAQUELAPILAQUEDEVACÓA
112 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ %NLAlGURASEPUEDEOBSERVARENFORMAGRÈlCAELSEGUIMIENTODELALGORITMO PARA. /BSERVEQUEENLAPILAELNÞMEROQUESEENCUENTRAENTRECORCHETESENLAPRIMERACO LUMNADELAIZQUIERDAHACEREFERENCIAALALLAMADARECURSIVAQUESEREALIZA%STESÓMBOLO PERMITEOBSERVARELORDENENQUESEREALIZANLASLLAMADASRECURSIVAS0OREJEMPLO ;= EXPRESAQUEESAESLAPRIMERALLAMADARECURSIVA ;=REPRESENTALASEGUNDALLAMADAYASÓ SUCESIVAMENTE0OROTRAPARTE ELMISMONÞMEROENTRECORCHETESALAIZQUIERDARELACIONA LALLAMADARECURSIVACONELVALORQUEINGRESAALALGORITMOENCADALLAMADA !CONTINUACIØNSEPRESENTALAVARIANTEITERATIVADELCÈLCULODELFACTORIAL.UNCAHAY QUEDESCARTARLASVARIANTESITERATIVASDELASOLUCIØNDEUNPROBLEMA PORQUEAUNCUANDO ÏSTESEPUEDERESOLVERNATURALMENTEDEFORMARECURSIVA ESIMPORTANTETENERSIEMPREEN CUENTAQUELARECURSIØNNECESITADEUNAPILAPARASUFUNCIONAMIENTOYQUEÏSTACONSUME ESPACIODEMEMORIA%NALGUNOSLENGUAJESDEPROGRAMACIØN ELESPACIODEDICADOALA PILAESMUYPEQUE×O PORLOQUESIELPROBLEMAQUESEINTENTARESOLVERREQUIEREDEUNA CANTIDADDEESPACIOMAYORPILAQUELAQUEOFRECEELLENGUAJE ELPROBLEMANOSE PODRÈRESOLVERPORFALTADEMEMORIA%NTALCASO UNAFORMAPARAREMEDIARESTEINCONVE NIENTEESUTILIZANDOITERATIVIDADENLUGARDERECURSIVIDAD !LGORITMO &ACTORIAL?ITE &ACTORIAL?ITE. [%STEALGORITMOCALCULAELFACTORIALDEUNNÞMERO.ENFORMAITERATIVA DONDE.ESUNVALOR NUMÏRICOENTERO POSITIVOONULO] [&!#4ESUNAVARIABLEDETIPOENTERO] (ACER&!#4← -IENTRAS. 2EPETIR[#ICLOPARACALCULAR.] (ACER&!#4←. &!#4Y.←.n [&INDELCICLODELPASO] %SCRIBIR&!#4
&)'52! &UNCIONAMIENTO INTERNODELARECUR SIØN FACTORIAL
*/530%6$$*Î/
113
,ASIGUIENTETABLAPRESENTALOSVALORESQUEVANADQUIRIENDOLASVARIABLES DURANTE ELCÈLCULODE 4!",!
.
&!#4
#ÉLCULODELFACTORIAL ENFORMAITERATIVA
%JEMPLO
3UCESIØNDE&IBONACCI/TROPROBLEMACLÈSICODERECURSIVIDADESELDELCÈLCULODELA SUCESIØNDE,EONARDODE0ISA CONOCIDOCOMO&IBONACCI ETCÏTERA !LGUNASPROPIEDADESDEESTASUCESIØN SEGÞN7IKIPEDIA LAENCICLOPEDIALIBRE SON ◗
◗ ◗ ◗ ◗
%L COCIENTE ENTRE UN TÏRMINO Y EL INMEDIATAMENTE ANTERIOR VARÓA CONTINUAMENTE PEROSEESTABILIZAENUNNÞMEROIRRACIONALCONOCIDOCOMORAZØNÈUREAONÞMERO ÈUREO QUEESLASOLUCIØNPOSITIVADELAECUACIØNX£nXn YSEPUEDEAPROXIMAR POR #UALQUIERNÞMERONATURALSEPUEDEESCRIBIRMEDIANTELASUMADEUNNÞMEROLIMITA DODETÏRMINOSDELASUCESIØNDE&IBONACCI CADAUNODEELLOSDISTINTOALOSDEMÈS 0OREJEMPLO 4ANSØLOUNTÏRMINODECADATRESESPAR UNODECADACUATROESMÞLTIPLODE UNODE CADACINCOESMÞLTIPLODE ETC%STOSEPUEDEGENERALIZAR DEFORMAQUELASUCESIØN DE&IBONACCIESPERIØDICAENLASCONGRUENCIASMØDULOM PARACUALQUIERM 3I&IBONACCIDEP &P ESUNNÞMEROPRIMO PTAMBIÏNLOES CONUNAÞNICAEXCEP CIØN& ESPRIMO PERONOLOES ,ASUMAINlNITADELOSTÏRMINOSDELASUCESIØN&N NESEXACTAMENTE
%L&IBONACCIDEUNNÞMEROSEOBTIENEDELASUMADELOSDOSNÞMEROS&IBONACCI ANTERIORES0ORDElNICIØN &IBONACCI →0ASOBÈSICO &IBONACCI →0ASOBÈSICO &IBONACCI &IBONACCI &IBONACCI &IBONACCI &IBONACCI &IBONACCI &IBONACCI &IBONACCI &IBONACCI &IBONACCIN &IBONACCINn &IBONACCINn →0ASORECURSIVO
114 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ ,AFØRMULAPRESENTAUNADElNICIØNRECURSIVADELASERIEDE&IBONACCI ▼ &ØRMULA
N
SI
N ON
&IBONACCIN
&IBONACCINn &IBONACCINn SI
N
%NESTEEJEMPLOELPASOBÈSICOSEPRESENTACUANDONON%NELPASORECUR SIVODELAFØRMULASEUTILIZAELCONCEPTODE&IBONACCIAPLICADOANn YNn 0OR SERNUNNÞMEROENTEROPOSITIVOSERÈNNn YNn VALORESMÈSCERCANOSALESTADO BÈSICO %LALGORITMOPRESENTAUNASOLUCIØNRECURSIVADELCÈLCULODEUNNÞMERO&IBO NACCIN !LGORITMO &IBONACCI?REC &IBONACCI?REC. [%STEALGORITMOCALCULAELNÞMERO&IBONACCICORRESPONDIENTEA.ENFORMARECURSIVA DONDE. ESUNVALORNUMÏRICOENTERO POSITIVOONULO] 3I. O. ENTONCES (ACER&IBONACCI?REC←.[0ASOBÈSICO] SINO (ACER&IBONACCI?REC←&IBONACCI?REC.n &IBONACCI?REC.n [,LAMADASRECURSIVAS] [&INDELCONDICIONALDELPASO]
%NLAlGURASEPUEDEOBSERVARELSEGUIMIENTODELALGORITMOPARA. /BSERVEQUEENLAPILAELNÞMEROQUESEENCUENTRAENTRECORCHETESHACEREFERENCIA ALALLAMADARECURSIVAQUESEREALIZA0OREJEMPLO ;=EXPRESAQUEÏSAESLAPRIMERA LLAMADARECURSIVA ;=LASEGUNDALLAMADAYASÓSUCESIVAMENTE0OROTRAPARTE ELMISMO NÞMEROENTRECORCHETESALAIZQUIERDA &IBONACCI?REC. RELACIONALALLAMADARECURSIVA CONELVALORQUEINGRESAALALGORITMOENCADALLAMADA &IBONACCIREPRESENTAELCASODEUNALGORITMOQUESEPUEDERESOLVERNATURALMENTE DEMANERARECURSIVA PEROQUERESULTAINElCIENTEHACERLODEESTAFORMATANTOENCUANTOA TIEMPOCOMOAESPACIOQUESEUTILIZAENLAPILAPARAALMACENARLASLLAMADASPENDIENTES DEEJECUTAR!DEMÈS OBSERVEQUEENMUCHASOCASIONESSETIENEQUERESOLVERELMISMO
*/530%6$$*Î/
115
&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNNÞMEROS&IBONACCI
PROBLEMA AUNCUANDOYATENGAMOSUNASOLUCIØNPARAESECASO YESTORESULTACOMPLETA MENTEIMPRÈCTICOADEMÈSDEINElCIENTE%NELEJEMPLOQUESEMUESTRAENLAlGURA &IBONACCI?REC SETUVOQUERESOLVERENCINCOOCASIONES LLAMADASRECURSIVAS Y !CONTINUACIØNSEPRESENTAUNAVARIANTEITERATIVAPARARESOLVERELPROBLEMADELOS NÞMEROSDE&IBONACCI !LGORITMO &IBONACCI?ITE &IBONACCI?ITE. [%STEALGORITMOCALCULAELNÞMERO&IBONACCICORRESPONDIENTEA.ENFORMAITERATIVA.ESUN VALORNUMÏRICOENTERO POSITIVOONULO] [&)"/ &)"! &)""E)SONVARIABLESDETIPOENTERO]
116 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ 3I. O. ENTONCES (ACER&)"/←. SINO (ACER&)"!← &)""←E)← [&INDELCONDICIONALDELPASO] -IENTRAS)≤. 2EPETIR (ACER&)"/←&)""&)"! &)"!←&)"" &)""←&)"/E)←) [&INDELCICLODELPASO] %SCRIBIR&)"/
%NLATABLASEPRESENTANLOSVALORESQUEVANADQUIRIENDOLASVARIABLESDURANTEEL CÈLCULODELNÞMERO&IBONACCI. 4!",!
.
#ÉLCULODELOSNÞMEROS &IBONACCIENFORMAITERATIVA
%JEMPLO
&)"/
&)"!
&)""
)
)MPRESIØNDEUNARREGLO $ADOCOMODATOUNARREGLOUNIDIMENSIONALDETIPOENTERO ESCRIBAELCONTENIDODELAS CASILLASDELMISMODEIZQUIERDAADERECHA !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO !RREGLO?IMP !RREGLO?IMP! . [%LALGORITMOESCRIBEDEIZQUIERDAADERECHALOSELEMENTOSDEUNARREGLOUNIDIMENSIONAL!DE TIPOENTERO.REPRESENTAELTAMA×ODELARREGLO] 3I.≠ ENTONCES !RREGLO?IMP! .n %SCRIBIR!;.= [&INDELCONDICIONALDELPASO]
*/530%6$$*Î/
117
&)'52! &UNCIONAMIENTOIN TERNODELARECURSIØN IMPRESIØNDEARREGLOS
%N LA lGURA SE PUEDE OBSERVAR EL SEGUIMIENTO DEL ALGORITMO PARA UN ARREGLO UNIDIMENSIONALDETIPOENTERODESIETEELEMENTOS /BSERVEQUE%;.=ENLAPILASEUTILIZAPARAMOSTRARELORDENENQUESEREALIZANLAS LLAMADASRECURSIVAS0OROTRAPARTE EN)MPRESIØNDERESULTADOS ELMISMOSÓMBOLOSE UTILIZAPARARELACIONARLALLAMADARECURSIVACONELVALORQUESEIMPRIME
%JEMPLO
)MPRESIØNDEUNARREGLO $ADOCOMODATOUNARREGLOUNIDIMENSIONALDETIPOENTERO ESCRIBAELCONTENIDODELAS CASILLASDELMISMODEDERECHAAIZQUIERDA !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO !RREGLO?IMP !RREGLO?IMP! . [%LALGORITMOESCRIBEDEDERECHAAIZQUIERDALOSELEMENTOSDEUNARREGLOUNIDIMENSIONAL!DE TIPOENTERO.REPRESENTAELTAMA×ODELARREGLO] 3I.≠ ENTONCES %SCRIBIR!;.= !RREGLO?IMP! .n [&INDELCONDICIONALDELPASO]
%SIMPORTANTESE×ALARQUE ENESTECASO ADIFERENCIADELALGORITMO NOSEUTILIZA LAPILAINTERNAMENTEPARAIRGUARDANDOINSTRUCCIONESPENDIENTESDEEJECUCIØN,UE GODEEVALUARSELACONDICIØN SIÏSTARESULTAVERDADERASEESCRIBEELVALORDELAPOSICIØN.
118 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ DELARREGLOYSELLAMANUEVAMENTEALAFUNCIØN AHORACON.n5NAVEZQUESEALCANZA ELESTADOBÈSICO ELALGORITMOTERMINA
%JEMPLO
3UMADEUNARREGLO $ADOCOMODATOUNARREGLOUNIDIMENSIONALDETIPOENTERO OBTENGALASUMADELMISMO !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO !RREGLO?SUM !RREGLO?SUM! . [%LALGORITMOOBTIENELASUMADELOSELEMENTOSDEUNARREGLOUNIDIMENSIONAL!DETIPOENTERO .REPRESENTAELTAMA×ODELARREGLO] 3I. ENTONCES (ACER!RREGLO?SUM← SINO (ACER!RREGLO?SUM←!;.=!RREGLO?SUM6 .n [&INDELCONDICIONALDELPASO]
%NLAlGURASEOBSERVAELSEGUIMIENTODELALGORITMOPARAUNARREGLOUNIDIMEN SIONALDETIPOENTERODESIETEELEMENTOS
&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNSUMADEARREGLOS
*/530%6$$*Î/
119
/BSERVENUEVAMENTEQUEELNÞMEROENTRECORCHETESENLA0ILA SEUTILIZAPARAMOS TRARELORDENCONQUESEREALIZANLASLLAMADASRECURSIVAS%LNÞMEROENTRECORCHETESQUE SEENCUENTRAEN!RREGLO?SUM! . RELACIONALALLAMADARECURSIVACONLOSVALORESQUE RECIBELAFUNCIØN
%JEMPLO
%UCLIDES %LALGORITMODE%UCLIDESREPRESENTAUNMÏTODOEFECTIVOPARAENCONTRARELMÈXIMOCO MÞNDIVISORMCD ENTREDOSNÞMEROSENTEROSPOSITIVOS%LALGORITMOCONSISTEENVARIAS DIVISIONESEUCLIDIANASSUCESIVAS%NLAPRIMERADIVISIØNSETOMACOMODIVIDENDOELMA YORDELOSNÞMEROSYCOMODIVISORELOTROAHORRANDOASÓUNPASO,UEGOELDIVISORYEL RESTOSIRVEN RESPECTIVAMENTE DEDIVIDENDOYDIVISORDELASIGUIENTEDIVISIØN%LPROCESO SEDETIENECUANDOSEOBTIENEUNRESTONULO ,AFØRMULAPRESENTALADElNICIØNRECURSIVADELALGORITMODE%UCLIDES%SIM PORTANTEMENCIONARQUEDEBECUMPLIRSEQUE-≥.!CONTINUACIØNSEPRESENTAELALGO RITMOCORRESPONDIENTE ▼ &ØRMULA
- 3I.
%UCLIDES- .
%UCLIDES. --/$.
%NCUALQUIEROTROCASO
!LGORITMO %UCLIDES %UCLIDES- . [%STEALGORITMOCALCULAELMÈXIMOCOMÞNDIVISORDEDOSNÞMEROSENTEROSPOSITIVOS-Y.SON VALORESNUMÏRICOSENTEROSPOSITIVOS] 3I. ENTONCES (ACER%UCLIDES←SINO (ACER%UCLIDES←%UCLIDES. --/$. [&INDELCONDICIONALDELPASO]
%NLAlGURASEOBSERVAELSEGUIMIENTODELALGORITMOPARADOSCORRIDASDIFEREN TES%NLAPRIMERA -Y.%NLASEGUNDA -Y. %SIMPORTANTESE×ALARQUE ENESTECASO NOSEUTILIZALAPILAINTERNAMENTEPARAIR GUARDANDOINSTRUCCIONESPENDIENTESDEEJECUCIØN5NAVEZQUESEALCANZAELESTADOBÈ SICO ELALGORITMOTERMINADANDOELRESULTADOlNAL
120 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ &)'52! &UNCIONAMIENTOINTERNODE LARECURSIØNALGORITMO DE%UCLIDES
%JEMPLO
!CKERMANN ,A FUNCIØN DE!CKERMANN UTILIZADA EN LA TEORÓA DE LA COMPUTACIØN ES UNA FUNCIØN RECURSIVAQUETOMADOSNÞMEROSNATURALESCOMOARGUMENTOSYDEVUELVEUNNÞMERONA TURAL,AFØRMULAPRESENTALADElNICIØNRECURSIVADELAFUNCIØNDE!CKERMANN
«N ® ! M N ¬ ! M ® ! M ! M N
▼ &ØRMULA
SI M SI M Y N SI M Y N
3EGÞN7IKIPEDIA LAFUNCIØNCRECERÈPIDAMENTE0ARADARSEUNAIDEADELAMAGNI TUDDELOSVALORESQUEAPARECENDELAlLAENADELANTECUANDOMESIGUALA SEPUEDE DESTACARQUE POREJEMPLO ! ESMAYORQUEELNÞMERODEPARTÓCULASQUEFORMANEL UNIVERSOELEVADOALAPOTENCIAYELRESULTADODE! NOSEPUEDEESCRIBIRDADO QUENOCABRÓAENELUNIVERSOFÓSICO%NGENERAL PORENCIMADELAlLAYANOESPOSIBLE ESCRIBIRTODOSLOSDÓGITOSDELRESULTADODELAFUNCIØN %NLATABLASEPRESENTA CONELOBJETODEQUEELLECTORPUEDAOBSERVARLACOM PLEJIDADDELAFUNCIØNCUANDOLOSVALORESSEINCREMENTAN ELRESULTADODELAFUNCIØN DE!CKERMANNYELNIVELDEPROFUNDIDADQUESEALCANZACUANDO-Y.TOMANCIERTOS VALORES
4!",!
-
.
!CKERMANN
0ROFUNDIDAD
!CKERMANNYVALORES DE-Y.
CONTINÞA
*/530%6$$*Î/ 4!",! CONTINÞACIØN
-
.
!CKERMANN
121
0ROFUNDIDAD
!CONTINUACIØNSEPRESENTAELALGORITMOQUERESUELVEELPROBLEMADE!CKERMANN !LGORITMO !CKERMANN !CKERMANN- . [%STE ALGORITMO CALCULA LA FUNCIØN DE !CKERMANN - Y . SON VALORES NUMÏRICOS ENTEROS POSITIVOSONULOS] 3I- ENTONCES (ACER!CKERMANN←. [%STADOBÈSICO] SINO 3I. ENTONCES (ACER!CKERMANN←!CKERMANN-n SINO (ACER!CKERMANN←!CKERMANN-n !CKERMANN- .n [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%NLAlGURASEPUEDEOBSERVARELSEGUIMIENTODELALGORITMODE!CKERMANNPARA VALORESDE-Y. #ONSIDERE NUEVAMENTE QUE EL NÞMERO ENTRE CORCHETES TANTO EN LA PILA COMO EN !CKERMANN. SEUTILIZAPARAOBSERVARELORDENCONQUESEREALIZANLASLLAMADASRECUR SIVAS
%JEMPLO
!LGORITMODEPARTICIØN %STEALGORITMO RECIENTEMENTEDESCUBIERTO PERMITECONOCERTODASLASFORMASENLASCUA LESUNNÞMEROENTEROPOSITIVOPUEDESERDESCOMPUESTOCOMOLASUMADEVARIOSSUMAN
122 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/
&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNFUNCIØNDE!CKERMANN
DOS,ASOLUCIØNENCONTRADAAESTEPROBLEMAPUEDESERVIRTANTOALAFÓSICADEPARTÓCULAS COMOALASEGURIDADINFORMÈTICA 3EGÞNEL.EW3CIENTIST +ARL-AHLBURG ESTUDIANTEDELA5NIVERSIDADDE7ISCONSIN HADEDICADOUNA×OPARASOLUCIONARELPROBLEMAQUEIMPLICATRABAJARCONPATRONESDENÞ MEROSh(ELLENADODECÈLCULOSYECUACIONESCUADERNOTRASCUADERNOv DICE-AHLBURG ,OSPATRONESFUERONDESCUBIERTOSPORPRIMERAVEZPOR2AMANUJAN UN HINDÞQUEFUEEXPULSADODELAUNIVERSIDADPORDESCUIDARLOSESTUDIOSDETODOLOQUENO FUERANMATEMÈTICAS3UPASIØNPORLASMATEMÈTICASLELLEVØASEGUIRINVESTIGANDOYAES CRIBIRAMATEMÈTICOSINGLESESEXPONIENDOSUSTEORÓAS!UTODIDACTO EMPEZØATRABAJAREN EL-ADRAS0ORT4RUST YLUEGO EN FUEADMITIDOENLA5NIVERSIDADDE#AMBRIDGE 0OSTERIORMENTEFUEELEGIDOMIEMBRODELA2OYAL3OCIETYYDEL4RINITY#OLLEGE0OCOS A×OSDESPUÏSREGRESØALA)NDIA DONDEFALLECIØTRASUNAMISTERIOSAENFERMEDAD !CONTINUACIØNSEPRESENTALAFØRMULACORRESPONDIENTE
*/530%6$$*Î/
123
▼ &ØRMULA
3I-
3I.
0ARTICIØN- .
0ARTICIØN- -
3I-.
0ARTICIØN- n-
3I-.
0ARTICIØN- .n 0ARTICIØN-n. . 3I-. !CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE
!LGORITMO 0ARTICIØN 0ARTICIØN- . [%STEALGORITMOCALCULADECUANTASFORMASDIFERENTESSEPUEDEDESCOMPONERUNNÞMEROENTERO POSITIVO-Y.SONVALORESNUMÏRICOSENTEROSPOSITIVOS!LINICIARELALGORITMO-.] 3I- O. ENTONCES (ACER0ARTICIØN←[%STADOBÈSICO] SINO 3I-. ENTONCES (ACER0ARTICIØN- - SINO 3I-. ENTONCES (ACER0ARTICIØN←0ARTICIØN- -n SINO (ACER0ARTICIØN←0ARTICIØN- .n 0ARTICIØN-n. . [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%NLAlGURASEPRESENTAELSEGUIMIENTODELALGORITMOPARAOBTENERELNÞMERODE FORMASENQUESEPUEDEDESCOMPONERELNÞMERO -. /BSERVE NUEVAMENTE QUE EL NÞMERO ENTRE CORCHETES TANTO EN LA PILA COMO EN 0ARTICIØN- . SEUTILIZAPARAOBSERVARELORDENCONQUESEREALIZANLASLLAMADASRE CURSIVAS
124 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/
&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNALGORITMODEPARTICIØN
%JEMPLO
,OSNÞMEROSDE#ATALAN %STOSNÞMEROSSEUTILIZANENUNAGRANVARIEDADDEPROBLEMASDECOMBINATORIA4IENEN VARIASAPLICACIONESPOREJEMPLO DADOSCOMODATOSNMATRICES PERMITENENCONTRAREL NÞMERODEFORMASENQUESEPODRÓANMULTIPLICAR/TRAAPLICACIØNCONSISTEENDETERMINAR ELNÞMERODEFORMASENQUEUNPOLÓGONOCONNLADOSSEPUEDEDESCOMPONERENN TRIÈNGULOS %N COMBINATORIA LOS NÞMEROS DE #ATALAN FORMAN UNA SECUENCIA DE NÞMEROS NA TURALESQUEAPARECEENVARIOSPROBLEMASDECONTEOQUEHABITUALMENTESONRECURSIVOS /BTIENENSUNOMBREDELMATEMÈTICOBELGA%UGÒNE#HARLES#ATALAN %LENÏSIMONÞMERODE#ATALANSEOBTIENESEGÞNLASIGUIENTEFØRMULA
#N
¥ N´ N ¦§ N µ¶
▼ &ØRMULA CON N r
5NAMANERARECURSIVADEEXPRESARLOSNÞMEROSDE#ATALANSEOBSERVAENLASIGUIENTE FØRMULA
*/530%6$$*Î/
125
▼ &ØRMULA
3I.
#ATALAN. .
¤
#ATALAN) #ATALAN.n) %NCUALQUIEROTROCASO
)
,OSPRIMEROSNÞMEROSDE#ATALANSIGUIENDOLAFØRMULARECURSIVASON %LPROBLEMA SINEMBARGO LOREPRESENTALAGRANCANTIDADDELLAMADASRECURSIVASQUE SENECESITANREALIZARPARAALCANZARESTOSRESULTADOS0OREJEMPLO SI.QUEARROJARÓA COMOVALORELNÞMERO SENECESITARÓACASIUNACENTENADELLAMADASRECURSIVAS !CONTINUACIØNSEPRESENTAELALGORITMOQUERESUELVEESTEPROBLEMA !LGORITMO #ATALAN #ATALAN. [%STEALGORITMOOBTIENEELRESULTADODELOSNÞMEROSDE#ATALAN.ESUNVALORNUMÏRICOENTERO POSITIVO] [)Y3SONVARIABLESDETIPOENTERO] 3I. ENTONCES (ACER#ATALAN←[%STADOBÈSICO] SINO (ACER3← 2EPETIRCON)DESDEHASTA. (ACER#ATALAN←3#ATALAN) #ATALAN.n) [&INDELCICLODELPASO] [&INDELCONDICIONALDELPASO]
,AlGURAMUESTRAELSEGUIMIENTODELALGORITMODE#ATALANPARA.
%JEMPLO
#OElCIENTESBINOMIALES %LTRIÈNGULODE0ASCALESUNTRIÈNGULODENÞMEROSENTEROS INlNITOYSIMÏTRICOCUYAS DIEZPRIMERASLÓNEASSEPUEDENOBSERVARENLAlGURA
126 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/
&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNLOSNÞMEROSDE#ATALAN
%LTRIÈNGULOSECONSTRUYEDELASIGUIENTEMANERAPRIMEROSEESCRIBEELDELPRIMER RENGLØN LACIMADELTRIÈNGULO!PARTIRDELASIGUIENTELÓNEAENTRECADANÞMEROSEDEJA UN NÞMERO DETERMINADO DE ESPACIOS EN BLANCO TRES EN ESTE CASO PARA DAR CLARIDAD #ADANÞMEROQUESEESCRIBEENUNRENGLØNESLASUMADELOSDOSQUESEENCUENTRANEN ELRENGLØNDEARRIBA0OREJEMPLO ELQUESEENCUENTRAENMEDIODELSEGUNDORENGLØN REPRESENTALASUMADELOSDOSNÞMEROSQUESEENCUENTRANARRIBADEÏL%LDELQUINTO RENGLØNSEDERIVADELASUMADELOSDOSNÞMEROSDEARRIBA Y%LPRIMERDELSEXTO RENGLØNSEDERIVADELASUMADELOSDOSNÞMEROSQUESEENCUENTRANARRIBA Y YASÓ SUCESIVAMENTE 3EPUEDEOBSERVAR ADEMÈS QUELOSLADOSEXTERIORESDELTRIÈNGULOESTÈNFORMADOS POR3ILEQUITAMOSELLADODELCOSTADOIZQUIERDO ENTONCESNOSQUEDANLOSNÞMEROS NATURALESENORDENCRECIENTEDELAL0ODEMOSHACERLOMISMOCONELOTROCOSTADO YA QUEEXISTEUNEJEDESIMETRÓAVERTICALQUEPASAPORELVÏRTICEDELTRIÈNGULO
*/530%6$$*Î/
127
&)'52! 4RIÉNGULODE0ASCAL
,A FØRMULA QUE DA EL DESARROLLO DE A B SEGÞN LAS POTENCIAS CRECIENTES DE A Y DECRECIENTES DE B SE LLAMA BINOMIO DE .EWTON %N ESTA EXPRESIØN LO ÞNICO QUE SE DESCONOCESONLOSCOElCIENTESDELOSMONOMIOSAKBNnK,ADElNICIØNHABITUALDELOS COElCIENTESBINOMIALESSEEXPRESAENTÏRMINOSDEFACTORIALES COMOSEPUEDEOBSERVAR ENLAFØRMULA
K N # b K b N N K N K
▼ &ØRMULA
3INEMBARGO TAMBIÏNESPOSIBLEPRESENTARUNADElNICIØNRECURSIVA COMOSEMUES TRAENLASIGUIENTEFØRMULA ▼ &ØRMULA
3I#". O#. .
#". +
87.n + #".n +n 3I.+
%LALGORITMODESCRIBELASOLUCIØNDELPROBLEMADELOSCOElCIENTESBINOMIA LES
128 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ !LGORITMO #" #". + [%STE ALGORITMO OBTIENE EL RESULTADO DE LOS COElCIENTES BINOMIALES . Y + SON VALORES NUMÏRICOSENTEROSPOSITIVOSONULOS] 3I+ O.+ ENTONCES (ACER#"←[%STADOBÈSICO] SINO (ACER#"←#".n +n #".n + [&INDELCONDICIONALDELPASO]
%NLAlGURA SEPUEDEOBSERVARELSEGUIMIENTODELALGORITMOPARA.Y+ .OOLVIDEQUELOSNÞMEROSQUEAPARECENENTRECORCHETESSONPARAILUSTRARELORDEN ENQUESEREALIZANLASLLAMADASRECURSIVAS
&)'52! &UNCIONAMIENTOINTERNODELARECURSIØNCOElCIENTESBINOMIALES
&-130#-&."%&-"45033&4%&)"/0*
129
%,02/",%-!$%,!34/22%3$%(!./) %LPROBLEMADELAS4ORRESDE(ANOIESUNPROBLEMACLÈSICODERECURSIØN YAQUEPERTE NECEALACLASEDEPROBLEMASCUYASOLUCIØNSESIMPLIlCANOTABLEMENTEALUTILIZARESTE CONCEPTO 3ETIENENTRESTORRESYUNCONJUNTODE.DISCOSDEDIFERENTESTAMA×OS#ADAUNO DEELLOSTIENEUNAPERFORACIØNENELCENTROQUELEPERMITEDESLIZARSEPORCUALQUIERADE LASTORRES)NICIALMENTELOS.DISCOSESTÈNORDENADOSDEMAYORAMENORENUNADELAS TORRES %LOBJETIVODELPROBLEMACONSISTEENPASARLOS.DISCOSDELATORREDEORIGENAUNA TORREDESTINO UTILIZANDOLAOTRATORREDISPONIBLE COMOAUXILIAR!CONTINUACIØNSEPRE SENTANLASREGLASQUESEDEBENRESPETARENCADAMOVIMIENTO %NCADAMOVIMIENTOSØLOPUEDEINTERVENIRUNDISCOPORLOTANTO SIEMPRESERÈEL DISCOSUPERIORELQUEPUEDAMOVERSE .OPUEDEQUEDARUNDISCOSOBREOTRODEMENORTAMA×O 3UPONGAMOS QUE LAS TORRES SE IDENTIlCAN CON LOS NOMBRES ! " Y # ,OS DISCOS INICIALMENTESEENCUENTRANENLATORRE!ORIGEN%LOBJETIVO COMOSE×ALAMOSANTE RIORMENTE CONSISTEENTRANSFERIRTODOSLOSDISCOSALATORRE"DESTINO UTILIZANDOLA TORRE#COMOAUXILIAR%NLASlGURASAYBSEPRESENTANELESTADOINICIALYELESTADO lNAL RESPECTIVAMENTE DELPROBLEMADELAS4ORRESDE(ANOIPARACINCODISCOS %SIMPORTANTEOBSERVAR SISEANALIZADETENIDAMENTEELPROBLEMA QUEÏSTESEPUEDE DESCOMPONER EN TRES SUBPROBLEMAS UNO DE LOS CUALES EL SEGUNDO SE CONSIDERA TRI VIALIDAD PORQUE IMPLICA ÞNICAMENTE UN MOVIMIENTO 3E MUESTRAN A CONTINUACIØN LOS DIFERENTESSUBPROBLEMAS 4RANSFERIR.n DISCOSDELATORRE!ORIGENALATORRE#AUXILIAR -OVERUNDISCODELATORRE!ORIGENALATORRE"DESTINO 4RANSFERIR.n DISCOSDELATORRE#AUXILIARALATORRE"DESTINO %NLAlGURASEPRESENTALASOLUCIØNALPROBLEMADELAS4ORRESDE(ANOIPARA DOSDISCOS . /BSERVEQUESEREALIZANTRESMOVIMIENTOS -OVERDE!A# -OVERDE!A" -OVERDE#A" %NLAlGURA POROTRAPARTE SEILUSTRALASOLUCIØNDELPROBLEMADELAS4ORRES DE(ANOIPARATRESDISCOS .0RIMEROSETRANSlERENDOS.n DISCOSDELATORRE! ALATORREAUXILIAR#lGURASB CYD 0OSTERIORMENTESEREALIZAELMOVIMIENTODEL DISCODELATORRE!ALATORREDESTINO"lGURAE &INALMENTESERESUELVEELTERCER SUBPROBLEMA SETRANSlEREN.n DISCOSDELATORRE#AUXILIARALATORRE!lGURAS F G H
130 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ &)'52! 4ORRESDE(ANOI A %STADOINICIAL B Ê%STADOlNAL
,OSMOVIMIENTOSQUESEREALIZANPARARESOLVERESTEPROBLEMASONMOVERDE!A# -OVERDE!A" -OVERDE"A# -OVERDE!A" -OVERDE#A! -OVERDE#A" -OVERDE!A" ,UEGODEREALIZARNUMEROSASPRUEBASPARADISTINTOSVALORESDE. SEPUEDECONCLUIR QUEPARACUALQUIER. ELNÞMERODEMOVIMIENTOS.- ESTÈDADOPORLASIGUIENTEFØR MULA
.-Nn
▼ &ØRMULA
!SÓ POREJEMPLO PARACINCODISCOSSEEFECTUARÈNMOVIMIENTOS PARADIEZDISCOS MOVIMIENTOSYPARADISCOSMOVIMIENTOS !CONTINUACIØNSEPRESENTAELALGORITMORECURSIVOQUEPERMITERESOLVERESTEPRO BLEMA
&-130#-&."%&-"45033&4%&)"/0* &)'52! 4ORRESDE(ANOI. A %STADOINICIALB ,UEGO DEMOVERUNDISCODE!A #C ,UEGODEMOVERUN DISCODE!A"D %STADO lNAL
131
132 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ &)'52! 4ORRESDE(ANOI. A %STADOINICIAL B ,UEGODEMOVERUNDISCO DE!A" C ,UEGODEMOVERUNDISCO DE!A# D ,UEGODEMOVERUNDISCO DE"A#
&-130#-&."%&-"45033&4%&)"/0* &)'52! CONTINUACIØN E ,UEGODEMOVERUNDISCO DE!A" F ,UEGODEMOVERUNDISCO DE#A! G ,UEGODEMOVERUNDISCO DE#A" H %STADOlNAL
133
134 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ !LGORITMO (ANOI (ANOI. /2)'%. $%34)./ !58),)!2 [%STEALGORITMOOBTIENEYESCRIBELOSMOVIMIENTOSQUESEDEBENREALIZARPARATRANSFERIRLOS. DISCOSDELATORRE/2)'%.ALATORRE$%34)./ CONAYUDADELATORRE!58),)!2] 3I. ENTONCES %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v[%STADOBÈSICO] SINO [-OVER.nDISCOSDELATORRE/2)'%.ALATORRE!58),)!2] (ANOI.n /2)'%. !58),)!2 $%34)./ %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v [-OVER.nDISCOSDELATORRE!58),)!2ALATORRE$%34)./] (ANOI.n !58),)!2 $%34)./ /2)'%. [&INDELCONDICIONALDELPASO]
%NLAlGURASEMUESTRAELSEGUIMIENTODELALGORITMOPARACUATRODISCOS &)'52! &UNCIONAMIENTOINTERNODELARECURSIØNTORRESDE(ANOI
&-130#-&."%&-"45033&4%&)"/0*
135
%LALGORITMORECURSIVOANTERIOROFRECEUNASOLUCIØNCLARAYCOMPACTAALPROBLEMA DELAS4ORRESDE(ANOI3INEMBARGO ESPOSIBLETAMBIÏNPRESENTARUNASOLUCIØNITERATIVA AESTEPROBLEMA PEROESCONVENIENTEMENCIONARQUEENESTECASOESMÈSCOMPLICADAY EXTENSA 5NSUBPROGRAMAGENERALMENTETRABAJACONVARIABLESLOCALESYPARÈMETROS#UANDO SEHACEUNALLAMADARECURSIVAALSUBPROGRAMA LOSVALORESACTUALESDEVARIABLESYPARÈ METROSSEDEBENCONSERVAR!DEMÈSSEDEBEALMACENARLADIRECCIØNALACUALSETENDRÈ QUEREGRESARELCONTROLUNAVEZQUESETERMINADEEJECUTAR %L ALGORITMO ANTERIOR TRABAJA CON CUATRO PARÈMETROS . /2)'%. $%34)./ Y !58),)!20ARACONSTRUIRELALGORITMOITERATIVO SISEQUIERENCONSERVARLOSVALORESDE LOSPARÈMETROSENCADALLAMADARECURSIVA SEDEBERÈDElNIRUNAPILAPARACADAUNODE ELLOS/TRAALTERNATIVASERÓADElNIRUNAÞNICAPILA ENLAQUECADAELEMENTOFUERACAPAZ DEALMACENARLOSCUATROPARÈMETROS%NELALGORITMOQUESEVAAPRESENTARSETRABAJACON CUATROPILAS 0),!.PARAALMACENARIMÈGENESDE. 0),!/PARAALMACENARIMÈGENESDE/2)'%. 0),!$PARAALMACENARIMÈGENESDE$%34)./ 0),!8PARAALMACENARIMÈGENESDE!58),)!2 4AMBIÏN SERÈ NECESARIO MANEJAR UN 4/0% PARA LAS PILAS %L SIGUIENTE ALGORITMO PRESENTAUNASOLUCIØNITERATIVAALPROBLEMADELAS4ORRESDE(ANOI !LGORITMO (ANOI?ITE
(ANOI?ITE. /2)'%. $%34)./ !58),)!2 [%STEALGORITMORESUELVEELPROBLEMADELAS4ORRESDE(ANOIDEMANERANORECURSIVA/2)'%. $%34)./Y!58),)!2SONPARÈMETROSQUEREPRESENTANLASTRESTORRES.SIMBOLIZAELNÞMERO DEDISCOS] [0),!. 0),!/ 0),!$Y0),!8SONESTRUCTURASDEDATOSTIPOPILA4/0%ESUNAVARIABLE DE TIPO ENTERO6!2!58 ES UNA VARIABLE DE TIPO CARÈCTER "!.$ ES UNA VARIABLE DE TIPO BOOLEANO] (ACER4/0%←Y"!.$←&!,3/ -IENTRAS. Y"!.$&!,3/ 2EPETIR -IENTRAS. 2EPETIR (ACER4/0%←4/0% 0),!.;4/0%=←. 0),!/;4/0%=←/2)'%. 0),!$;4/0%=←$%34)./ 0),!8;4/0%=←!58),)!2 [3IMULALLAMADAA(ANOICON.n /2)'%. !58),)!2Y$%34)./] (ACER.←.n 6!2!58←$%34)./ $%34)./←!58),)!2 Y!58),)!2←6!2!58 [&INDELCICLODELPASO] %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v (ACER"!.$←6%2$!$%2/ 3I4/0% [,ASPILASNOESTÈNVACÓAS]
136 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ ENTONCES [3EEXTRAENLOSELEMENTOSDEL4/0%DELAPILAS] (ACER.←0),!.;4/0%= /2)'%.←0),!/;4/0%= $%34)./←0),!$;4/0%= !58),)!2←0),!!;4/0%= Y4/0%←4/0%n %SCRIBIRh-OVERUNDISCODE/2)'%.A$%34)./v [3IMULALLAMADAA(ANOICON.n !58),)!2 $%34)./Y/2)'%.] (ACER.←.n 6!2!58←/2)'%. /2)'%.←!58),)!2 !58),)!2←6!2!58Y"!.$←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
%NLAlGURASEMUESTRAELSEGUIMIENTODELALGORITMOPARATRESDISCOS
&)'52! 3EGUIMIENTODELALGORITMO ITERATIVO4ORRESDE(ANOI
3&$634*7*%"%&/03%&/"$*Î/:#Ò426&%"
137
2%#523)6)$!$%.2"/,%3 ,OSÈRBOLESREPRESENTANLASESTRUCTURASDEDATOSDINÈMICASYNOLINEALESMÈSINTERESAN TESDECOMPUTACIØN,AESTRUCTURADEÈRBOLESBALANCEADOSO!6,ESLAESTRUCTURADE DATOSMÈSElCIENTEPARATRABAJARENLAMEMORIARÈPIDADELACOMPUTADORA0OROTRAPARTE LAESTRUCTURADEDATOS«RBOLES " REPRESENTALAESTRUCTURADEDATOSMÈSElCIENTEPARA TRABAJARENMEMORIASECUNDARIADISPOSITIVOSDEALMACENAMIENTOSECUNDARIO ,OS ÈRBOLES SON UNA ESTRUCTURA INHERENTEMENTE RECURSIVA Y TODAS LAS OPERACIONES QUESEREALIZANENÈRBOLESSEDEBENPROGRAMARENFORMARECURSIVA!DIFERENCIADEOTRAS ESTRUCTURASDEDATOSENLASCUALESLASOPERACIONESSEPUEDENIMPLEMENTARTANTOENFORMA RECURSIVACOMOITERATIVA INDEPENDIENTEMENTEDELASDIFERENCIASQUESEPUEDENOBSERVAR CONRESPECTOALAElCIENCIA ENLOSÈRBOLESSØLOSEPUEDETRABAJARDEMANERARECURSIVA %NELCAPÓTULOCORRESPONDIENTEAÈRBOLESELLECTORPODRÈPRACTICARENFORMAINTENSA LARECURSIVIDAD
2%#523)6)$!$%./2$%.!#)¼.9"Â315%$! %NLOSCAPÓTULOSYELLECTORPODRÈAPLICARNUEVAMENTEELCONCEPTODERECURSIVIDAD%N ELCAPÓTULOSEPRESENTAELMÏTODOMÈSElCIENTEDEORDENACIØN 1UICKSORT QUEFUNCIONA DEMANERARECURSIVA %NELCAPÓTULO CORRESPONDIENTEABÞSQUEDA ELLECTORPODRÈESTUDIARNUEVAMENTE GRANCANTIDADDEALGORITMOSRECURSIVOS
138 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/
▼ %*%2#)#)/3 Ê £° )NVERSIØN DE CAPITAL 3E HA DEPOSITADO EN UNA INSTITUCIØN BANCARIA UN MONTO DE CAPITALMPORELCUALSERECIBEUN8DEINTERÏSANUAL%LPROBLEMACONSISTEENDE TERMINARELCAPITALQUESETENDRÈALCABODENA×OS%SCRIBAUNSUBPROGRAMARECUR SIVOQUERESUELVAESTEPROBLEMA2ECUERDEQUEDEBEESTABLECERLOSESTADOSBÈSICOY RECURSIVODELPROBLEMA Ê Ó° 2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO Ê Î° %SCRIBA UN SUBPROGRAMA RECURSIVO QUE INVIERTA EL ORDEN DE LOS ELEMENTOS DE UN ARREGLODE.NÞMEROSENTEROS%SDECIR QUEELELEMENTOQUEESTÈENLAPOSICIØNSE INTERCAMBIECONELQUEESTÈENLAPOSICIØN. ELDELAPOSICIØN CONELDELA.n YASÓSUCESIVAMENTE Ê {° 2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO Ê x° %SCRIBAUNSUBPROGRAMARECURSIVOQUEINVIERTAELORDENDEUNACADENADECARACTE RES0OREJEMPLO SILACADENADEENTRADAES2/-! ELRESULTADOQUEDEBEARROJAREL PROGRAMAES!-/2
Ê È° 3ETIENENTRESARREGLOS352 #%.42/Y./24%QUEALMACENANLOSNOMBRESDE LOSPAÓSESDE3UR #ENTROY.ORTEAMÏRICA RESPECTIVAMENTE,OSTRESARREGLOSESTÈN ORDENADOSENFORMAALFABÏTICA%SCRIBAUNSUBPROGRAMARECURSIVOQUEMEZCLELOS TRESARREGLOSANTERIORES FORMANDOUNCUARTOARREGLO !-²2)#! ENELCUALAPA REZCANLOSNOMBRESDETODOSLOSPAÓSESDELCONTINENTEORDENADOSALFABÏTICAMENTE #OMPAREESTASOLUCIØNCONLADESARROLLADAPARAELPROBLEMADELCAPÓTULO Ê Ç° $ADOCOMODATOELSIGUIENTEPROGRAMA SÓGALOYDIGAQUÏIMPRIMEPARALOSSIGUIEN TESVALORESDE88 8 8 08 [8ESUNPARÈMETRODETIPOENTEROPOSITIVO] 3I8 ENTONCES 0←8n SINO (ACER0←008 [&INDELCONDICIONALDELPASO]
&+&3$*$*04
139
Ê n° %SCRIBAUNSUBPROGRAMARECURSIVOQUELEPERMITACALCULARELDETERMINANTEDEUNA MATRIZCUADRADADEDIMENSIØNN Ê ° %SCRIBAUNSUBPROGRAMARECURSIVOQUEBUSQUEUNVALOR8ENUNARREGLOUNIDIMEN SIONALDEENTEROS ORDENADOENFORMADECRECIENTE £ä°%SCRIBAUNSUBPROGRAMARECURSIVOTALQUEDADOCOMODATOUNARREGLOUNIDIMENSIO NALDEENTEROSPOSITIVOSDEDIMENSIØN. DETERMINESILASSUMASDELASDOSMITADES DELELEMENTOAL.YDELELEMENTO.AL. SONIGUALES ££°%SCRIBAUNSUBPROGRAMARECURSIVOQUEQUITETODOSLOSESPACIOSENBLANCODEUNA CADENADECARACTERES £Ó°$ADOSCOMODATOSDOSNÞMEROSENTEROSPOSITIVOS!Y"ELSEGUNDOPUEDESER TAMBIÏNNULO ESCRIBAUNSUBPROGRAMARECURSIVOQUECALCULE!" £Î°%SCRIBAUNSUBPROGRAMAQUERESUELVALAFUNCIØNDE!CKERMANNENFORMAITERATIVA #OMPARESUSOLUCIØNCONLAANALIZADAENESTELIBRO £{°%SCRIBAUNSUBPROGRAMARECURSIVOQUE DADOCOMODATOUNNÞMEROENTEROPOSITIVO REGRESESITODOSLOSDÓGITOSDEDICHONÞMEROSONPARESYENOTROCASO £x°2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO £È°%SCRIBAUNSUBPROGRAMARECURSIVOQUE DADOCOMODATOUNNÞMEROENTEROPOSITIVO REGRESESIELNÞMEROESDIVISIBLEPORYENOTROCASO%LCRITERIOQUEDEBERÈ USARSEPARADETERMINARSIESDIVISIBLEESQUELADIFERENCIAENTRELASUMADELOSDÓ GITOSQUEOCUPANPOSICIONESPARESYLASUMADELOSDÓGITOSQUEOCUPANPOSICIONES IMPARESSEAUNMÞLTIPLODE0OREJEMPLO SIELNÞMEROES SETIENEQUE n YESMÞLTIPLODE £Ç°2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO £n°%SCRIBAUNSUBPROGRAMARECURSIVOQUE DADOCOMODATOUNNÞMEROENTEROPOSITIVO REGRESECOMORESULTADOLASUMADESUSDIVISORES £°2ETOMEELALGORITMO#ONV?POSTlJAOEL#ONV?PRElJA DELCAPÓTULO YDESARROLLEUNAVERSIØNRECURSIVADELMISMO#OMPARESUSOLUCIØNCONLAANALI ZADAENESTELIBRO)DENTIlQUEVENTAJASYDESVENTAJASDECADAUNADEELLAS Óä°%SCRIBAUNSUBPROGRAMARECURSIVOQUEINVIERTAELORDENDELOSELEMENTOSDEUNA PILA0UEDEUTILIZARCUALQUIERESTRUCTURADEDATOSCOMOAUXILIAR SILOREQUIERE
140 >«ÌÕÊ{Ê Ê Ê 3&$634*Î/ Ó£°%SCRIBAUNMÏTODORECURSIVO PARALACLASE#OLA QUEIMPRIMATODOSLOSELEMENTOS DEUNACOLACIRCULAR ÓÓ°2ETOMEELPROBLEMAANTERIORYRESUÏLVALODEMANERAITERATIVA#OMPARESUSSOLU CIONES TENIENDOENCUENTALAElCIENCIAENELMANEJODEMEMORIAYLALEGIBILIDADDEL CØDIGOGENERADO Óΰ%SCRIBAUNMÏTODORECURSIVO PARALACLASE#OLA QUEINVIERTAELORDENDELOSELE MENTOSDEUNACOLA0UEDEUTILIZARCUALQUIERESTRUCTURADEDATOSCOMOAUXILIAR SILO REQUIERE
#APÓTULO
x
,)34!3 ).42/$5##)¼. ,ASESTRUCTURASDEDATOSPRESENTADASHASTAELMOMENTO ARREGLOSYREGISTROS SEDENOMI NANESTÈTICAS2ECIBENESTENOMBREDEBIDOAQUEDURANTELACOMPILACIØNSELESASIGNAUN ESPACIODEMEMORIA YÏSTEPERMANECEINALTERABLEDURANTELAEJECUCIØNDELPROGRAMA %NESTECAPÓTULOSEPRESENTALAESTRUCTURADEDATOSLISTA%STEESUNTIPODEESTRUCTURA LINEALYDINÈMICADEDATOS,INEALPORQUEACADAELEMENTOLEPUEDESEGUIRSØLOOTROELE MENTODINÈMICAPORQUESEPUEDEMANEJARLAMEMORIADEMANERAmEXIBLE SINNECESIDAD DERESERVARESPACIOCONANTELACIØN ,APRINCIPALVENTAJADEMANEJARUNTIPODINÈMICODEDATOSESQUESEPUEDENADQUI RIRPOSICIONESDEMEMORIAAMEDIDAQUESENECESITANÏSTASSELIBERANCUANDOYANOSE REQUIEREN!SÓESPOSIBLECREARESTRUCTURASDINÈMICASQUESEEXPANDANOCONTRAIGAN SE GÞNSELESAGREGUEOELIMINEELEMENTOS%LDINAMISMODEESTASESTRUCTURASSOLUCIONAEL PROBLEMADEDECIDIRCUÈLESLACANTIDADØPTIMADEMEMORIAQUESEDEBERESERVARPARAUN PROBLEMAESPECÓlCO3INEMBARGO ESIMPORTANTEDESTACARQUELASESTRUCTURASDINÈMICAS NOPUEDENREEMPLAZARALOSARREGLOSENTODASSUSAPLICACIONES%XISTENNUMEROSOSCASOS QUEPODRÓANFÈCILMENTESERSOLUCIONADOSAPLICANDOARREGLOS MIENTRASQUESISEUTILIZARAN ESTRUCTURASDINÈMICAS COMOLASLISTAS LASOLUCIØNDEESTOSPROBLEMASSECOMPLICARÓA ,AS LISTAS LIGADAS SON COLECCIONES DE ELEMENTOS LLAMADOS NODOS EL ORDEN ENTRE ÏSTOSSEESTABLECEPORMEDIODEUNTIPODEDATOSDENOMINADOPUNTEROS APUNTADORES DIRECCIONESOREFERENCIASAOTROSNODOS0ORTANTO SIEMPREESIMPORTANTEDISTINGUIREN TREUNDATODETIPOAPUNTADORYELDATOCONTENIDOENLACELDAALCUALÏSTEAPUNTA3EUSARÈ LANOTACIØN0←>$PARAINDICARQUE0ESUNAPUNTADORALNODO$ #REAR0 PARASE×ALAR ELPROCESODEASIGNACIØNDEMEMORIAALNODO0 Y1UITAR0 PARAINDICARELPROCESO INVERSOESDECIR CUANDOSELIBERAUNAPOSICIØNDEMEMORIAAPUNTADAPOR0 ,ASOPERACIONESMÈSIMPORTANTESQUESEREALIZANENLASESTRUCTURASDEDATOSSONLAS DEBÞSQUEDA INSERCIØNYELIMINACIØN3EUTILIZANTAMBIÏNPARACOMPARARLAElCIENCIA DELASESTRUCTURASDEDATOSYDEESTAFORMAOBSERVARCUÈLESLAESTRUCTURAQUEMEJORSE ADAPTAALTIPODEPROBLEMAQUESEQUIERARESOLVER,ABÞSQUEDA POREJEMPLO ESUNA OPERACIØNQUENOSEPUEDEREALIZARENFORMAElCIENTEENLASLISTAS0OROTRAPARTE LAS OPERACIONESDEINSERCIØNYELIMINACIØNSEEFECTÞANDEMANERAElCIENTEENESTETIPODE ESTRUCTURASDEDATOS %STECAPÓTULOSEDEDICARÈALASESTRUCTURASDINÈMICASLINEALESLLAMADASLISTASEN TREELLASSEDISTINGUENTRESTIPOSLISTASSIMPLEMENTELIGADAS LISTASDOBLEMENTELIGADAS
142 >«ÌÕÊxÊ Ê Ê -*45"4 YLISTASCIRCULARES%NELSIGUIENTECAPÓTULOSEPRESENTARÈNLASESTRUCTURASDINÈMICAS NOLINEALES DENOMINADASÈRBOLES
,)34!33)-0,%-%.4%,)'!$!3 5NALISTASIMPLEMENTELIGADACONSTITUYEUNACOLECCIØNDEELEMENTOSLLAMADOSNODOS %LORDENENTREÏSTOSSEESTABLECEPORMEDIODEPUNTEROSESDECIR DIRECCIONESOREFE RENCIASAOTROSNODOS5NTIPOESPECIALDELISTASIMPLEMENTELIGADAESLALISTAVACÓA,A lGURAPRESENTALAESTRUCTURADEUNNODODEUNALISTASIMPLEMENTELIGADA %NGENERAL UNNODOCONSTADEDOSPARTES ◗ ◗
5NCAMPO).&/2-!#)».QUESERÈDELTIPODELOSDATOSQUESEQUIERAALMACENAR ENLALISTA 5NCAMPO,)'! DETIPOPUNTERO QUESEUTILIZAPARAESTABLECERLALIGAOELENLACE CONOTRONODODELALISTA3IELNODOFUERAELÞLTIMODELALISTA ESTECAMPOTENDRÈ COMOVALOR.),VACÓO!LEMPLEARSEELCAMPOLIGAPARARELACIONARDOSNODOS NOSERÈNECESARIOALMACENARFÓSICAMENTEALOSNODOSENESPACIOSCONTIGUOS
%NLAlGURASEPRESENTAUNEJEMPLODEUNALISTASIMPLEMENTELIGADAQUEALMACE NAAPELLIDOS%LPRIMERNODODELALISTAESAPUNTADOPORUNAVARIABLE0 DETIPOAPUNTADOR 0ALMACENALADIRECCIØNDELPRIMERNODO%LCAMPOLIGADELÞLTIMONODODELALISTA TIENEUNVALOR.), QUEINDICAQUEDICHONODONOAPUNTAANINGÞNOTRO%LAPUNTADOR ALINICIODELALISTAESIMPORTANTEPORQUEPERMITEPOSICIONARNOSENELPRIMERNODODELA MISMAYTENERACCESOALRESTODELOSELEMENTOS3I PORALGUNARAZØN ESTEAPUNTADORSE EXTRAVIARA ENTONCESPERDERÓAMOSTODALAINFORMACIØNALMACENADAENLALISTA0OROTRA PARTE SI LA LISTA SIMPLEMENTE LIGADA ESTUVIERA VACÓA ENTONCES EL APUNTADOR AL INICIO TENDRÈELVALOR.),
/PERACIONESCONLISTASSIMPLEMENTELIGADAS ,ASOPERACIONESQUEPUEDENEFECTUARSEENUNALISTASIMPLEMENTELIGADASON ◗ ◗ ◗ ◗
&)'52! %STRUCTURADEUNNODO
2ECORRIDODELALISTA )NSERCIØNDEUNELEMENTO "ORRADODEUNELEMENTO "ÞSQUEDADEUNELEMENTO
-*45"44*.1-&.&/5&-*("%"4
143
&)'52! %JEMPLODELISTA
!NTESDEANALIZARCADAUNADEESTASOPERACIONES SEPRESENTARÈUNALGORITMOQUE PERMITECREARUNALISTASIMPLEMENTELIGADA ALINCORPORARCADANUEVONODOALINICIO !LGORITMO #REA?INICIO #REA?INICIO [%STEALGORITMOPERMITECREARUNALISTASIMPLEMENTELIGADA AGREGANDOCADANUEVONODOAL INICIODELAMISMA] [0Y1SONVARIABLESDETIPOPUNTERO,OSCAMPOSDELNODOSON).&/ QUESERÈDELTIPODE DATOSQUESEQUIERAALMACENARENLALISTA Y,)'!DETIPOAPUNTADOR0APUNTAALINICIODELA LISTA2%3ESUNAVARIABLEDETIPOENTERO] #REAR0 [3ECREAELPRIMERNODODELALISTASIMPLEMENTELIGADA] ,EER0>).&/ (ACER0>,)'!←.), %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov ,EER2%3 -IENTRAS2%3 2EPETIR #REAR1 ,EER1>).&/ (ACER1>,)'!←0Y0←1 %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov ,EER2%3 [&INDELCICLODELPASO]
6EAMOSUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEESTEALGORITMO
%JEMPLO
$ADOSLOSSIGUIENTESDATOS'ARCÓA 0ÏREZ ,ØPEZY3ANTOS GENEREUNALISTASIMPLEMENTE LIGADAMEDIANTEELALGORITMO%NLASIGUIENTElGURASEPUEDEOBSERVAR PASOAPASO CØMOSEVACONSTRUYENDOLALISTA #OMOSEAPRECIAENLAlGURAD LALISTAQUEDØENORDENINVERSOCONRESPECTOAL ORDENENELQUEFUERONDADOSLOSDATOS0ARALOGRARQUELOSDATOSQUEDENENELORDENEN ELQUEFUERONDADOS SEDEBEAGREGARCADANODOALlNALDELALISTA!CONTINUACIØNSE PRESENTAUNALGORITMOQUEPERMITECREARUNALISTASIMPLEMENTELIGADA ALINCORPORARCADA NUEVONODOALlNAL
144 >«ÌÕÊxÊ Ê Ê -*45"4 &)'52! #REACIØNDELISTASA ,UEGO DECREARELPRIMERNODO B ,UEGODEINSERTARAh0Ï REZvC ,UEGODEINSERTAR Ah,ØPEZvD ,UEGODE INSERTARAh3ANTOSv .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ALINSERTARUNNUEVOELEMENTO ALINICIODELALISTA
!LGORITMO #REA?lNAL #REA?lNAL [%STEALGORITMOPERMITECREARUNALISTASIMPLEMENTELIGADA AGREGANDOCADANUEVONODOAL lNALDELAMISMA] [0 1Y4SONVARIABLESDETIPOAPUNTADOR,OSCAMPOSDELNODOSON).&/ QUESERÈDELTIPO DEDATOSQUESEQUIERAALMACENARENLALISTA Y,)'!DETIPOAPUNTADOR0APUNTAALINICIODELA LISTA2%3ESUNAVARIABLEDETIPOENTERO] #REAR0 [3ECREAELPRIMERNODODELALISTA] ,EER0>).&/ (ACER0>,)'!←.),Y4←0 %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov ,EER2%3 -IENTRAS2%3 2EPETIR #REAR1 ,EER1>).&/ (ACER1>,)'!←.), 4>,)'!←1Y4←1[4APUNTAALÞLTIMONODO] %SCRIBIRhz$ESEAINGRESARMÈSNODOSALALISTA3Ó .Ov ,EER2%3 [&INDELCICLODELPASO]
-*45"44*.1-&.&/5&-*("%"4
145
6EAMOSUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEESTEALGORITMO
%JEMPLO
3EUTILIZANLOSDATOSDELEJEMPLOANTERIORPARACREARUNALISTAAPLICANDOELALGORITMO %SIMPORTANTEOBSERVARQUEENESTEALGORITMOSEUTILIZAOTRAVARIABLEDETIPOAPUNTADOR PARAMANTENERLADIRECCIØNDELÞLTIMONODODELALISTA DETALMANERAQUESEPUEDAES TABLECERELENLACEENTREÏSTEYELNUEVONODO%NLAlGURASEPUEDEOBSERVAR PASOA PASO CØMOSEVACONSTRUYENDOESALISTA
&)'52! #REACIØNDELISTASA ,UEGO DECREARELPRIMERNODO B ,UEGODEINSERTARAh0Ï REZvC ,UEGODEINSERTAR Ah,ØPEZvD ,UEGODE INSERTARAh3ANTOSv .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ALINSERTARUNNUEVOELEMENTO ALlNALDELALISTA
2ECORRIDODEUNALISTASIMPLEMENTELIGADA ,AOPERACIØNDERECORRIDOENUNALISTASIMPLEMENTELIGADACONSISTEENVISITARCADAUNO DELOSNODOSQUEFORMANLALISTA,AVISITAPUEDEIMPLICARUNAOPERACIØNSIMPLEPOR EJEMPLO IMPRIMIRLAINFORMACIØNDELNODO OUNACOMPLEJA DEPENDIENDODELPROBLEMA QUESEINTENTERESOLVER 0ARA RECORRER TODOS LOS NODOS DE UNA LISTA SIMPLEMENTE LIGADA SE COMIENZA CON EL PRIMERO 3E TOMA EL VALOR DEL CAMPO ,)'! DE ÏSTE Y SE AVANZA AL SEGUNDO Y ASÓ SUCESIVAMENTEHASTALLEGARALÞLTIMONODO CUYOCAMPO,)'!TIENEELVALOR.),%N GENERAL LADIRECCIØNDEUNNODO EXCEPTOELPRIMERO ESTÈDADAPORELCAMPO,)'!DE SUPREDECESOR %L ALGORITMO PRESENTA LOS PASOS NECESARIOS PARA RECORRER UNA LISTA EN FORMA ITERATIVA
146 >«ÌÕÊxÊ Ê Ê -*45"4 !LGORITMO 2ECORRE?ITERATIVO 2ECORRE?ITERATIVO0 [%STEALGORITMORECORREUNALISTACUYOPRIMERNODOESTÈAPUNTADOPOR0] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA] (ACER1←0 -IENTRAS1≠.), 2EPETIR %SCRIBIR1>).&/ (ACER1←1>,)'![!PUNTAALSIGUIENTENODODELALISTA] [&INDELCICLODELPASO]
,ASLISTASSEPUEDENMANEJARFÈCILMENTECONPROCESOSRECURSIVOS%LALGORITMO CONSTITUYEUNAVERSIØNRECURSIVAPARARECORRERUNALISTASIMPLEMENTELIGADA !LGORITMO 2ECORRE?RECURSIVO 2ECORRE?RECURSIVO0 [%STEALGORITMORECORREUNALISTASIMPLEMENTELIGADAENFORMARECURSIVA0ESUNAPUNTADORAL NODOQUESEVAAVISITAR,APRIMERAVEZTRAELADIRECCIØNDELPRIMERNODODELALISTA] [).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA] 3I0≠.),ENTONCES %SCRIBIR0>).&/ ,LAMARA2ECORRE?RECURSIVOCON0>,)'! [,LAMADARECURSIVACONELAPUNTADORALSIGUIENTENODODELALISTA] [&INDELCONDICIONALDELPASO]
6EAMOSAHORALAOPERACIØNDEINSERCIØNENLISTASSIMPLEMENTELIGADAS
)NSERCIØNENLISTASSIMPLEMENTELIGADAS ,AOPERACIØNDEINSERCIØNENLISTASSIMPLEMENTELIGADASCONSISTEENAGREGARUNNUEVO NODOALALISTA3INEMBARGO DEPENDIENDODELAPOSICIØNENLAQUESEDEBAINSERTAREL NODO SEPUEDENPRESENTARDIFERENTESCASOS COMOLOSQUESESE×ALANACONTINUACIØN ◗ ◗ ◗ ◗
)NSERTARUNNODOALINICIODELALISTA )NSERTARUNNODOALlNALDELALISTA )NSERTARUNNODOANTESQUEOTROCUYAINFORMACIØNES8 )NSERTARUNNODODESPUÏSQUEOTROCUYAINFORMACIØNES8
-*45"44*.1-&.&/5&-*("%"4
147
.OSECONSIDERARÈENESTOSALGORITMOSELCASODEQUELALISTAESTÏVACÓAESTACON DICIØN SE PUEDE INCLUIR YA SEA AL INICIO DEL ALGORITMO O EN EL PROGRAMA PRINCIPAL 3E CONSIDERARÈENTONCESQUELALISTAENLACUALSEVAAINSERTARELNUEVONODOYAEXISTEPOR LOMENOSTIENEUNNODO
>®Ê ÃiÀVÊ>ÊVÊ`iÊÕ>ÊÃÌ>ÊÊ Ê Ã«iiÌiÊ}>`> %N ESTE CASO ELNUEVONODOSECOLOCAALPRINCIPIODELALISTASIMPLEMENTELIGADA CON VIRTIÏNDOSEENELPRIMERODEELLA%LPROCESOESRELATIVAMENTESIMPLE COMOSEPUEDE OBSERVARENELSIGUIENTEALGORITMO !LGORITMO )NSERTA?INICIO )NSERTA?INICIO0 $!4/ [%STEALGORITMOINSERTAUNNODOALINICIODEUNALISTASIMPLEMENTELIGADA0ESELAPUNTADORAL PRIMERNODODELAMISMA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA] #REAR1 (ACER1>).&/←$!4/ 1>,)'!←0Y0←1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALINICIODELALISTA
L )NSERCIØNALlNALDEUNALISTASIMPLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAALlNALDELALISTASIMPLEMENTELIGADA CONVIRTIÏN DOSEENELÞLTIMO%LALGORITMODESCRIBEESTEPROCESO
&)'52! )NSERCIØNALINICIODELA LISTA .OTA,AmECHADISCONTINUA INDICALOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOALINICIODELALISTA
148 >«ÌÕÊxÊ Ê Ê -*45"4 !LGORITMO )NSERTA?lNAL )NSERTA?lNAL0 $!4/ [%STEALGORITMOINSERTAUNNODOALlNALDEUNALISTASIMPLEMENTELIGADA0ESELAPUNTADORAL PRIMERNODODELALISTA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO] [1Y4SONVARIABLESDETIPOPUNTERO).&/Y,)'!SONLOSCAMPOSDECADANODODELALISTA] (ACER4←0 -IENTRAS4>,)'!≠.), 2EPETIR [2ECORRELALISTAHASTALLEGARALÞLTIMOELEMENTO] (ACER4←4>,)'! [&INDELCICLODELPASO] #REAR1 (ACER1>).&/←$!4/ 1>,)'!←.),Y4>,)'!←1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALlNALDELALISTA 3IENCADALISTASIMPLEMENTELIGADASEUTILIZARANDOSAPUNTADORES UNOALPRIMER NODOYOTROALÞLTIMOlGA ENTONCESELPROCESODEINSERCIØNALlNALSESIMPLIl CARÓA YAQUENOSERÓANECESARIORECORRERLATODAPARALLEGARALlNAL%LNUEVONODOSE PODRÓAINCORPORARDIRECTAMENTEVERlGB COMOENELCASODEINSERCIØNALINICIODE LALISTA
C®Ê )NSERCIØNDEUNNODOANTESQUEOTROENUNALISTA SIMPLEMENTELIGADA %NESTETIPODEINSERCIØNENLISTASSIMPLEMENTELIGADAS ELNUEVONODOSEDEBECOLOCAR ANTES DE OTRO NODO DADO COMO REFERENCIA 3E PUEDEN PRESENTAR DIFERENTES CASOS POR EJEMPLO QUEELNODODADOCOMOREFERENCIANOSEENCUENTREENLALISTAOQUEELNUEVO NODOAINSERTARSECONVIERTAENELPRIMERO3EASUME COMOSEHASE×ALADOANTERIORMEN TE QUELALISTANOESTÈVACÓA
&)'52! )NSERCIØNALlNALDELALISTA .OTA,AmECHADISCONTINUA INDICANLOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOALlNALDELALISTA
-*45"44*.1-&.&/5&-*("%"4
149
&)'52! )NSERCIØNENUNALISTACON PUNTEROSALINICIOYALlNAL DELAMISMAA ,ISTACON PUNTEROALINICIO 0 YAL lNAL 4B ,ISTALUEGODE LAINSERCIØNDEUNNUEVO ELEMENTOALlNALDELA MISMA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOALlNALDELALISTA
!LGORITMO )NSERTA?ANTES?8 )NSERTA?ANTES?80 $!4/ 8 [%STEALGORITMOINSERTAUNNODOANTESDEUNNODODADOCOMOREFERENCIAENUNALISTASIMPLE MENTELIGADA0ESELAPUNTADORALPRIMERNODODELALISTA $!4/INDICALAINFORMACIØNQUE SEALMACENARÈENELNUEVONODO Y8REPRESENTAELCONTENIDOINFORMACIØNDELNODODADO COMOREFERENCIA] [1 8Y4SONVARIABLESDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELA LISTA"!.$ESUNAVARIABLEDETIPOENTERO] (ACER1←0Y"!.$← -IENTRAS1>).&/≠8 Y"!.$ 2EPETIR 3I1>,)'!≠.), ENTONCES (ACER4←1Y1←1>,)'! SINO (ACER"!.$← [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.$ ENTONCES #REAR8 (ACER8>).&/←$!4/ 3I01 [%LNODODADOCOMOREFERENCIAESELPRIMERO] ENTONCES (ACER8>,)'!←0Y0←8 SINO
150 >«ÌÕÊxÊ Ê Ê -*45"4
(ACER4>,)'!←8Y8>,)'!←1 [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LNODODADOCOMOREFERENCIANOSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNDEUNNODOANTESQUEOTRODADO COMOREFERENCIAENUNALISTASIMPLEMENTELIGADA APLICANDOELALGORITMOANTERIOR
D Ê )NSERCIØNDEUNNODODESPUÏSDEOTRO ENUNALISTASIMPLEMENTELIGADA %NESTETIPODEINSERCIØNENLISTASSIMPLEMENTELIGADAS ELNUEVONODOSEDEBECOLO CARDESPUÏSDEOTRODADOCOMOREFERENCIA3EPUEDENPRESENTARDIFERENTESCASOSPOR EJEMPLO QUEELNODODADOCOMOREFERENCIANOSEENCUENTREENLALISTAOQUEELNUEVO SECONVIERTAENELÞLTIMODELALISTA3EASUME COMOSEHASE×ALADO QUELALISTANOESTÈ VACÓA!CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO )NSERTA?DESPUÏS?8 )NSERTA?DESPUÏS?80 $!4/ 8 [%STEALGORITMOINSERTAUNNODODESPUÏSDEOTRODADOCOMOREFERENCIAENUNALISTASIMPLEMENTE LIGADA 0 ES EL APUNTADOR AL PRIMER NODO DE LA LISTA $!4/ INDICA LA INFORMACIØN QUE SE
&)'52! )NSERCIØNDENODOS .OTA,ASmECHASDISCON TINUASINDICANLOSCAMBIOS ORIGINADOSPORLAINSERCIØN DEUNNUEVONODOPRECE DIENDOAOTRO DADOCOMO REFERENCIA
-*45"44*.1-&.&/5&-*("%"4
151
ALMACENARÈENELNUEVONODO Y8REPRESENTAELCONTENIDOINFORMACIØNDELNODODADO COMOREFERENCIA] [1Y4SONVARIABLESDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELALISTA "!.$ESUNAVARIABLEDETIPOENTERO] (ACER1←0Y"!.$← -IENTRASF>).&/≠8 Y"!.$ 2EPETIR 3I1>,)'!≠.), ENTONCES (ACER1←1>,)'! SINO (ACER"!.$← [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.$ ENTONCES #REAR4 (ACER4>).&/←$!4/ 4>,)'!←1>,)'!Y1>,)'!←4 SINO %SCRIBIRh%LNODODADOCOMOREFERENCIANOSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
%JEMPLO
&)'52! )NSERCIØNDENODOS .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS PORLAINSERCIØNDEUNNUEVO NODOSUCEDIENDOAOTRODADO COMOREFERENCIA
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNDEUNNODODESPUÏSDEOTRODADO COMOREFERENCIA ENLISTASSIMPLEMENTELIGADASAPLICANDOELALGORITMOANTERIOR #ABESE×ALARQUEENLASOPERACIONESDELISTASTRATADASHASTAELMOMENTO NOSEHA CONSIDERADOELORDENENTRELOSELEMENTOS3ISESUPONEQUELALISTAESTÈORDENADA ENEL MOMENTODEINSERTARUNNUEVONODOHABRÈQUEMANTENERELORDENPREVIAMENTEESTABLE CIDO
152 >«ÌÕÊxÊ Ê Ê -*45"4
%LIMINACIØNENLISTASSIMPLEMENTELIGADAS ,AOPERACIØNDEELIMINACIØNENLISTASSIMPLEMENTELIGADASCONSISTEENELIMINARUNNODO DELALISTAYLIBERARELESPACIODEMEMORIACORRESPONDIENTE$EPENDIENDODELAPOSICIØN ENLAQUEÏSTESEENCUENTRE SEPUEDENPRESENTARDIFERENTESCASOS COMOLOSQUESESE×A LANACONTINUACIØN ◗ ◗ ◗ ◗ ◗
%LIMINARELPRIMERNODO %LIMINARELÞLTIMONODO %LIMINARUNNODOCONINFORMACIØN8 %LIMINARELNODOANTERIORALNODOCONINFORMACIØN8 %LIMINARELNODOPOSTERIORALNODOCONINFORMACIØN8
#ABEDESTACARQUEENLOSALGORITMOSQUESEPRESENTANACONTINUACIØNNOSECON SIDERAQUELALISTAESTÏVACÓA%STACONDICIØNSEPUEDEEVALUARFÈCILMENTEALINICIODEL ALGORITMOOBIENENELPROGRAMAPRINCIPAL
A Ê %LIMINARELPRIMERNODODEUNALISTA SIMPLEMENTELIGADA %STAOPERACIØNESMUYSENCILLA YAQUESØLOESNECESARIOREDElNIRELAPUNTADORALINICIO DELALISTA3IÏSTAQUEDARAVACÓAESDECIR SILALISTATENÓASØLOUNELEMENTO ENTONCES APUNTARÓAA.),%NELSIGUIENTEALGORITMOSEDESCRIBEESTECASO !LGORITMO %LIMINA?INICIO %LIMINA?INICIO0 [%STEALGORITMOPERMITEELIMINARELPRIMERELEMENTODEUNALISTASIMPLEMENTELIGADA0ESEL APUNTADORALPRIMERNODODELALISTA] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELALISTA] (ACER1←0 [3ILALISTATUVIERASØLOUNELEMENTOENTONCESA0SELEASIGNARÓA.), QUEESELVALORDE 1>,)'!%NCASOCONTRARIO QUEDACONLADIRECCIØNDELSIGUIENTENODO] (ACER0←1>,)'![2EDElNEELPUNTEROALINICIODELALISTA] 1UITAR1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELPRIMERNODODEUNALISTA SIMPLEMENTELIGADA APLICANDOELALGORITMOANTERIOR
-*45"44*.1-&.&/5&-*("%"4
153
&)'52! %LIMINACIØNDELPRIMER NODODEUNALISTA
B Ê %LIMINARELÞLTIMONODODEUNALISTA SIMPLEMENTELIGADA %NESTECASOSEDEBEELIMINARELÞLTIMONODODEUNALISTASIMPLEMENTELIGADA%SIMPOR TANTEOBSERVARQUEPARAALCANZARELÞLTIMONODO SEDEBERECORRERTODALALISTA EXCEPTOSI SEUSARAUNAPUNTADORQUEINDIQUESUlNAL!CONTINUACIØNSEPRESENTAUNALGORITMODE SOLUCIØN CONSIDERANDOQUESOLAMENTESETIENEUNAPUNTADORALINICIODELALISTA !LGORITMO %LIMINA?ÞLTIMO %LIMINA?ÞLTIMO0 [%STE ALGORITMO PERMITE ELIMINAR EL ÞLTIMO NODO DE UNA LISTA SIMPLEMENTE LIGADA 0 ES EL APUNTADORALPRIMERNODODELALISTA] [1 Y 4 SON VARIABLES DE TIPO APUNTADOR ).&/ Y ,)'! SON LOS CAMPOS DE LOS NODOS DE LA LISTA] (ACER1← 0 3I0>,)'!.), [3EVERIlCASILALISTATIENESØLOUNNODO] ENTONCES (ACER0←.), SINO -IENTRAS1>,)'!≠.), 2EPETIR (ACER4←1Y1←1>,)'! [&INDELCICLODELPASO] (ACER4>,)'!←.), [&INDELCONDICIONALDELPASO] 1UITAR1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELÞLTIMONODODEUNALISTA SIMPLEMENTELIGADA
154 >«ÌÕÊxÊ Ê Ê -*45"4 &)'52! %LIMINACIØNDELÞLTIMO NODODEUNALISTA .OTA,AmECHADISCONTINUA INDICALOSCAMBIOSORIGINADOS PORLAELIMINACIØNDELÞLTIMO NODODELALISTA
C Ê %LIMINARUNNODOCONINFORMACIØN8ÊÊ Ê DEUNALISTASIMPLEMENTELIGADA ,AELIMINACIØNDEUNNODOCONINFORMACIØN8ESUNODELOSCASOSCOMPLICADOSDEESTA OPERACIØN PORQUESEPUEDENPRESENTARDIFERENTESVARIANTES0OREJEMPLO ELNODOPUEDE SERELPRIMERO ELÞLTIMO ELÞNICOONOENCONTRARSEENLALISTA%LALGORITMODESCRIBE ESTEPROCESO !LGORITMO %LIMINA?8 %LIMINA?80 8 [%STEALGORITMOELIMINAUNNODOCONINFORMACIØN8DEUNALISTASIMPLEMENTELIGADA0ESEL APUNTADORALPRIMERNODODELALISTA] [1Y4SONVARIABLESDETIPOAPUNTADOR"!.$ESUNAVARIABLEDETIPOENTERO).&/Y,)'! SONLOSCAMPOSDELOSNODOSDELALISTA] (ACER1←0Y"!.$← -IENTRAS1>).&/≠8 Y"!.$ 2EPETIR 3I1>,)'!≠.), ENTONCES (ACER4←1Y1←1>,)'! SINO (ACER"!.$← [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.$ ENTONCES %SCRIBIRh%LELEMENTOCONINFORMACIØN8NOSEENCUENTRAENLALISTAv SINO 3I01 [3EVERIlCASIELELEMENTOAELIMINARESELPRIMERO] ENTONCES (ACER0←1>,)'! SINO (ACER4>,)'!←1>,)'! [&INDELCONDICIONALDELPASO] 1UITAR1 [&INDELCONDICIONALDELPASO]
-*45"44*.1-&.&/5&-*("%"4
155
&)'52! %LIMINACIØNDEUNNODOCON INFORMACIØN8 .OTA,AmECHADISCONTINUA INDICALOSCAMBIOSORIGINADOS PORLAELIMINACIØNDELNODO
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDEUNNODOCONINFORMACIØN8 ENUNALISTASIMPLEMENTELIGADA
D Ê %LIMINARELNODOANTERIORALNODOCONINFORMACIØN8 ENUNALISTASIMPLEMENTELIGADA %STEESELCASODEELIMINACIØNMÈSCOMPLICADOENLISTASSIMPLEMENTELIGADAS PORQUE TIENEMUCHASVARIANTES0OREJEMPLO ELNODOCONINFORMACIØN8PUEDESERELPRIMERO ENTONCESNOHAYNADAQUEELIMINAR ELSEGUNDOENTONCESHAYQUEELIMINARELPRI MERODELALISTA ESTARENCUALQUIEROTRAPOSICIØN OBIENNOENCONTRARSEENLALISTA !LGORITMO %LIMINA?ANTES?8 %LIMINA?ANTES?80 8 [%STEALGORITMOPERMITEELIMINARELNODOANTERIORALNODOQUECONTIENELAINFORMACIØN8EN UNALISTASIMPLEMENTELIGADA0ESELAPUNTADORALPRIMERNODODELALISTA] [1 4Y2SONVARIABLESDETIPOAPUNTADOR"!.$ESUNAVARIABLEDETIPOENTERO).&/Y,)'! SONLOSCAMPOSDELOSNODOSDELALISTA] 3I0>).&/8 ENTONCES %SCRIBIRh.OEXISTEUNNODOQUEPRECEDAALQUECONTIENEA8v SINO (ACER1←0 4←0Y"!.$← -IENTRAS1>).&/≠8 Y"!.$ 2EPETIR 3I1>,)'!≠.), ENTONCES (ACER2←4 4←1Y1←1>,)'! SINO (ACER"!.$← [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.$
156 >«ÌÕÊxÊ Ê Ê -*45"4 ENTONCES %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv SINO 3I0>,)'!1 [%LELEMENTOAELIMINARESELPRIMERO] ENTONCES (ACER0←1 SINO (ACER2>,)'!←1 [&INDELCONDICIONALDELPASO] 1UITAR4 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELNODOANTERIORAOTRODADO COMOREFERENCIA MEDIANTEELALGORITMO 3EDEJAALLECTORLACONSTRUCCIØNDELALGORITMOPARAELIMINARUNNODODESPUÏSDE OTRODADOCOMOREFERENCIA%STEALGORITMOESDEMENORCOMPLEJIDADQUEELPRESENTADO ANTES
"ÞSQUEDAENLISTASSIMPLEMENTELIGADAS ,AOPERACIØNDEBÞSQUEDADEUNELEMENTOENUNALISTASIMPLEMENTELIGADAESMUYFÈCIL DEREALIZAR AUNQUEINElCIENTEYAQUESELLEVAACABODEFORMASECUENCIAL3EDEBEIR RECORRIENDOLOSNODOSHASTAENCONTRARELQUEESTAMOSBUSCANDOOHASTAQUESELLEGAAL lNALDELALISTA%LALGORITMOESSIMILARALOSQUESEDESARROLLARONPARARECORRERUNALISTA ENFORMAITERATIVAORECURSIVA !LIGUALQUEENELCASODELASOPERACIONESVISTASANTERIORMENTE EXISTEDIFERENCIA ENLOSALGORITMOSSILASLISTASSEENCUENTRANORDENADASODESORDENADAS3ECOMENZARÈ EN PRIMERTÏRMINO CONELALGORITMODEBÞSQUEDAPARALISTASSIMPLEMENTELIGADASQUESE ENCUENTRANDESORDENADAS &)'52! %LIMINACIØNDENODOS .OTA,AmECHADISCONTINUAINDICALOSCAMBIOSORIGINADOSPORLAELIMINACIØNDELNODOANTERIORAUN NODODADOCOMOREFERENCIA
-*45"44*.1-&.&/5&-*("%"4
157
!LGORITMO "ÞSQUEDA?DESORDENADA "ÞSQUEDA?DESORDENADA0 8 [%STEALGORITMOPERMITEBUSCARELELEMENTOCONINFORMACIØN8ENUNALISTASIMPLEMENTELIGADA QUESEENCUENTRADESORDENADA0ESELAPUNTADORALPRIMERNODODELALISTA] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONCAMPOSDELOSNODOSDELALISTA] (ACER1←0 -IENTRAS1≠.), Y1>).&/≠8 (ACER1←1>,)'! [&INDELCICLODELPASO] 3I1.), ENTONCES %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv SINO %SCRIBIRh%LELEMENTOSÓSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
%SIMPORTANTEDESTACARQUECONUNASIMPLEMODIlCACIØNENLACONDICIØNDELCICLO DELPASOSEADAPTEESTEALGORITMOPARALABÞSQUEDADEELEMENTOSENLISTASSIMPLEMENTE LIGADASQUESEENCUENTRANORDENADAS!CONTINUACIØNSEPRESENTAELALGORITMODEBÞS QUEDAENLISTASSIMPLEMENTELIGADASQUESEENCUENTRANORDENADASENFORMAASCENDENTE !LGORITMO "ÞSQUEDA?ORDENADA
"ÞSQUEDA?ORDENADA0 8 [%STEALGORITMOPERMITEBUSCARELELEMENTOCONINFORMACIØN8ENUNALISTASIMPLEMENTELIGADA QUESEENCUENTRAORDENADAENFORMAASCENDENTE0ESELAPUNTADORALPRIMERNODODELALISTA] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/Y,)'!SONLOSCAMPOSDELOSNODOSDELALISTA] (ACER1←0 -IENTRAS1≠.), Y1>).&/8 (ACER1←1>,)'! [&INDELCICLODELPASO] 3I1.), O1>).&/8 ENTONCES %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv SINO %SCRIBIRh%LELEMENTOSÓSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
158 >«ÌÕÊxÊ Ê Ê -*45"4 4ODOSLOSALGORITMOSPRESENTADOSTANTOPARALABÞSQUEDA INSERCIØNYELIMINACIØN SEPUEDENIMPLEMENTARDEFORMARECURSIVA!CONTINUACIØNSEMUESTRAUNAVERSIØNRE CURSIVADELALGORITMO !LGORITMO "ÞSQUEDA?RECURSIVO "ÞSQUEDA?RECURSIVO0 8 [%STEALGORITMOPERMITEBUSCARRECURSIVAMENTEAUNELEMENTOCONINFORMACIØN8ENUNALISTA SIMPLEMENTELIGADAQUESEENCUENTRADESORDENADA0ESELAPUNTADORALPRIMERELEMENTODE LALISTA] 3I0≠.), ENTONCES 3I0>).&/8 ENTONCES %SCRIBIRh%LELEMENTOSEENCUENTRAENLALISTAv SINO ,LAMARA"ÞSQUEDA?RECURSIVOCON0>,)'!Y8 [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
,)34!3#)2#5,!2%3 ,ASLISTASCIRCULARESSONSIMILARESALASLISTASSIMPLEMENTELIGADAS3INEMBARGO TIENEN LA CARACTERÓSTICA DE QUE EL ÞLTIMO ELEMENTO DE LA LISTA APUNTA AL PRIMERO EN LUGAR DE APUNTARALVACÓOO.), 3EDElNEUNALISTASIMPLEMENTELIGADACIRCULARCOMOUNACOLECCIØNDEELEMENTOS LLAMADOSNODOS ENLACUALELÞLTIMONODOAPUNTAALPRIMERO%NLAlGURASEPRE SENTAUNAGRÈlCADEUNALISTACIRCULAR ,ASOPERACIONESENLISTASCIRCULARESSONSIMILARESALASOPERACIONESENLISTASLINEA LESPORTANTO NOSETRATARÈNNUEVAMENTEENESTASECCIØN3INEMBARGO ESIMPORTANTE
&)'52! ,ISTACIRCULAR
-*45"4%0#-&.&/5&-*("%"4
159
&)'52! ,ISTACIRCULARCONNODO DECABECERA
SE×ALAR QUE PARA EL CASO DE LA OPERACIØN DE RECORRIDO DE LISTAS CIRCULARES SE NECESITA CONSIDERARALGÞNCRITERIOPARADETECTARCUÈNDOSEHANVISITADOTODOSLOSNODOSDELALISTA %STOÞLTIMOCONELPROPØSITODEEVITARCAERENCICLOSINlNITOS5NAPOSIBLESOLUCIØNAL PROBLEMAPLANTEADOCONSISTEENUSARUNNODOEXTRA LLAMADONODODECABECERA PARA INDICARELINICIODELALISTA%STENODOCONTENDRÈINFORMACIØNESPECIAL DETALMANERAQUE SEDISTINGADELOSDEMÈSYASÓPODRÈHACERREFERENCIAALPRINCIPIODELALISTA,AlGURA PRESENTAUNAGRÈlCADEUNALISTACIRCULARCONNODODECABECERA %NLOSALGORITMOSPRESENTADOSPARAOPERARCONLISTASSIMPLEMENTELIGADASSEPUEDE APRECIAR QUE SØLO SE TIENE ACCESO A UN NODO Y AL SUCESOR DE ÏSTE 3I SE NECESITARA SU PREDECESOR POREJEMPLO SETENDRÓANQUEUSARVARIABLESAUXILIARESVÏASEELALGORITMO 5NAMANERADEEVITARESTASITUACIØN ESTENIENDOACCESOALOSNODOSENCUALQUIER ORDENANTECESOROSUCESOR YADEMÈSRECORRERLALISTADELINICIOALlN OVICEVERSA ,ASLISTASQUECUENTANCONESTAFACILIDADSONLASDOBLEMENTELIGADAS!CONTINUACIØNSE PRESENTAESTETIPODEESTRUCTURAS
,)34!3$/",%-%.4%,)'!$!3 5NALISTADOBLEMENTELIGADAESUNACOLECCIØNDENODOS ENLACUALCADAUNODEELLOS TIENEDOSAPUNTADORESlGA UNOAPUNTANDOASUPREDECESOR,)'!):1 YOTROA SUSUCESOR,)'!$%2 0ORMEDIODEESTOSPUNTEROSSEPODRÈENTONCESAVANZARORE TROCEDERATRAVÏSDELALISTA SEGÞNSETOMENLASDIRECCIONESDEUNOUOTROAPUNTADOR,A lGURABREPRESENTAUNALISTADOBLEMENTELIGADAQUEALMACENAAPELLIDOS 0ARA TENER UN FÈCIL ACCESO A LA INFORMACIØN DE LA LISTA ES RECOMENDABLE USAR DOS APUNTADORES 0Y& QUEAPUNTENALPRINCIPIOYALlNALDEÏSTA RESPECTIVAMENTE
/PERACIONESCONLISTASDOBLEMENTELIGADAS ,ASOPERACIONESQUESEPUEDENLLEVARACABOCONESTETIPODEESTRUCTURASSONLASMISMAS QUECONLISTASSIMPLEMENTELIGADAS%NESTASECCIØNSEPRESENTARÈNLASOPERACIONESDE ◗ ◗ ◗
2ECORRIDODELALISTA )NSERCIØNDEUNELEMENTO "ORRADODEUNELEMENTO
160 >«ÌÕÊxÊ Ê Ê -*45"4 &)'52! %JEMPLODELISTADOBLEMEN TELIGADAA %STRUCTURA DEUNNODOB %JEMPLODE LISTADOBLEMENTELIGADA
2ECORRIDODEUNALISTADOBLEMENTELIGADA !LTENERCADANODOUNADOBLELIGA LALISTASEPUEDERECORRERTANTODELINICIOALlNAL ME DIANTELASLIGASDERECHAS COMOENSENTIDOINVERSOESDECIR DELlNALALPRINCIPIO CONLAS LIGASIZQUIERDAS#UALQUIERAQUESEALADIRECCIØNDELRECORRIDO ELALGORITMOESSIMILARAL QUESEPRESENTAPARALISTASSIMPLEMENTELIGADAS3EDEJAALLECTORSUDISE×O
)NSERCIØNENLISTASDOBLEMENTELIGADAS ,AINSERCIØNDEUNELEMENTOCONSISTEENAGREGARUNNUEVONODOALALISTAYESTABLECER LOSAPUNTADORESCORRESPONDIENTES.OSECONSIDERARÈELCASODELISTAVACÓA,AINSERCIØN SEPUEDELLEVARACABO ◗ ◗ ◗
!LINICIODELALISTADOBLEMENTELIGADA !LlNALDELALISTADOBLEMENTELIGADA !NTESDESPUÏSDEUNNODOCONINFORMACIØN8
A Ê )NSERCIØNALINICIODELALISTADOBLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAALPRINCIPIODELALISTAYSEESTABLECENLASLIGAS CORRESPONDIENTES%LNUEVONODOINSERTADOSECONVIERTE ENTONCES ENELPRIMERODELA LISTADOBLEMENTELIGADA%LALGORITMODESCRIBEESTEPROCESO !LGORITMO )NSERTA?PRINCIPIO )NSERTA?PRINCIPIO0 $!4/ [%STEALGORITMOINSERTAUNNODOALINICIODEUNALISTADOBLEMENTELIGADA0ESELAPUNTADORAL PRIMERNODODELALISTAY$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO]
-*45"4%0#-&.&/5&-*("%"4
161
[1ESUNAVARIABLEDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDECADA NODODELALISTA] #REAR1 (ACER1>).&/2←$!4/ 1>,)'!$%2←0 0>,)'!):1←1 1>,)'!):1←.),Y0←1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALINICIODEUNALISTADOBLEMENTE LIGADA
B Ê )NSERCIØNALlNALDEUNALISTADOBLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAALlNALDELALISTADOBLEMENTELIGADA CONVIRTIÏNDO SEENELÞLTIMO%LALGORITMODESCRIBEESTEPROCESO !LGORITMO )NSERTA?lNAL )NSERTA?lNAL& $!4/ [%STEALGORITMOINSERTAUNNODOALlNALDEUNALISTADOBLEMENTELIGADA&ESELAPUNTADORAL ÞLTIMONODODELALISTA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENELNUEVONODO] [1ESUNAVARIABLEDETIPOPUNTERO).&/2 ,)'!):1Y,)'!$%2SONLOSCAMPOSDECADA NODODELALISTA] #REAR1 (ACER1>).&/2←$!4/ &>,)'!$%2←1 1>,)'!):1←& 1>,)'!$%2←.),Y&←1
%JEMPLO
&)'52! )NSERCIØNALINICIODELA LISTA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAINSERCIØNDEUNNUEVO NODOALINICIODELAMISMA
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØNALlNALDEUNALISTADOBLEMENTE LIGADA
162 >«ÌÕÊxÊ Ê Ê -*45"4 &)'52! )NSERCIØNALlNALDELALISTA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAINSERCIØNDEUNNUEVO NODO
!LTRABAJARCONUNAPUNTADORALÞLTIMOELEMENTODELALISTA & LAOPERACIØNDEINSER CIØNSESIMPLIlCANOTABLEMENTEYAQUESEEVITARECORRERTODALALISTA
C Ê )NSERCIØNDEUNNODOANTESQUEOTRO ENUNALISTADOBLEMENTELIGADA %NESTECASOELNUEVONODOSECOLOCAPRECEDIENDOAOTRODADOCOMOREFERENCIA#ABE SE×ALARQUESØLOSEPRESENTARÈLAOPERACIØNDEINSERCIØNDEUNNODOANTESDEOTRODADO COMOREFERENCIA YAQUELASOPERACIONES!NTES?QUE?OTRO?Y$ESPUÏS?QUE?OTROSONSI MÏTRICAS !LGORITMO )NSERTA?ANTES?8 )NSERTA?ANTES?80 $!4/ 8 [%STEALGORITMOINSERTAUNNODOANTESDEOTRODADOCOMOREFERENCIA CONINFORMACIØN80 ESELAPUNTADORALPRIMERNODODELALISTA Y$!4/ESLAINFORMACIØNQUESEALMACENARÈENEL NUEVONODO] [1 4Y2SONVARIABLESDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDE CADANODODELALISTA] (ACER1←0 -IENTRAS1>,)'!$%2≠.), Y1>).&/2≠8 2EPETIR (ACER1←1>,)'!$%2 [&INDELCICLODELPASO] 3I1>).&/28 ENTONCES #REAR4 [3ECREAELNUEVONODO] (ACER4>).&/2←$!4/ 4>,)'!$%2←1 2←1>,)'!):1 Y1>,)'!):1←4 3I01 ENTONCES (ACER0←4Y4>,)'!):1←.), SINO (ACER2>,)'!$%2←4Y4>,)'!):1←2
-*45"4%0#-&.&/5&-*("%"4
163
[&INDELCONDICIONALDELPASO] SINO ESCRIBIRh%LELEMENTONOSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEINSERCIØN APLICANDOELALGORITMO
%LIMINACIØNENLISTASDOBLEMENTELIGADAS ,AOPERACIØNDEELIMINACIØNDEUNNODOENUNALISTADOBLEMENTELIGADA ALIGUALQUE EN EL CASO DE LAS LISTAS SIMPLEMENTE LIGADAS CONSISTE EN ELIMINAR UN ELEMENTO DE LA LISTA REDElNIENDOLOSAPUNTADORESCORRESPONDIENTESYLIBERANDOELESPACIODEMEMORIA OCUPADOPORELNODO%NLAELIMINACIØNSEPUEDENPRESENTARDIFERENTESCASOS AUNQUE ALGUNOSDEELLOSSONSIMÏTRICOS YAQUECADANODOTIENEAPUNTADORESHACIADELANTEDE RECHAYATRÈSIZQUIERDA ◗ ◗ ◗ ◗
%LIMINARELPRIMERNODO %LIMINARELÞLTIMONODO %LIMINARELNODOCONINFORMACIØN8 %LIMINARELNODOANTERIORPOSTERIORALNODOCONINFORMACIØN8
%NLOSALGORITMOSQUEPRESENTANLASOLUCIØNALOSDIFERENTESCASOSDEBORRADODEUN ELEMENTODEUNALISTA NOSECONSIDERAQUEÏSTASEENCUENTREVACÓA%STECASO COMOYA SEHAREPETIDOENVARIASOCASIONES SEPUEDECONTROLARENELPROGRAMAPRINCIPALOBIEN CONUNACONDICIØNSIMPLEALINICIODECADAALGORITMO
&)'52! )NSERCIØNDENODOS .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAINSERCIØNDEUNNUEVO NODO
164 >«ÌÕÊxÊ Ê Ê -*45"4
A Ê %LIMINARELPRIMERNODODEUNALISTA DOBLEMENTELIGADA #ONSISTEENQUITARELPRIMERNODODELALISTA CUALQUIERAQUESEASUINFORMACIØN REDEl NIENDOELPUNTEROALINICIODELAMISMA%LALGORITMODESCRIBEESTEPROCESO !LGORITMO %LIMINA?INICIO %LIMINA?INICIO0 & [%STE ALGORITMO ELIMINA EL PRIMER ELEMENTO DE UNA LISTA DOBLEMENTE LIGADA 0 Y & SON LOS APUNTADORESALPRIMERYÞLTIMONODOSDELALISTA RESPECTIVAMENTE] [1ESUNAVARIABLEDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDECADA NODODELALISTA] (ACER1←0 3I1>,)'!$%2≠.), [6ERIlCASILALISTATIENESØLOUNNODO] ENTONCES (ACER0←1>,)'!$%2Y0>,)'!):1←.), SINO (ACER0←.),Y&←.), [&INDELCONDICIONALDELPASO] 1UITAR1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELPRIMERNODODEUNALISTA DOBLEMENTELIGADA MEDIANTEELALGORITMO
B Ê %LIMINARELÞLTIMONODODEUNALISTA DOBLEMENTELIGADA %STECASOESSIMÏTRICOALANTERIORCONSISTEENELIMINARELÞLTIMONODODEUNALISTADOBLE MENTELIGADAYREDElNIRELAPUNTADORALlNALDEELLA &)'52! %LIMINACIØNDELPRIMER NODODEUNALISTA .OTA,ASmECHASDISCONTINUAS INDICANLOSCAMBIOSORIGINADOS ENLALISTADOBLEMENTELIGADA PORLAELIMINACIØNDELPRIMER NODO
-*45"4%0#-&.&/5&-*("%"4
165
!LGORITMO %LIMINA?ÞLTIMO %LIMINA?ÞLTIMO0 & [%STE ALGORITMO ELIMINA EL ÞLTIMO ELEMENTO DE UNA LISTA DOBLEMENTE LIGADA 0 Y & SON LOS APUNTADORESALPRIMEROYÞLTIMONODOSDELALISTA RESPECTIVAMENTE] [1ESUNAVARIABLEDETIPOPUNTERO).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDECADA NODODELALISTA] (ACER1←& 3I1>,)'!):1≠.), [6ERIlCASILALISTATIENEUNSOLONODO] ENTONCES (ACER&←1>,)'!):1Y&>,)'!$%2←.), SINO (ACER&←.),Y0←.), [&INDELCONDICIONALDELPASO] 1UITAR1
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDELÞLTIMONODODEUNALISTA DOBLEMENTELIGADAAPLICANDOELALGORITMOANTERIOR
C Ê %LIMINARUNNODOCONINFORMACIØN8 %STECASOCONSISTEENELIMINARELNODOQUECONTENGALAINFORMACIØN8 YESTABLECERLOS APUNTADORES CORRESPONDIENTES ENTRE SU ANTECESOR Y SU SUCESOR RESPECTIVAMENTE %STE CASOTIENEALGUNASVARIANTES%LNODOQUESEQUIEREELIMINARPUEDEQUENOSEENCUENTRE ENLALISTA OBIENQUESEHALLEYSEAELPRIMERO ELÞLTIMO ELÞNICO OQUEESTÏENCUAL QUIERPOSICIØNINTERMEDIADELAESTRUCTURA
&)'52! %LIMINACIØNDELÞLTIMONODODEUNALISTA .OTA,ASmECHASDISCONTINUASINDICANLOSCAMBIOSORIGINADOSENLALISTADOBLEMENTELIGADAPORLA ELIMINACIØNDELÞLTIMONODO
166 >«ÌÕÊxÊ Ê Ê -*45"4 !LGORITMO %LIMINA?8 %LIMINA?80 & 8 [%STEALGORITMOELIMINAELNODOCONINFORMACIØN8DEUNALISTADOBLEMENTELIGADA0Y&SON LOSAPUNTADORESALPRIMEROYÞLTIMONODOSDELALISTA RESPECTIVAMENTE] [1 4Y2SONVARIABLESDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDE CADANODODELALISTA] (ACER1←0 -IENTRAS1>,)'!$%2≠.), Y1>).&/2≠8 2EPETIR (ACER1←1>,)'!$%2 [&INDELCICLODELPASO] 3I1>).&/28 ENTONCES 3I10 Y1& [,ALISTATIENEUNSOLONODO] ENTONCES (ACER0←.),Y&←.), SINO 3I10 [%SELPRIMERO] ENTONCES (ACER0←1>,)'!$%2Y0>,)'!):1←.), SINO 3I1& [%SELÞLTIMO] ENTONCES (ACER&←1>,)'!):1Y&>,)'!$%2←.), SINO[%SUNNODOINTERMEDIO] (ACER4←1>,)'!):1 2←1>,)'!$%2 4>,)'!$%2←2Y2>,)'!):1←4 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] 1UITAR1 SINO %SCRIBIRh%LELEMENTOCONINFORMACIØN8NOSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
%JEMPLO
%NLAlGURASEPRESENTAUNEJEMPLODEELIMINACIØNDEUNNODOCONINFORMACIØN8 ENUNALISTADOBLEMENTELIGADA
D Ê %LIMINARELNODOANTERIORALNODO CONINFORMACIØN8 %NESTECASOSETRATADEELIMINARELNODOANTERIORAUNODADOCOMOREFERENCIAQUECON TENGALAINFORMACIØN8%LCASOTAMBIÏNTIENEALGUNASVARIANTES0UEDESERQUEELNODO CONINFORMACIØN8NOSEENCUENTREENLALISTAOBIENSEENCUENTRE YSEAELPRIMEROEN
-*45"4%0#-&.&/5&-*("%"4
167
&)'52! %LIMINACIØNDEUNNODOCONINFORMACIØN8A %LNODOESELPRIMEROB %LNODOESEL ÞLTIMOC %LNODOESINTERMEDIO .OTA,ASmECHASDISCONTINUASINDICANLOSCAMBIOSORIGINADOSENLALISTADOBLEMENTELIGADA PORLA ELIMINACIØNDEUNNODO
ESECASONOHAYNADAQUEELIMINAR ELSEGUNDOSEELIMINAELPRIMERODELALISTA O SEENCUENTREENCUALQUIEROTRAPOSICIØN%LALGORITMODESCRIBELOSPASOSNECESARIOS PARALLEVARACABOESTAOPERACIØN !LGORITMO %LIMINA?ANTES?8
%LIMINA?ANTES?80 8 [%STEALGORITMOELIMINA SISEPUEDE ELNODOANTERIORAAQUELQUECONTIENELAINFORMACIØN8 0ESELAPUNTADORALPRIMERNODODELALISTA] [1 4Y2SONVARIABLESDETIPOAPUNTADOR).&/2 ,)'!$%2Y,)'!):1SONLOSCAMPOSDE CADANODODELALISTA]
168 >«ÌÕÊxÊ Ê Ê -*45"4 (ACER1←0 -IENTRAS1>,)'!$%2≠.), Y1>).&/2≠8 2EPETIR (ACER1←1>,)'!$%2 [&INDELCICLODELPASO] 3I1>).&/28 ENTONCES 3I01 ENTONCES %SCRIBIRh.OEXISTENODOANTERIORALPRIMEROv SINO (ACER4←1>,)'!):1 3I04 [%SELPRIMERNODODELALISTA] ENTONCES (ACER0←1Y0>,)'!):1←.), SINO (ACER2←4>,)'!):1 1>,)'!):1←2Y 2>,)'!$%2←1 [&INDELCONDICIONALDELPASO] 1UITAR4 [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LELEMENTOCONINFORMACIØN8NOSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
%JEMPLO
,AlGURACONTIENEUNEJEMPLODEELIMINACIØN MEDIANTEELALGORITMOANTERIOR
&)'52! %LIMINACIØNDENODOS .OTA,ASmECHASDISCONTINUASINDICANLOSCAMBIOSORIGINADOSENLALISTADOBLEMENTELIGADA PORLA ELIMINACIØNDEUNNODO
-*45"4%0#-&.&/5&-*("%"4$*3$6-"3&4
169
&)'52! ,ISTADOBLEMENTE LIGADACIRCULAR
,)34!3$/",%-%.4%,)'!$!3#)2#5,!2%3 %NLASLISTASDOBLEMENTELIGADASCIRCULARES ELCAMPOLIGAIZQUIERDADELPRIMERNODO DELALISTAAPUNTAALÞLTIMO YELCAMPOLIGADERECHADEÏSTEAPUNTAALPRIMERO,AlGURA REPRESENTAUNAESTRUCTURADEESTETIPO ,APRINCIPALVENTAJADELASLISTASCIRCULARESESQUEPERMITENLANAVEGACIØNENCUAL QUIERSENTIDOATRAVÏSDELAMISMAY ADEMÈS SEPUEDERECORRERTODALALISTAPARTIENDO DECUALQUIERNODO SIEMPREQUETENGAMOSUNAPUNTADORAÏSTE3INEMBARGO DEBEMOS DESTACARQUEESNECESARIOESTABLECERCONDICIONESADECUADASPARADETENERELRECORRIDODE UNALISTAYEVITARCAERENCICLOSINlNITOS!LIGUALQUEENELCASODELISTASSIMPLEMENTE LIGADASCIRCULARES SESUELEUTILIZARUNNODODECABECERAlG %STENODOTENDRÈLASCARACTERÓSTICASDESCRITASANTERIORMENTEYSERVIRÈCOMOREFEREN CIAPARADETECTARCUÈNDOSEHARECORRIDOTOTALMENTELALISTA (ASTAESTEMOMENTOSEHANESTUDIADOLASPRINCIPALESCARACTERÓSTICASDELAESTRUCTURA TIPOLISTA CONSIDERANDOTODASSUSVARIANTESlG
&)'52! ,ISTADOBLEMENTE LIGADACIRCULARCON NODODECABECERA
&)'52!
SIMPLEMENTELIGADASCIRCULARES ,ISTAS
SIMPLEMENTELIGADAS
DOBLEMENTELIGADAS
DOBLEMENTELIGADASCIRCULARES
170 >«ÌÕÊxÊ Ê Ê -*45"4 !DEMÈSSEHANPRESENTADOLOSALGORITMOSUTILIZADOSPARAREALIZARLASOPERACIONES MÈSIMPORTANTESDELISTAS,ASSIGUIENTESSONALGUNASAPLICACIONESDELISTAS
!0,)#!#)/.%3$%,)34!3 $OSDELASAPLICACIONESMÈSCONOCIDASDELISTASSONLASSIGUIENTES ◗ ◗
2EPRESENTACIØNDEPOLINOMIOS 2ESOLUCIØNDECOLISIONESHASH
%NGENERALSEPUEDESE×ALARQUELASLISTASSONMUYÞTILESPARAAQUELLASAPLICACIONES ENLASQUESENECESITEDINAMISMOENELCRECIMIENTOYREDUCCIØNDELAESTRUCTURADEDATOS USADAPARAELALMACENAMIENTODELAINFORMACIØN
2EPRESENTACIØNDEPOLINOMIOS ,ASLISTASSEPUEDENEMPLEARPARAALMACENARLOSCOElCIENTESDIFERENTESDECERODELPO LINOMIO JUNTOALEXPONENTE!SÓ POREJEMPLO DADOELPOLINOMIO 0X 888n SUREPRESENTACIØNMEDIANTELISTASQUEDACOMOSEMUESTRAENLAlGURA %LCAMPOINFORMACIØNDECADANODODELALISTACONTENDRÈDOSCAMPOSELCAMPO #/%&)#)%.4%YELCAMPO%80/.%.4% #ABEDESTACARQUEENELEJEMPLOANTERIORSEUTILIZØUNALISTASIMPLEMENTELIGADA PEROSEPUDOHABERUSADOUNACIRCULAROTAMBIÏNUNALISTADOBLEMENTELIGADA
3OLUCIØNDECOLISIONESÊHASH %NELCAPÓTULO ALTRATARELMÏTODODEBÞSQUEDAPORTRANSFORMACIØNDECLAVES SEUTI LIZARONLISTASPARARESOLVERCOLISIONESMÏTODODEENCADENAMIENTO#ONELOBJETO SE EVITAR LA REITERACIØN Y LA REDUNDANCIA DE INFORMACIØN SE SUGIERE REMITIRSE A DICHO CAPÓTULO &)'52! 2EPRESENTACIØNDEPOLINO MIOSUSANDOLISTAS
-"$-"4&-/
171
,!#,!3%,)34! ,ACLASE,ISTATIENEATRIBUTOSYMÏTODOS AMBOSDEPENDENDELTIPODELISTAQUESEESTÏ DElNIENDO%NESTASECCIØNSEDECLARALACLASECORRESPONDIENTEAUNALISTASIMPLEMENTE LIGADA#ONSECUENTEMENTE LOSATRIBUTOSSONLOSAPUNTADORESALPRIMEROYÞLTIMONODOS DELALISTA MIENTRASQUELOSMÏTODOSREPRESENTANTODASLASOPERACIONESANALIZADASAN TERIORMENTE#REA?INICIO )NSERTA?INICIO )NSERTA?lNAL x 2ECORRE?ITERATIVO x %LIMI NA?INICIO %LIMINA?lNAL x ,ACLASE,ISTAUTILIZALACLASE.ODOPARADECLARARELTIPODESUSATRIBUTOS LACUAL REPRESENTA A LOS NODOS DE LA LISTA %S DECIR CADA NODO TIENE DOS ATRIBUTOS UNO PARA ALMACENARLAINFORMACIØNYELOTROPARAGUARDARLADIRECCIØNDELSIGUIENTENODO,OS MÏTODOSDEESTACLASESONLASOPERACIONESVÈLIDASSOBRESUSMIEMBROS%NLASlGURAS YSEPUEDEOBSERVARLAREPRESENTACIØNGRÈlCADELASCLASES.ODOY,ISTA RES PECTIVAMENTE 3ETIENEACCESOALOSMIEMBROSDEUNOBJETODELACLASE,ISTAPORMEDIODELANO TACIØNDEPUNTOS#UANDOSEASUMEQUELAVARIABLE,)34!/"*ESUNOBJETODELACLASE ,ISTA PREVIAMENTECREADO SEPUEDEHACER &)'52! #LASE.ODO
&)'52! #LASE,ISTA
172 >«ÌÕÊxÊ Ê Ê -*45"4 ,)34!/"*)NSERTA?INICIOARGUMENTO PARAINVOCARELMÏTODOQUEINSERTAUNNUEVO ELEMENTOALINICIODELALISTA%NESTEMÏTODOHAYUNSOLOARGUMENTOQUEREPRESENTAEL VALORAGUARDARENELNUEVONODO4ODOSLOSOTROSVALORESREQUERIDOSSONMIEMBROSDE LACLASE ,)34!/"*%LIMINA?INICIOARGUMENTO PARAINVOCARELMÏTODOQUEELIMINAELPRI MERNODODELALISTA%NESTEMÏTODOHAYUNÞNICOARGUMENTO QUEESPARAREGRESAREL VALORELIMINADOTODOSLOSOTROSVALORESREQUERIDOSSONMIEMBROSDELACLASE
&+&3$*$*04
173
▼ %*%2#)#)/3 Ê £° $ElNA UN ALGORITMO PARA INSERTAR SI ES POSIBLE UN ELEMENTO ANTES DE OTRO NODO DADOCOMOREFERENCIAENUNALISTAORDENADA Ê Ó° $ElNAUNALGORITMOPARAINSERTAR SIESPOSIBLE UNELEMENTOSIGUIENDOAOTRODADO COMOREFERENCIA ENUNALISTAORDENADA Ê Î° $ElNAUNALGORITMOPARAINSERTARUNELEMENTOENUNALISTAORDENADA DETALMANERA QUENOSEALTEREELORDENDELAMISMA Ê {° $ElNAUNALGORITMOPARAELIMINARUNNODODEUNALISTAORDENADA Ê x° %SCRIBAUNSUBPROGRAMAQUELEADOSLISTASQUESEENCUENTRANORDENADASYFORMEUNA TERCERAQUERESULTEDELAMEZCLADELOSELEMENTOSDEAMBASLISTAS Ê È° %SCRIBAUNSUBPROGRAMARECURSIVOQUE DADASDOSLISTASORDENADASASCENDENTEMEN TE LASMEZCLEYGENEREUNANUEVALISTAORDENADAENFORMADESCENDENTE Ê Ç° %SCRIBAUNSUBPROGRAMAQUE DADAUNALISTAQUECONTIENENÞMEROS LADIVIDAENDOS LISTASINDEPENDIENTES UNAFORMADAPORLOSNÞMEROSPOSITIVOSYOTRAPORLOSNÞMEROS NEGATIVOS Ê n° %SCRIBAUNSUBPROGRAMARECURSIVOPARAIMPRIMIRTODALAINFORMACIØNDEUNALISTA Ê ° %SCRIBAUNSUBPROGRAMARECURSIVOQUEBUSQUEUNELEMENTO8ENUNALISTADOBLE MENTELIGADA £ä°%SCRIBAUNSUBPROGRAMAQUEELIMINEUNELEMENTO8DEUNALISTACIRCULAR ££°$ElNAUNALGORITMOPARAINSERTARELEMENTOSENUNALISTACIRCULAR £Ó°%SCRIBALOSSUBPROGRAMASh-ETE?0ILAvYh3ACA?0ILAvPARAINSERTARYELIMINAR RES PECTIVAMENTE UNELEMENTODEUNAPILAIMPLEMENTADAPORMEDIODEUNALISTA £Î°%SCRIBAUNSUBPROGRAMARECURSIVOQUEPERMITARECORRERUNALISTADOBLEMENTELIGADA ENAMBOSSENTIDOS £{°$ElNAUNALGORITMORECURSIVOPARAINSERTARUNELEMENTOSIGUIENDOAOTRONODODADO COMOREFERENCIA ENUNALISTADOBLEMENTELIGADA £x°%SCRIBAUNSUBPROGRAMARECURSIVOPARAEVALUARUNPOLINOMIOREPRESENTADOPORME DIODEUNALISTALINEAL
174 >«ÌÕÊxÊ Ê Ê -*45"4 £È°$ElNALOSALGORITMOSNECESARIOSPARAIMPLEMENTARUNAESTRUCTURATIPOCOLAMEDIAN TELISTAS £Ç°3EHADElNIDOLASIGUIENTEESTRUCTURADEDATOS
%NELARREGLOh0/342%3vSEALMACENANNOMBRESDEPOSTRES ORDENADOSALFA BÏTICAMENTE!SUVEZ CADAELEMENTODELARREGLOTIENEUNALISTADETODOSLOSINGRE DIENTESQUEREQUIEREDICHOPOSTRE %SCRIBAUNPROGRAMAQUE A $ADOELNOMBREDEUNPOSTRE IMPRIMALALISTADETODOSSUSINGREDIENTES B $ADO EL NOMBRE DE UN POSTRE INSERTE NUEVOS INGREDIENTES A SU CORRESPONDIENTE LISTA C $ADOELNOMBREDEUNPOSTRE ELIMINEALGUNODESUSINGREDIENTES D $ÏDEALTAUNPOSTRECONTODOSSUSINGREDIENTES E $ÏDEBAJAUNPOSTRECONTODOSSUSINGREDIENTES .OTA%NCADAUNODELOSPUNTOSANTERIORESVERIlQUETODOSLOSCASOSQUEPUDIERAN PRESENTARSE £n°%SCRIBAUNSUBPROGRAMAQUEELIMINELOSELEMENTOSREPETIDOSDEUNAESTRUCTURATIPO COLAIMPLEMENTADAPORMEDIODELISTAS £°2ETOMELACLASEDElNIDAPREVIAMENTEPARALISTASSIMPLEMENTELIGADASYPROGRÈMELA ENALGÞNLENGUAJEORIENTADOAOBJETOS Óä°2ETOMELACLASEDELPROBLEMAANTERIORYADÈPTELAPARALISTASSIMPLEMENTELIGADAS CIRCULARESCONNODODECABECERA
&+&3$*$*04
175
Ó£°$ElNAUNACLASEPARALISTASDOBLEMENTELIGADAS)NCLUYALOSATRIBUTOSYTODOSLOS MÏTODOSQUECONSIDERECONVENIENTE0ROGRÈMELAENALGÞNLENGUAJEDEPROGRAMA CIØNORIENTADOAOBJETOS ÓÓ°2ETOMELACLASEDElNIDADELPROBLEMAANTERIORYADÈPTELAPARALISTASDOBLEMENTE LIGADASCIRCULARESCONNODODECABECERA Óΰ#ONSIDERE QUE SE TIENE UNA LISTA DE NÞMEROS ENTEROS ORDENADOS CRECIENTEMENTE COMOLAQUESEMUESTRAACONTINUACIØN/BSERVEQUEFALTANALGUNOSNÞMEROSPARA TENERTODOSLOSVALORESCOMPRENDIDOSENTREELPRIMERO YELÞLTIMO %SCRIBA UNPROGRAMAQUEhCOMPLETEvLALISTA DETALMANERAQUELAMISMA UNAVEZMODIlCA DA ALMACENETODOSLOSVALORESAPARTIRDELNÞMERODELPRIMERNODOHASTAELNÞMERO DELÞLTIMO0ARAELEJEMPLO LALISTAGUARDARÈLOSNÞMEROS Y 5TILICELACLASEDELISTASSIMPLEMENTELIGADASPREVIAMENTEDElNIDA
#APÓTULO
È
2"/,%3 ).42/$5##)¼. (ASTAELMOMENTOSØLOSEHANESTUDIADOESTRUCTURASDEDATOSLINEALES TANTOESTÈTICAS COMODINÈMICASACADAELEMENTOSIEMPRELESUCEDEOLEPRECEDECOMOMÈXIMOOTRO ELEMENTO!LESTUDIARLAESTRUCTURADEDATOSÈRBOLESSEINTRODUCEELCONCEPTODERAMIl CACIØNENTRECOMPONENTESONODOS%SDECIR AUNELEMENTOLEPUEDENPRECEDEROSUCEDER VARIOSELEMENTOS ,OSÈRBOLESSONLASESTRUCTURASDEDATOSNOLINEALESYDINÈMICASDEDATOSMÈSIM PORTANTESDELÈREADECOMPUTACIØN$INÈMICAS PUESTOQUELASMISMASPUEDENCAMBIAR TANTODEFORMACOMODETAMA×ODURANTELAEJECUCIØNDELPROGRAMA.OLINEALES PUESTO QUECADAELEMENTODELÈRBOLPUEDETENERMÈSDEUNSUCESOR,OSÈRBOLESBALANCEADOS O!6,SONLAESTRUCTURADEDATOSMÈSElCIENTEPARATRABAJARCONLAMEMORIAPRINCIPAL INTERNADELPROCESADOR MIENTRASQUELOSÈRBOLES"Y ESPECIALMENTELAVERSIØN" REPRESENTANLAESTRUCTURADEDATOSMÈSElCIENTEPARATRABAJARENMEMORIASECUNDARIAO EXTERNA %N LA TABLA SE PRESENTAN LAS PRINCIPALES ESTRUCTURAS DE DATOS CLASIlCADAS DE ACUERDO CON SU CAPACIDAD PARA CAMBIAR EN FORMA Y TAMA×O DURANTE LA EJECUCIØN DEL PROGRAMA %SDEOBSERVARQUELASPILASYCOLASNOFUERONCONSIDERADASENESTACLASIlCACIØN PUESTO QUE DEPENDEN DE LA ESTRUCTURA QUE SE UTILICE PARA IMPLEMENTARLAS 3I SE USAN ARREGLOS SETRATARÈNCOMOESTRUCTURASESTÈTICAS3ISEIMPLEMENTANCONLISTAS SERÈNES TRUCTURASDINÈMICAS%NAMBOSCASOSSONLINEALES %NLATABLASEPRESENTANLASPRINCIPALESESTRUCTURASDEDATOSCLASIlCADASSEGÞN LADISTRIBUCIØNDESUSELEMENTOS
4!",!
%STRUCTURASESTÈTICAS
%STRUCTURASDINÈMICAS
%STRUCTURASDEDATOS ESTÉTICASYDINÉMICAS
!RREGLOS
,ISTAS
2EGISTROS
«RBOLES 'RÈlCAS
178 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 4!",! %STRUCTURASDEDATOS LINEALESYNOLINEALES
%STRUCTURASLINEALES
%STRUCTURASNOLINEALES
!RREGLOS
«RBOLES
2EGISTROS
'RÈlCAS
0ILAS #OLAS ,ISTAS
2"/,%3%.'%.%2!, 5N ÈRBOL SE PUEDE DElNIR COMO UNA ESTRUCTURA JERÈRQUICA APLICADA SOBRE UNA COLEC CIØNDEELEMENTOSUOBJETOSLLAMADOSNODOS UNODELOSCUALESESCONOCIDOCOMORAÓZ !DEMÈSSECREAUNARELACIØNOPARENTESCOENTRELOSNODOSDANDOLUGARATÏRMINOSCOMO PADRE HIJO HERMANO ANTECESOR SUCESOR ANCESTRO ETCÏTERA &ORMALMENTESEDElNEUNÈRBOLDETIPO4COMOUNAESTRUCTURAHOMOGÏNEARE SULTADODELACONCATENACIØNDEUNELEMENTODETIPO4CONUNNÞMEROlNITODEÈRBO LESDISJUNTOS LLAMADOSSUBÈRBOLES5NAFORMAPARTICULARDEÈRBOLESELÈRBOLVACÓO ,OSÈRBOLESSONESTRUCTURASRECURSIVAS YAQUECADASUBÈRBOLESASUVEZUNÈRBOL ,OSÈRBOLESSEPUEDENAPLICARPARALASOLUCIØNDEUNAGRANCANTIDADDEPROBLEMAS 0OREJEMPLO SEPUEDENUTILIZARPARAREPRESENTARFØRMULASMATEMÈTICAS PARAREGISTRARLA HISTORIADEUNCAMPEONATODETENIS PARACONSTRUIRUNÈRBOLGENEALØGICO PARAELANÈLISIS DECIRCUITOSELÏCTRICOSYPARAENUMERARLOSCAPÓTULOSYSECCIONESDEUNLIBRO 5NÈRBOLSEPUEDEREPRESENTARDEDIFERENTESFORMASYTODASELLASSECONSIDERANEQUI VALENTES%NLAlGURASEPRESENTANCINCONOTACIONESDIFERENTESCORRESPONDIENTESAUN MISMOÈRBOL%NLAlGURAASEUTILIZAUNDIAGRAMADE6ENNENLAlGURABLAANI DACIØNDEPARÏNTESISENLAlGURACLANOTACIØNDECIMALDE$EWEYENLAlGURADLA NOTACIØNINDENTADA Y PORÞLTIMO ENLAlGURAEUNGRAFO%STAÞLTIMAREPRESENTACIØN ESLAQUECOMÞNMENTESEUTILIZA YHAORIGINADOELTÏRMINOÈRBOLPORSUPARECIDOABSTRAC TOCONELVEGETALRAÓZ RAMAS HOJAS APESARDEQUELARAÓZSEDIBUJAARRIBA AUNQUE ENELVEGETALSEENCUENTREABAJO %NELGRAFOSEDISTINGUENNODOSCÓRCULOSYARCOSLÓNEASCONmECHAS,OS PRIMEROSSEUSANPARAALMACENARLAINFORMACIØNYLOSÞLTIMOSPARAESTABLECERLARELACIØN ENTRELOSNODOS%NELEJEMPLODELAlGURAELOSNODOSGUARDANLETRASYLOSARCOS PERMITENIRDECIERTOSNODOSAOTROS
#ARACTERÓSTICASYPROPIEDADESDELOSÉRBOLES ,AESTRUCTURATIPOÈRBOLTIENECIERTASCARACTERÓSTICASYPROPIEDADESQUELADISTINGUEN! CONTINUACIØNSEPRESENTANLASMÈSIMPORTANTES A 4ODOÈRBOLQUENOESVACÓOTIENEUNÞNICONODORAÓZ
Ç3#0-&4&/(&/&3"-
179
&)'52! $IFERENTESFORMASDEREPRESENTARUNAESTRUCTURADEÉRBOLA $IAGRAMASDE6ENNB !NIDACIØNDEPARÏNTESISC .OTACIØNDECIMALDE$EWEYD .OTACIØNINDENTADAE 'RAFO
B 5NNODO8ESDESCENDIENTEDIRECTODEUNNODO9 SIELNODO8ESAPUNTADOPOREL NODO9%NESTECASOESCOMÞNUTILIZARLAEXPRESIØN8ESHIJODE9 C 5NNODO8ESANTECESORDIRECTODEUNNODO9 SIELNODO8APUNTAALNODO9%NESTE CASOESCOMÞNUTILIZARLAEXPRESIØN8ESPADREDE9 D 3EDICEQUETODOSLOSNODOSQUESONDESCENDIENTESDIRECTOSHIJOSDEUNMISMO NODOPADRESONHERMANOS E 4ODONODOQUENOTIENERAMIlCACIONESHIJOS SECONOCECONELNOMBREDETER MINALUHOJA F 4ODONODOQUENOESRAÓZNITERMINALUHOJASECONOCECONELNOMBREDEINTERIOR G 'RADOESELNÞMERODEDESCENDIENTESDIRECTOSDEUNDETERMINADONODO H 'RADODELÈRBOLESELMÈXIMOGRADODETODOSLOSNODOSDELÈRBOL I .IVELESELNÞMERODEARCOSQUEDEBENSERRECORRIDOSPARALLEGARAUNDETERMINADO NODO0ORDElNICIØNLARAÓZTIENENIVEL J !LTURADELÈRBOLESELMÈXIMONÞMERODENIVELESDETODOSLOSNODOSDELÈRBOL
180 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 !CONTINUACIØNSEPRESENTAUNEJEMPLOPARACLARIlCARESTOSCONCEPTOS
%JEMPLO
$ADOELÈRBOLGENERALDELAlGURA SEPUEDEAlRMARLOSIGUIENTE !ESLARAÓZDELÈRBOL
"ESHIJODE! #ESHIJODE! $ESHIJODE" %ESHIJODE" ,ESHIJODE(
!ESPADREDE" "ESPADREDE$ $ESPADREDE) #ESPADREDE' (ESPADREDE,
"Y#SONHERMANOS $ %Y&SONHERMANOS 'Y(SONHERMANOS *Y+SONHERMANOS
) % * + 'Y,SONNODOSTERMINALESUHOJAS " $ & #Y(SONNODOSINTERIORES
%LGRADODELNODO!ES %LGRADODELNODO"ES %LGRADODELNODO#ES %LGRADODELNODO$ES %LGRADODELNODO%ES %LGRADODELÈRBOLES
%LNIVELDELNODO!ES %LNIVELDELNODO"ES %LNIVELDELNODO$ES %LNIVELDELNODO#ES %LNIVELDELNODO,ES
,AALTURADELÈRBOLES
,ONGITUDDECAMINOINTERNOYEXTERNO 3EDElNELALONGITUDDECAMINODELNODO8COMOELNÞMERODEARCOSQUESEDEBENRE CORRERPARALLEGARDESDELARAÓZHASTAELNODO80ORDElNICIØNLARAÓZTIENELONGITUDDE
Ç3#0-&4&/(&/&3"-
181
&)'52! RBOLGENERAL
CAMINO SUSDESCENDIENTESDIRECTOSLONGITUDDECAMINOYASÓSUCESIVAMENTE#ONSI DEREELÈRBOLDELAlGURA%LNODO"TIENELONGITUDDECAMINO ELNODO)LONGITUD DECAMINOYELNODO(LONGITUDDECAMINO
,ONGITUDDECAMINOINTERNO ,ALONGITUDDECAMINOINTERNO,#) DELÈRBOLESLASUMADELASLONGITUDESDECAMINO DE TODOS LOS NODOS DEL ÈRBOL %STA MEDIDA ES IMPORTANTE PORQUE PERMITE CONOCER LOS CAMINOSQUETIENEELÈRBOL3ECALCULAPORMEDIODELASIGUIENTEFØRMULA H
,#) ¤ NI I
▼ &ØRMULA
I
DONDEIREPRESENTAELNIVELDELÈRBOL HSUALTURAYNIELNÞMERODENODOSENELNIVELI ,A,#)DELÈRBOLDELAlGURASECALCULADEESTAFORMA ,#) !HORA BIEN LA MEDIA DE LA LONGITUD DE CAMINO INTERNO ,#)- SE CALCULA DIVI DIENDOLA,#)ENTREELNÞMERODENODOSDELÈRBOLN ,AMEDIAESIMPORTANTEPORQUE PERMITECONOCER ENPROMEDIO ELNÞMERODEDECISIONESQUESEDEBENTOMARPARALLEGAR AUNDETERMINADONODOPARTIENDODESDELARAÓZ3EEXPRESA
,#)-,#)N
▼ &ØRMULA
,A,#)-DELÈRBOLDELAlGURASECALCULACOMOSEMUESTRAACONTINUACIØN ,#)-
182 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
,ONGITUDDECAMINOEXTERNO 0ARADElNIRLALONGITUDDECAMINOEXTERNODEUNÈRBOLESNECESARIOPRIMEROEXPLICARLOS CONCEPTOSDEÈRBOLEXTENDIDOYNODOESPECIAL 5NÈRBOLEXTENDIDOESAQUELENELQUEELNÞMERODEHIJOSDECADANODOESIGUALAL GRADODELÈRBOL3IALGUNODELOSNODOSDELÈRBOLNOCUMPLECONESTACONDICIØN ENTON CESDEBENINCORPORARSEALMISMOTANTOSNODOSESPECIALESCOMOSEREQUIERAPARALLEGAR ACUMPLIRLA ,OSNODOSESPECIALESTIENENCOMOOBJETIVOREMPLAZARLASRAMASVACÓASONULAS NO PUEDENTENERDESCENDIENTESYNORMALMENTESEREPRESENTANCONLAFORMADEUNCUADRADO %NLAlGURASEPRESENTAELÈRBOLEXTENDIDODELAlGURA%LNÞMERODENODOSES PECIALESDEESTEÈRBOLES 3EPUEDEDElNIRAHORALALONGITUDDECAMINOEXTERNO,#% DEUNÈRBOLCOMOLA SUMADELASLONGITUDESDECAMINODETODOSLOSNODOSESPECIALESDELÈRBOL3ECALCULAPOR MEDIODELASIGUIENTEFØRMULA H
,#% ¤ NEI I
▼ &ØRMULA
I
DONDEIREPRESENTAELNIVELDELÈRBOL HSUALTURAYNEIELNÞMERODENODOSESPECIALESEN ELNIVELI/BSERVEQUEICOMIENZADESDE PUESTOQUELARAÓZSEENCUENTRAENELNIVEL YNOPUEDESERUNNODOESPECIAL ,A,#%DELÈRBOLDELAlGURASECALCULADEESTAMANERA ,#%
&)'52! RBOLEXTENDIDO
!HORABIEN LAMEDIADELALONGITUDDECAMINOEXTERNO,#%- SECALCULADIVI DIENDOLA,#%ENTREELNÞMERODENODOSESPECIALESDELÈRBOLNE /BSERVEELLECTORLA SIGUIENTEFØRMULA
Ç3#0-&4&/(&/&3"-
,#%-,#%NE
183
▼ &ØRMULA
EINDICAELNÞMERODEARCOSQUESEDEBENRECORRERENPROMEDIOPARALLEGAR PARTIENDODESDE LARAÓZ AUNNODOESPECIALCUALQUIERADELÈRBOL ,A,#%-DELÈRBOLDELAlGURASECALCULADELASIGUIENTEMANERA ,#%- %LSIGUIENTEEJEMPLOCLARIlCARÈLOSCONCEPTOSDELONGITUDDECAMINOINTERNOYEX TERNO
%JEMPLO
$ADOELÈRBOLGENERALDELAlGURAYELÈRBOLEXTENDIDODELAlGURASECALCULALA LONGITUDDECAMINOINTERNO
&)'52! RBOLGENERAL
,#) ,AMEDIADELALONGITUDDECAMINOINTERNO ,#)- &)'52! RBOLEXTENDIDO
,ALONGITUDDECAMINOEXTERNO ,#%
184 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 ,AMEDIADELALONGITUDDECAMINOEXTERNO ,#%-
2"/,%3").!2)/3 5NÈRBOLORDENADOESAQUELENELCUALLADISTRIBUCIØNDELASRAMASSIGUEUNCIERTOORDEN ,OSÈRBOLESORDENADOSDEGRADOSONDEESPECIALINTERÏSENELÈREADELACOMPUTACIØN PORQUEPERMITENREPRESENTARLAINFORMACIØNRELACIONADACONLASOLUCIØNDEMUCHOSPRO BLEMAS%STOSÈRBOLESSONCONOCIDOSCONELNOMBREDEÈRBOLESBINARIOS %NUNÈRBOLBINARIOCADANODOPUEDETENERCOMOMÈXIMODOSSUBÈRBOLESYÏSTOSSE DISTINGUENENTRESÓCOMOELSUBÈRBOLIZQUIERDOYELSUBÈRBOLDERECHO SEGÞNSUUBICACIØN CONRESPECTOALNODORAÓZ &ORMALMENTESEDElNEUNÈRBOLBINARIOTIPO4COMOUNAESTRUCTURAHOMOGÏ NEA RESULTADODELACONCATENACIØNDEUNELEMENTODETIPO4 LLAMADORAÓZ CONDOS ÈRBOLES BINARIOS DISJUNTOS LLAMADOS SUBÈRBOL IZQUIERDO Y SUBÈRBOL DERECHO 5N ÈRBOLBINARIOESPECIALESELÈRBOLVACÓO ,OSÈRBOLESBINARIOSTIENENMÞLTIPLESAPLICACIONES3ELESPUEDEUTILIZARPARARE PRESENTAR LA SOLUCIØN DE UN PROBLEMA PARA EL CUAL EXISTEN DOS POSIBLES ALTERNATIVAS ÈRBOL DE DECISIONES PARA REPRESENTAR UN ÈRBOL GENEALØGICO CONSTRUIDO EN FORMA ASCENDENTEYDONDESEMUESTRANLOSANCESTROSDEUNINDIVIDUODADO PARAREPRESENTAR LAHISTORIADEUNCAMPEONATODETENISCONSTRUIDOENFORMAASCENDENTEYDONDEEXISTE UNGANADOR lNALISTAS SEMIlNALISTASYASÓSUCESIVAMENTE YPARAREPRESENTAREX PRESIONESALGEBRAICASCONSTRUIDASCONOPERADORESBINARIOS%STOSØLOPORCITARALGUNOS DESUSMÞLTIPLESUSOS %NLAlGURASEMUESTRANTRESDIAGRAMASCORRESPONDIENTESAUNAESTRUCTURADE ÈRBOLBINARIO%NLAlGURAAHAYUNÈRBOLBINARIODEBÞSQUEDAESTAVARIANTESEPRE SENTARÈCONDETALLEMÈSADELANTE ENLAlGURABELÈRBOLBINARIOQUEREPRESENTALA EXPRESIØN! " #$ >YENLAlGURACUNÈRBOLGENEALØGICO ,OS ÈRBOLES ORDENADOS DE GRADO MAYOR A REPRESENTAN TAMBIÏN ESTRUCTURAS IM PORTANTES3ECONOCENCONELNOMBREDEÈRBOLESMULTICAMINOSYSERÈNESTUDIADOSMÈS ADELANTEENESTEMISMOCAPÓTULO
Ç3#0-&4#*/"3*04 &)'52! $ISTINTASAPLICACIONESDE ÉRBOLESBINARIOSA RBOLES BINARIOSDEBÞSQUEDA B 2EPRESENTACIØNDEUNA EXPRESIØNALGEBRAICA C RBOLGENEALØGICO
185
186 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
RBOLESBINARIOSDISTINTOS SIMILARESYEQUIVALENTES $OSÈRBOLESBINARIOSSONDISTINTOSCUANDOSUSESTRUCTURASLADISTRIBUCIØNDENODOSY ARCOSSONDIFERENTES%NLAlGURASEPRESENTANDOSEJEMPLOSDEÈRBOLESBINARIOS DISTINTOS &)'52! RBOLESBINARIOSDISTINTOS
$OS ÈRBOLES BINARIOS SON SIMILARES CUANDO SUS ESTRUCTURAS SON IDÏNTICAS PERO LA INFORMACIØNQUECONTIENENSUSNODOSDIlEREENTRESÓ%NLAlGURASEPRESENTANDOS EJEMPLOSDEÈRBOLESBINARIOSSIMILARES
&)'52! RBOLESBINARIOSSIMILARES
0OR ÞLTIMO LOS ÈRBOLES BINARIOS EQUIVALENTES SE DElNEN COMO AQUELLOS QUE SON SIMILARESYADEMÈSLOSNODOSCONTIENENLAMISMAINFORMACIØN%NLAlGURASEMUES TRANDOSEJEMPLOSDEÈRBOLESBINARIOSEQUIVALENTES &)'52! RBOLESBINARIOSEQUIVA LENTES
Ç3#0-&4#*/"3*04
187
#ONELlNDECLARIlCARLOSCONCEPTOSANTERIORES SEPRESENTAELSIGUIENTEEJEMPLO
%JEMPLO
$ADOSLOSÈRBOLESBINARIOSDELAlGURA SEPUEDEAlRMARLOSIGUIENTE
&)'52! RBOLESBINARIOSDISTINTOS SIMILARESYEQUIVALENTES
◗ ◗ ◗
%L ÈRBOL DE LA lGURA C ES DISTINTO DE LOS ÈRBOLES DE LA lGURA A B Y D ,OSÈRBOLESDELAlGURAA BYDSONSIMILARES ,OSÈRBOLESDELAlGURAAYDSONEQUIVALENTES
RBOLESBINARIOSCOMPLETOS 3EDElNEUNÈRBOLBINARIOCOMPLETO!"# COMOUNÈRBOLENELQUETODOSSUSNODOS EXCEPTOLOSDELÞLTIMONIVEL TIENENDOSHIJOSELSUBÈRBOLIZQUIERDOYELSUBÈRBOLDERE CHO%NLAlGURASEPRESENTANDOSEJEMPLOSDEÈRBOLESBINARIOSCOMPLETOS
188 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! RBOLESBINARIOSCOMPLE TOSA $EALTURAB $E ALTURA
%LNÞMERODENODOSDEUNÈRBOLBINARIOCOMPLETODEALTURAH SEPUEDECALCULAR APLICANDOLASIGUIENTEFØRMULA
.Á-%2/$%./$/3!"# Hn
▼ &ØRMULA
!SÓ POREJEMPLO UNÈRBOLBINARIOCOMPLETODEALTURATENDRÈNODOS UNODE ALTURATENDRÈNODOSYUNÈRBOLDEALTURATENDRÈNODOS #ABEACLARARQUEEXISTENALGUNOSAUTORESQUEDElNENUNÈRBOLBINARIOCOMPLETODE OTRAFORMAYOTROSQUEUTILIZANELTÏRMINOLLENOPARAREFERIRSEALOQUEENESTELIBROSE DENOMINACOMPLETO
2EPRESENTACIØNDEÉRBOLESGENERALESCOMOBINARIOS ,OSÈRBOLESBINARIOS PORLASRAZONESYAMENCIONADAS SEAPLICANENLASOLUCIØNCOMPU TACIONALDEMUCHOSPROBLEMAS!DEMÈS SUUSOSEVEFAVORECIDOPORSUDINAMISMO LA NOLINEALIDADENTRESUSELEMENTOSYPORSUSENCILLAPROGRAMACIØN0ORLOTANTO RESULTA MUYÞTILPODERCONVERTIRÈRBOLESGENERALES CONANHIJOS ENÈRBOLESBINARIOS %NESTASECCIØNSEDARÈNLOSPASOSNECESARIOSPARALOGRARLO#ONSIDEREELÈRBOLGE NERALDELAlGURAA,ASOPERACIONESQUESEDEBENAPLICARPARALOGRARLACONVERSIØN DELÈRBOLGENERALALÈRBOLBINARIOCORRESPONDIENTESONLASSIGUIENTES
Ç3#0-&4#*/"3*04
189
%NLAZARLOSHIJOSDECADANODOENFORMAHORIZONTALLOSHERMANOS 2ELACIONARENFORMAVERTICALELNODOPADRECONELHIJOQUESEENCUENTRAMÈSALA IZQUIERDA!DEMÈS SE DEBE ELIMINAR EL VÓNCULO DE ESE PADRE CON EL RESTO DE SUS HIJOS 2OTARELDIAGRAMARESULTANTE APROXIMADAMENTEGRADOSHACIALAIZQUIERDA YASÓ SEOBTENDRÈELÈRBOLBINARIOCORRESPONDIENTE %NLAlGURABSEVISUALIZAELÈRBOLLUEGODEAPLICARLOSDOSPRIMEROSPASOS%N LAlGURACSEOBSERVAELÈRBOLBINARIO OBTENIDOLUEGODEAPLICARELTERCERPASO
&)'52! #ONVERSIØNDEUNÉRBOL GENERALENUNÉRBOLBINARIO A RBOLGENERALB RBOL BINARIOLUEGODEAPLICAR LOSPASOSYC RBOL BINARIOLUEGODEAPLICAREL PASO
190 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO
&)'52! #ONVERSIØNDEUNÉRBOL GENERALENUNÉRBOLBINARIO A RBOLGENERALB RBOL BINARIOLUEGODEAPLICAR LOSPASOSYC RBOL BINARIOLUEGODEAPLICAREL PASO
$ADOCOMODATOELÈRBOLGENERALDELAlGURAA SEDEBECONVERTIRAUNÈRBOLBINARIO %NLAlGURABSEOBSERVAUNAGRÈlCADELÈRBOLLUEGODEAPLICARLOSDOSPRIMEROSPA SOS%NLAlGURACSEOBSERVAELÈRBOLBINARIOQUESEOBTIENELUEGODEQUESEAPLICA ELTERCERPASO
Ç3#0-&4#*/"3*04
191
/BSERVEQUEPARATODONODODEUNÈRBOLBINARIO GENERADOAPARTIRDEUNÈRBOLGE NERAL SEDEBECUMPLIRLOSIGUIENTE 3ILARAMADERECHADECADANODO EXCEPTOELNODORAÓZ ESDISTINTADEVACÓOSEEN CUENTRAUNNODOQUEERAHERMANODEÏSTEENELÈRBOLGENERAL$ELAlGURAC PODEMOSDEDUCIRQUE#ERAHERMANODE"!PLICANDOELMISMOCRITERIODEDUCIMOS TAMBIÏNQUE$ERAHERMANODE#Y PORLOTANTO PORTRANSITIVIDAD HERMANODE" /TRAS DEDUCCIONES QUE SE PUEDEN REALIZAR OBSERVANDO LA lGURA C SON LAS SI GUIENTES ◗ %Y&ERANHERMANOS ◗ -Y.ERANHERMANOS ◗ ( ) *Y+ERANHERMANOS %SDENOTARQUELOSHERMANOSSEENCUENTRANENLAGRÈlCAENUNALÓNEAOBLICUA CONTINUA ORIENTADAGRADOSHACIALADERECHA%NLAlGURASEPRESENTANTRES DIAGRAMASDIFERENTESDONDESEPUEDENOBSERVARALGUNOSEJEMPLOS
&)'52! .ODOSHERMANOS
%NLARAMAIZQUIERDADECADANODOSIÏSTAESDISTINTADEVACÓOSEENCUENTRAUN NODOQUEERAHIJODEÏSTEENELÈRBOLGENERAL$ELAlGURACPODEMOSDEDUCIR QUE%ERAHIJODE"YCOMOPOR &ERAHERMANODE% PODEMOSAlRMARQUE&ERA TAMBIÏNHIJODE"/TRASDEDUCCIONESQUESEPUEDENREALIZAROBSERVANDOLAlGURA CSONLASSIGUIENTES ◗ " #Y$ERANHIJOSDE! ◗ -Y.ERANHIJOSDE' ◗ 'ERAHIJODE# %SDENOTARQUELOSHIJOSDEUNNODOSEENCUENTRANENLAGRÈlCA PRIMEROENUNA LÓNEAOBLICUACONTINUAORIENTADAGRADOSHACIALAIZQUIERDAYLUEGOENUNALÓNEACON TINUAOBLICUAORIENTADAGRADOSHACIALADERECHA%NLAlGURAHAYTRESDIAGRAMAS DIFERENTESDONDESEOBSERVANALGUNOSEJEMPLOS
192 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %NLAlGURABNOEXISTELÓNEAOBLICUAORIENTADAHACIALADERECHAPORQUE'ESEL ÞNICOHIJODELNODO#
&)'52! .ODOSHIJOS
2EPRESENTACIØNDEUNBOSQUECOMOÉRBOLBINARIO 5NBOSQUEREPRESENTAUNCONJUNTONORMALMENTEORDENADODEUNOOMÈSÈRBOLESGENE RALES%SPOSIBLEUTILIZARELALGORITMODECONVERSIØNANALIZADOENLASECCIØNANTERIOR CON ALGUNASMODIlCACIONES PARAGENERARUNÈRBOLBINARIOAPARTIRDEUNBOSQUE #ONSIDEREPOREJEMPLOELBOSQUE FORMADOPORTRESÈRBOLESGENERALES DELAlGURA ,OSPASOSQUESEDEBENAPLICARPARALOGRARLACONVERSIØNDELBOSQUEAUNÈRBOL BINARIOSONLOSSIGUIENTES
&)'52! "OSQUEDEÉRBOLESGENERALES
Ç3#0-&4#*/"3*04
193
%NLAZARENFORMAHORIZONTALLASRAÓCESDELOSDISTINTOSÈRBOLESGENERALES 2ELACIONARLOSHIJOSDECADANODOLOSHERMANOSENFORMAHORIZONTAL %NLAZARENFORMAVERTICALELNODOPADRECONELHIJOQUESEENCUENTRAMÈSALAIZ QUIERDA!DEMÈS SEDEBEELIMINARELVÓNCULODELPADRECONELRESTODESUSHIJOS 2OTARELDIAGRAMARESULTANTEAPROXIMADAMENTEGRADOSHACIALAIZQUIERDAYASÓSE OBTENDRÈELÈRBOLBINARIOCORRESPONDIENTE %NLAlGURAASEMUESTRAELÈRBOLLUEGODEAPLICARLOSTRESPRIMEROSPASOS%NLA lGURABSEOBSERVAELÈRBOLBINARIOOBTENIDOLUEGODEQUESEREALIZAELCUARTOPASO &)'52! #ONVERSIØNDEUNBOSQUEENÉRBOLBINARIOA RBOLBINARIOLUEGODEAPLICARLOSPASOS YB RBOLBINARIOLUEGODEAPLICARELPASO
194 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO
$ADOCOMODATOELBOSQUEDELAlGURAA SEDESEACONVERTIRLOAUNÈRBOLBINARIO %NLAlGURABSEOBSERVAUNAGRÈlCADELÈRBOLLUEGODEAPLICARLOSTRESPRIMEROS PASOS%NLAlGURACSEPUEDEAPRECIARELÈRBOLBINARIOQUESEOBTIENELUEGODEQUE SEAPLICAELCUARTOPASO
&)'52! #ONVERSIØNDEUNBOSQUEENÉRBOLBINARIOA "OSQUEB RBOLLUEGODEAPLICARELPRIME RO SEGUNDOYTERCERPASOSC RBOLBINARIOLUEGODEAPLICARELCUARTOPASO
Ç3#0-&4#*/"3*04
195
%SDENOTARQUEPARATODONODODEUNÈRBOLBINARIO QUESEOBTIENEAPARTIRDEUN BOSQUE SECUMPLENLOSDOSINCISOSSE×ALADOSENLACONVERSIØNDEUNÈRBOLGENERALEN UNÈRBOLBINARIO
2EPRESENTACIØNDEÉRBOLESBINARIOSENMEMORIA ,ASDOSMANERASMÈSCOMUNESDEREPRESENTARUNÈRBOLBINARIOENMEMORIASON 0ORMEDIODEDATOSTIPOPUNTERO TAMBIÏNCONOCIDOSCOMOVARIABLESDINÈMICAS 0ORMEDIODEARREGLOS %NESTELIBROSEEXPLICARÈYUTILIZARÈLAPRIMERAFORMA PUESTOQUEREPRESENTALAMÈS NATURALPARATRATARUNAESTRUCTURADEDATOSDEESTETIPO !LlNALDELCAPÓTULOSEPRESENTARÈUNABREVEINTRODUCCIØNALOSÈRBOLES DESDEEL PUNTODEVISTADELPARADIGMAORIENTADOAOBJETOS3INEMBARGO LOQUESEESTUDIARÈA CONTINUACIØNSIGUESIENDOVÈLIDOPARALASCLASES#OMOENLASOTRASESTRUCTURASDEDATOS PRESENTADASENESTELIBRO LOSCONCEPTOSEXPLICADOSSONLOSFUNDAMENTOSREQUERIDOSPARA ELUSODELASMISMAS INDEPENDIENTEMENTEDELPARADIGMAYDELLENGUAJEUTILIZADOPARA SUIMPLEMENTACIØN ,OSNODOSDELÈRBOLBINARIOSEREPRESENTANCOMOREGISTROS#ADAUNODEELLOSCON TIENECOMOMÓNIMOTRESCAMPOS%NUNCAMPOSEALMACENARÈLAINFORMACIØNDELNODO ,OSDOSRESTANTESSEUTILIZARÈNPARAAPUNTARLOSSUBÈRBOLESIZQUIERDOYDERECHO RESPEC TIVAMENTE DELNODOENCUESTIØN $ADOELNODO4 4
):1
).&/
$%2
%NÏLSEDISTINGUENTRESCAMPOS ◗ ◗
◗
):1ESELCAMPODONDESEALMACENALADIRECCIØNDELSUBÈRBOLIZQUIERDODELNODO 4 ).&/REPRESENTAELCAMPODONDESEALMACENALAINFORMACIØNDELNODO.ORMAL MENTEENESTECAMPOYENELTRANSCURSODEESTELIBROSEALMACENARÈUNVALORSIMPLE NÞMEROOCARÈCTER3INEMBARGO ENLAPRÈCTICAESCOMÞNALMACENARENESTECAMPO CUALQUIERTIPODEDATO $%2ESELCAMPODONDESEALMACENALADIRECCIØNDELSUBÈRBOLDERECHODELNODO4 ,ADElNICIØNDEUNÈRBOLBINARIOENLENGUAJEALGORÓTMICOESCOMOSIGUE %.,!#%>./$/ ./$/ 2%')342/ ):1TIPO%.,!#% ).&/TIPODEDATO $%2TIPO%.,!#% [&INDELADElNICIØN]
196 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 .OTA%SIMPORTANTEOBSERVARQUESEUTILIZAELSÓMBOLO>PARAREPRESENTARELCON CEPTODEDATOTIPOPUNTERO
%JEMPLO
#ONSIDEREELÈRBOLBINARIODELAlGURAA QUEREPRESENTALAEXPRESIØNALGEBRAICA ! " #$ >3UREPRESENTACIØNENMEMORIAESCOMOLAQUESEMUESTRAENLA lGURAB .OTEELLECTORQUEENLAlGURABSEUTILIZAELTÏRMINO.),PARAHACERREFERENCIA ALÈRBOLVACÓO
&)'52! 2EPRESENTACIØNDEUNÉRBOLBINARIOENMEMORIAA RBOLBINARIOB 3UREPRESENTACIØN ENMEMORIA
#OMOTODASLASESTRUCTURASDEDATOS LOSÈRBOLESTIENENASOCIADASCIERTASOPERACIO NES!CONTINUACIØNSEPRESENTANLOSALGORITMOSDEALGUNASDEESTASOPERACIONESYMÈS ADELANTE CUANDOSEESTUDIENOTROSTIPOSDEÈRBOLES SEEXPLICARÈNOTRAS
/PERACIONESENÉRBOLESBINARIOS 5NADELASOPERACIONESBÈSICASDEUNÈRBOLBINARIOESLACREACIØNDELMISMOENMEMO RIA5NALGORITMOMUYSIMPLEPARAFORMARUNÈRBOL PORMEDIODELACREACIØNDINÈMICA DENODOSYLAASIGNACIØNAÏSTOSDEINFORMACIØN ESELQUESEMUESTRAACONTINUACIØN
Ç3#0-&4#*/"3*04
197
!LGORITMO #REA?ÈRBOL #REA?ÈRBOL!0./$/ [%LALGORITMOCREAUNÈRBOLBINARIOENMEMORIA!0./$/ESUNAVARIABLEDETIPO%.,!#% PUNTEROAUNNODO,APRIMERAVEZ!0./$/SECREAENELPROGRAMAPRINCIPAL] [).&/ ):1Y$%2SONCAMPOSDELREGISTRO./$/).&/ESDETIPOCARÈCTER):1Y$%2 SONDETIPOPUNTERO,ASVARIABLES2%30Y/42/SONDETIPOCARÈCTERYDETIPO%.,!#% RESPECTIVAMENTE] ,EER!0./$/>).&/[,EELAINFORMACIØNYSEGUARDAENELNODO] %SCRIBIRhz%XISTENODOPORIZQUIERDA3Ó n.O v ,EER2%30 3I2%30h3Óv ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER!0./$/>):1←/42/ 2EGRESARA#REA?ÈRBOLCON!0./$/>):1[,LAMADARECURSIVA] SINO (ACER!0./$/>):1←.), [&INDELCONDICIONALDELPASO] %SCRIBIRhz%XISTENODOPORDERECHA3Ó n.O v ,EER2%30 3I2%30h3Óv ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER!0./$/>$%2←/42/ 2EGRESARA#REA?ÈRBOLCON!0./$/>$%2[,LAMADARECURSIVA] SINO (ACER!0./$/>$%2←.), [&INDELCONDICIONALDELPASO]
5NAVEZQUESECREAELÈRBOLBINARIO SEPUEDENREALIZAROTRAS OPERACIONESSOBRE SUSELEMENTOSRECORRERTODOSLOSNODOS INSERTARUNNUEVONODO ELIMINARALGUNODELOS EXISTENTESOBUSCARUNVALORDETERMINADO 5NADELASOPERACIONESMÈSIMPORTANTESQUESEREALIZAENUNÈRBOLBINARIOESELRECO RRIDODELOSMISMOS2ECORRERSIGNIlCAVISITARLOSNODOSDELÈRBOLENFORMAORDENADA DE TALMANERAQUETODOSLOSNODOSDELMISMOSEANVISITADOSUNASOLAVEZ%XISTENTRESFOR MASDIFERENTESDEEFECTUARELRECORRIDOYTODASELLASDENATURALEZARECURSIVAÏSTASSON A 2ECORRIDOENPREORDEN ◗ 6ISITARLARAÓZ ◗ 2ECORRERELSUBÈRBOLIZQUIERDO ◗ 2ECORRERELSUBÈRBOLDERECHO B 2ECORRIDOENINORDEN ◗ 2ECORRERELSUBÈRBOLIZQUIERDO
198 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 ◗ 6ISITARLARAÓZ ◗ 2ECORRERELSUBÈRBOLDERECHO C 2ECORRIDOENPOSORDEN ◗ 2ECORRERELSUBÈRBOLIZQUIERDO ◗ 2ECORRERELSUBÈRBOLDERECHO ◗ 6ISITARLARAÓZ %NLAlGURASEMUESTRANTRESÈRBOLESBINARIOSCONELRESULTADOQUESEOBTIENE ALEFECTUARLOSDIFERENTESTIPOSDERECORRIDO%NESTEEJEMPLO LAVISITADELNODOIMPLICØ LAIMPRESIØNDESUCONTENIDO .OTEQUEENUNÈRBOLBINARIOQUEREPRESENTAUNAEXPRESIØNALGEBRAICA POREJEM PLO ELÈRBOLDELAlGURAC LAIMPRESIØNDELAINFORMACIØNDESUSNODOS USANDOEL RECORRIDOPREORDEN PRODUCELANOTACIØNPOLACAPRElJA%NELCASODELRECORRIDOINORDEN SEOBTIENELANOTACIØNCONVENCIONALY PORÞLTIMO ELRECORRIDOPOSORDENPRODUCELANO TACIØNPOLACAPOSlJA!UNQUE CABEACLARAR SINLOSPARÏNTESISRESPECTIVOSQUEINDICANLA PRECEDENCIADELOSDISTINTOSOPERADORES
&)'52! RBOLESBINARIOSYSUS RECORRIDOS
Ç3#0-&4#*/"3*04
199
&)'52! CONTINUACIØN
3EANALIZANACONTINUACIØNLOSALGORITMOSQUEEFECTÞANLOSDIFERENTESTIPOSDERECO RRIDOSENUNÈRBOLBINARIO !LGORITMO 0REORDEN
0REORDEN!0./$/ [%STEALGORITMOREALIZAELRECORRIDOPREORDENDEUNÈRBOLBINARIO!0./$/ESUNDATODETIPO %.,!#%PUNTEROAUNNODO] [).&/ ):1Y$%2SONCAMPOSDELREGISTRONODO).&/ESUNAVARIABLEDETIPOCARÈCTER):1 Y$%2SONVARIABLESDETIPOPUNTERO] 3I!0./$/≠.), ENTONCES 6ISITAREL!0./$/[%SCRIBIR./$/>).&/] 2EGRESARA0REORDENCON!0./$/>):1 [,LAMADARECURSIVAA0REORDENCONLARAMAIZQUIERDADELNODOENCUESTIØN] 2EGRESARA0REORDENCON!0./$/>$%2 [,LAMADARECURSIVAA0REORDENCONLARAMADERECHADELNODOENCUESTIØN] [&INDELCONDICIONALDELPASO]
.OTA#ABEDESTACARQUEELTÏRMINOVISITARSEPUEDEREEMPLAZARPORCUALQUIEROTRA INSTRUCCIØN VÈLIDA POR EJEMPLO ESCRIBIR SUMAR O COMPARAR LA INFORMACIØN DEL NODO .OTEQUEESTAACLARACIØNSEAPLICATAMBIÏNPARALOSOTROSTIPOSDERECORRIDOS
%JEMPLO
%NLASIGUIENTETABLASEPRESENTANLOSPASOSNECESARIOSPARAOBTENERELRECORRIDOPREOR DENDELÈRBOLBINARIODELAlGURAA UTILIZANDOELALGORITMO %NLACOLUMNA0ILARAMAPENDIENTEDEVISITAR LALLAMADA. INDICAELORDENEN ELCUALLASRAMASPENDIENTESDEVISITARSEINTRODUJERONENLAPILA%NLACOLUMNA.ODO ACTUALLALLAMADA. SE×ALALARAMAQUESEEXTRAJODELAPILA/BSERVEELLECTORQUEEL ORDENENQUELOSNODOSSEVISITARONES ! " $ % # % '
200 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 4!",! 2ECORRIDOPREORDEN
0ASO
.ODO ACTUAL
.ODO VISITADO
2AMAA VISITAR
0ILARAMAPENDIENTE DEVISITAR
!
!
!>):1→"
!>$%2→#
"
"
">):1→$
">$%2→%
$
$
$>):1→.),
$>$%2→.),
.),
.),
%
%
%>):1→.),
%>$%2→.),
.),
.),
#
#
#>):1→&
#>$%2→'
&
&
&>):1→.),
&>$%2→.),
.),
.),
'
'
'>):1→.),
'>$%2→.),
.),
.),
!LGORITMO )NORDEN
)NORDEN!0./$/ [%STEALGORITMOREALIZAELRECORRIDOINORDENDEUNÈRBOLBINARIO!0./$/ESUNREGISTRODE TIPO%.,!#%PUNTEROAUNNODO] [).&/ ):1Y$%2SONCAMPOSDELREGISTRONODO).&/ESUNAVARIABLEDETIPOCARÈCTER):1 Y$%2SONVARIABLESDETIPOPUNTERO] 3I!0./$/≠.), ENTONCES 2EGRESARA)NORDENCON!0./$/>):1 [,LAMADARECURSIVAA)NORDENCONLARAMAIZQUIERDADELNODOENCUESTIØN] 6ISITAREL!0./$/[%SCRIBIR!0./$/>).&/] 2EGRESARA)NORDENCON!0./$/>$%2 [,LAMADARECURSIVAA)NORDENCONLARAMADERECHADELNODOENCUESTIØN] [&INDELCONDICIONALDELPASO]
%JEMPLO
%N LA TABLA SE MUESTRA LA GENERACIØN DEL RECORRIDO INORDEN DEL ÈRBOL DE LA lGURA A USANDOELALGORITMO
Ç3#0-&4#*/"3*04 4!",! 2ECORRIDOINORDEN
0ASO
.ODO ACTUAL
2AMAAVISITAR
.ODO VISITADO
0ILARAMA PENDIENTEDEVISITAR
!
!>):1→"
!>$%2→# !
"
">):1→$
">$%2→% "
$
$>):1→.),
$>$%2→.), $
.),
$
.),
"
%
%>):1→.), %
.),
%
.),
!
#
#>):1→&
#>$%2→' #
&
&>):1→.),
&>$%2→.), &
.),
&
.),
#
'
'>$%2→.), '
.),
.),
%>):1→.),
'>):1→.),
201
'
%NLACOLUMNA0ILARAMAPENDIENTEDEVISITAR LALLAMADA. INDICAELORDENENEL CUALLASRAMASPENDIENTESDEVISITARFUERONINTRODUCIDASALAPILA%NLASCOLUMNAS.ODO ACTUALY.ODOVISITADO LASLLAMADAS. INDICANLASINSTRUCCIONESQUESEEXTRAJERONDE LAPILA.OTEQUEESTAOBSERVACIØNTAMBIÏNESVÈLIDAPARALATABLA %LORDENENQUESEVISITARONLOSNODOSES $ " % ! & # ' !LGORITMO 0OSORDEN 0OSORDEN!0./$/ [%STEALGORITMOREALIZAELRECORRIDOPOSORDENDEUNÈRBOLBINARIO!0./$/ESUNDATODETIPO %.,!#%PUNTEROAUNNODO] [).&/ ):1Y$%2SONCAMPOSDELREGISTRONODO).&/ESUNAVARIABLEDETIPOCARÈCTER):1 Y$%2SONVARIABLESDETIPOPUNTERO]
202 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 3I!0./$/≠.), ENTONCES 2EGRESARA0OSORDENCON!0./$/>):1 [,LAMADARECURSIVAA0OSORDENCONLARAMAIZQUIERDADELNODOENCUESTIØN] 2EGRESARA0OSORDENCON!0./$/>$%2 [,LAMADARECURSIVAA0OSORDENCONLARAMADERECHADELNODOENCUESTIØN] 6ISITAREL!0./$/[%SCRIBIR!0./$/>).&/] [&INDELCONDICIONALDELPASO]
%JEMPLO
%NLATABLASEPRESENTANLOSPASOSNECESARIOSQUESESIGUIERONPARAEFECTUARELRECO RRIDOPOSORDENDELÈRBOLDELAlGURAA APLICANDOELALGORITMOANTERIOR
.ODO ACTUAL
4!",! 2ECORRIDOPOSORDEN
0ASO
!
2AMAAVISITAR !>):1→"
"
">):1→$
$
$>):1→.),
.),
.),
%
.),
.),
0ILARAMA PENDIENTEDEVISITAR
.ODO VISITADO
!
!>$%2→#
"
">$%2→%
$
$>$%2→.),
%
%>$%2→.),
#
$ %>):1→.),
%
"
#
#>):1→&
&
&>):1→.),
.),
.),
'
.),
.),
#>$%2→'
&
&>$%2→.),
'
'>$%2→.),
& '>):1→.),
'
#
!
Ç3#0-&4#*/"3*04
203
RBOLESBINARIOSDEBÞSQUEDA %NESTASECCIØNSEPRESENTAUNTIPOESPECIALDEÈRBOLESBINARIOS3UPRINCIPALCARACTE RÓSTICA ES QUE LA INFORMACIØN SE ALMACENA EN LOS NODOS CUIDANDO DE MANTENER CIERTO ORDEN &ORMALMENTE SE DElNE UN ÈRBOL BINARIO DE BÞSQUEDA DE LA SIGUIENTE MANERA 0ARATODONODO4DELÈRBOLSEDEBECUMPLIRQUETODOSLOSVALORESALMACENADOSEN ELSUBÈRBOLIZQUIERDODE4SEANMENORESOIGUALESALAINFORMACIØNGUARDADAENEL NODO4$EFORMASIMILAR TODOSLOSVALORESALMACENADOSENELSUBÈRBOLDERECHODE 4DEBENSERMAYORESOIGUALESALAINFORMACIØNGUARDADAENELNODO4,OSVALORES ALOSQUESEHACEREFERENCIAENLADElNICIØNRElERENALCONTENIDODELCAMPODEINFORMA CIØNDELNODO0OREJEMPLO SIENELÈRBOLSEALMACENAINFORMACIØNDELOSEMPLEADOSDE UNAEMPRESA LOSVALORESUTILIZADOSPARAGENERARELÈRBOLDEMANERAORDENADACORRESPON DERÈNALNÞMERODECADAEMPLEADOCAMPOCLAVE %LÈRBOLBINARIODEBÞSQUEDAESUNAESTRUCTURADEDATOSOBRELACUALSEPUEDENREA LIZARElCIENTEMENTELASOPERACIONESDEBÞSQUEDA INSERCIØNYELIMINACIØN#OMPARANDO ESTAESTRUCTURACONOTRAS SEPUEDENOBSERVARCIERTASVENTAJAS0OREJEMPLO ENUNARREGLO ESPOSIBLELOCALIZARDATOSElCIENTEMENTESIÏSTOSSEENCUENTRANORDENADOS PEROLASOPE RACIONESDEINSERCIØNYELIMINACIØNRESULTANCOSTOSAS PORQUEINVOLUCRANMOVIMIENTO DELOSELEMENTOSDENTRODELARREGLO%NLASLISTAS POROTRAPARTE DICHASOPERACIONESSE PUEDENLLEVARACABOCONFACILIDAD PEROLAOPERACIØNDEBÞSQUEDA ENESTECASO ESUNA OPERACIØNQUEDEMANDARECURSOS PUDIENDOINCLUSOREQUERIRRECORRERTODOSLOSELEMEN TOSDEELLAPARALLEGARAUNOENPARTICULAR
%JEMPLO
&)'52! RBOLBINARIODEBÞSQUEDA
,AlGURACONTIENEUNÈRBOLBINARIODEBÞSQUEDA /BSERVEELLECTORQUESIENDICHOÈRBOLSESUSTITUYENLOSVALORESPOR POR YPOR ELÈRBOLCONTINÞASIENDOUNÈRBOLBINARIODEBÞSQUEDA 0EROPOROTRAPARTE SIENDICHOÈRBOLSEREEMPLAZAELVALORPOR ENTONCESEL ÈRBOLDEJADESERUNÈRBOLBINARIODEBÞSQUEDA PUESTOQUEVIOLAELPRINCIPIOQUEDICE h4ODOSLOSNODOSDELSUBÈRBOLIZQUIERDODELNODO4DEBENALMACENARVALORESMENORESO IGUALESALNODO||ENESTECASONOESMENORA
204 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 4AMBIÏNESPOSIBLEOBSERVARQUESISEEFECTÞAUNRECORRIDOINORDENSOBREUNÈRBOL DEBÞSQUEDASEOBTENDRÈUNACLASIlCACIØNDELOSNODOSENFORMAASCENDENTE%LRECORRI DOINORDENDELÈRBOLDELAlGURAPRODUCEELSIGUIENTERESULTADO
"ÞSQUEDA ,AOPERACIØNDEBÞSQUEDAENUNÈRBOLBINARIODEBÞSQUEDAESMUCHOMÈSElCIENTE QUEENUNÈRBOLBINARIOGENERAL YAQUEALCOMPARARELVALORBUSCADOCONLAINFORMACIØN DELNODOVISITADO SINOESIGUAL SEDEBERÈCONTINUARSØLOPORALGUNODELOSDOSSUBÈRBO LES0OREJEMPLO SISECOMPARAELVALORBUSCADOCONELVALORDELNODOVISITADO LA BÞSQUEDASØLODEBECONTINUARPORELCAMINODELADERECHA%LCAMINODELAIZQUIERDASE DESECHA PORQUECONTIENENODOSCUYOSVALORESSERÈNMENORESOIGUALESA !LGORITMO "ÞSQUEDA?!"" "ÞSQUEDA?!""!0./$/ ).&/2 [%STEALGORITMOLOCALIZAELNODODELÈRBOLBINARIODEBÞSQUEDAQUECONTIENELAINFORMACIØN ).&/2 QUEESTAMOSBUSCANDO!0./$/ESUNPARÈMETRODETIPO%.,!#%LAPRIMERAVEZ APUNTAALARAÓZDELÈRBOL3EASUMEQUEELÈRBOLNOESVACÓO] 3I).&/2!0./$/>).&/ ENTONCES 3I!0./$/>):1.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv SINO 2EGRESARA"ÞSQUEDA?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA] [&INDELCONDICIONALDELPASO] SINO 3I).&/2!0./$/>).&/ ENTONCES 3I!0./$/>$%2.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv SINO 2EGRESARA"ÞSQUEDA?!""CON!0./$/>$%2E).&/2 [,LAMADARECURSIVA] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNESTÈENELÈRBOLv [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
Ç3#0-&4#*/"3*04
205
!NALICEELALGORITMODEBÞSQUEDACONELSIGUIENTEEJEMPLO
%JEMPLO
3UPONGAMOSQUESEDESEALOCALIZARLASCLAVESYENELÈRBOLBINARIODEBÞSQUEDA DELAlGURA%NLASTABLASYSEPRESENTANLOSPASOS0 NÞMERODECOM PARACIONES # Y PREGUNTAS Y ACCIONES NECESARIAS PARA LOCALIZAR LAS CLAVES Y RESPECTIVAMENTE
4!",!
0
#
,OCALIZACIØNDELACLAVE ).&/2←
0REGUNTASYACCIONES z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),
.O%NTONCESSEREGRESAA"ÞSQUEDACONELSUBÈRBOLIZQUIERDODE E).&/2
z%S
.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),
z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),
.O%NTONCESSEREGRESAA"ÞSQUEDACONELSUBÈRBOLDERECHODE E).&/2
.O%NTONCESSEREGRESAA"ÞSQUEDACONELSUBÈRBOLIZQUIERDODE E).&/2
z%S
.Oz%S .O%NTONCES²8)4/
4!",! ,OCALIZACIØNDELACLAVE ).&/2←
0
#
0REGUNTASYACCIONES
z%S
.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),
z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),
.O %NTONCES SE REGRESA A "ÞSQUEDA CON EL SUBÈRBOL DERECHO DE E).&/2
.O %NTONCES SE REGRESA A "ÞSQUEDA CON EL SUBÈRBOL IZQUIERDO DE E).&/2
z%S
3Óz%SELSUBÈRBOLIZQUIERDODE.), .), 3Ó%NTONCES&2!#!3/
206 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 /TRAFORMADEESCRIBIRELALGORITMODEBÞSQUEDAPRESENTADOANTERIORMENTEESLAQUE SEMUESTRAACONTINUACIØN%NESTAVARIANTESECONTEMPLAELCASODEQUEELÈRBOLESTÏ VACÓO !LGORITMO "ÞSQUEDA?V?!"" "ÞSQUEDA?V?!""!0./$/ ).&/2 [%LALGORITMOLOCALIZAELNODODELÈRBOLBINARIODEBÞSQUEDAQUECONTIENECIERTAINFORMACIØN ).&/2 0ARÈMETRO DE TIPO ENTERO !0./$/ ES UNA VARIABLE DE TIPO %.,!#% ,A PRIMERAVEZ APUNTAALARAÓZDELÈRBOL] 3I!0./$/≠.), ENTONCES 3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA"ÞSQUEDA?V?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA] SINO 3I).&/2./$/>).&/ ENTONCES 2EGRESARA"ÞSQUEDA?V?!""CON!0./$/>$%2E).&/2 [,LAMADARECURSIVA] SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO]
)NSERCIØNENUNÉRBOLBINARIODEBÞSQUEDA ,AINSERCIØNENUNÈRBOLBINARIODEBÞSQUEDAESUNAOPERACIØNQUESEPUEDEREALIZAR ElCIENTEMENTEENESTETIPODEESTRUCTURADEDATOS,AESTRUCTURACRECECONFORMESEIN SERTANELEMENTOSALÈRBOL,OSPASOSQUESEDEBENREALIZARPARAAGREGARUNNUEVONODO AUNÈRBOLBINARIODEBÞSQUEDASONLOSSIGUIENTES #OMPARARLACLAVEAINSERTARCONLARAÓZDELÈRBOL3IESMAYOR SESIGUECONELSUB ÈRBOLDERECHO3IESMENOR SECONTINÞACONELSUBÈRBOLIZQUIERDO 2EPETIRSUCESIVAMENTEELPASOHASTAQUESECUMPLAALGUNADELASSIGUIENTESCON DICIONES %LSUBÈRBOLDERECHO OELSUBÈRBOLIZQUIERDO ESIGUALAVACÓO ENCUYOCASOSE PROCEDERÈAINSERTARELELEMENTOENELLUGARQUELECORRESPONDE
Ç3#0-&4#*/"3*04
207
,ACLAVEQUESEQUIEREINSERTARESTÈENELNODOANALIZADO PORLOTANTONOSE LLEVAACABOLAINSERCIØN%STECASOESVÈLIDOSØLOCUANDOLAAPLICACIØNEXIGE QUENOSEREPITANELEMENTOS
%JEMPLO
3UPONGAMOSQUESEQUIEREINSERTARLASSIGUIENTESCLAVESENUNÈRBOLBINARIODEBÞSQUEDA QUESEENCUENTREVACÓO ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLAlGURA
&)'52! )NSERCIØNENUNÉRBOLBINARIODEBÞSQUEDA .OTA,ASLÓNEASENCOLORINDICANELELEMENTOQUEACABADEINSERTARSE
208 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN
%LALGORITMODEINSERCIØNESELSIGUIENTE !LGORITMO )NSERCIØN?!"" )NSERCIØN?!""!0./$/ ).&/2 [%LALGORITMOREALIZALAINSERCIØNDEUNNODOENUNÈRBOLBINARIODEBÞSQUEDA!0./$/ES UNAVARIABLEDETIPOPUNTEROYLAPRIMERAVEZDEBESERDISTINTADEVACÓO).&/2ESUNPARÈMETRO DETIPOENTEROQUECONTIENELAINFORMACIØNQUESEQUIEREINSERTARENUNNUEVONODO] [3EUTILIZAADEMÈS COMOAUXILIAR LAVARIABLE/42/DETIPOPUNTERO] 3I).&/2!0./$/>).&/ ENTONCES 3I!0./$/>):1.), ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER /42/>):1 ← .), /42/>$%2 ← .), /42/>).&/ ← ).&/2 Y!0./$/>):1←/42/ SINO 2EGRESARA)NSERCIØN?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA] [&INDELCONDICIONALDELPASO] SINO 3I).&/2!0./$/>).&/ ENTONCES 3I!0./$/>$%2.), ENTONCES #REAR/42/ [3ECREAUNNUEVONODO] (ACER/42/>):1←.), /42/>$%2←.), /42/>).&/←).&/2Y./$/>$%2←/42/
Ç3#0-&4#*/"3*04
209
SINO 2EGRESARA)NSERCIØN?!""CON./$/>$%2E).&/2 [,LAMADARECURSIVA] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh%LNODOYASEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%JEMPLO
4!",!
3UPONGAMOSQUESEDESEAINSERTARLASCLAVESYENELÈRBOLBINARIODEBÞSQUEDA DELAlGURA%NLASTABLASYSEPRESENTANLOSPASOS0 NÞMERODECOMPARA CIONES# YPREGUNTASYACCIONESNECESARIASPARAINSERTARESTASCLAVES 0
)NSERCIØNDELACLAVE ).&/2←
#
z%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),
0REGUNTASYACCIONES
.O%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLIZQUIERDODE E)NFOR
z%S
.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),
0
)NSERCIØNDELACLAVE ).&/2←
z%S 3Óz%SELSUBÈRBOLIZQUIERDODE.), .),
4!",!
.O%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLDERECHODE E)NFOR
3Ó%NTONCESCREAROTRONODO REALIZARLOSENLACESYCARGARLAINFORMACIØN
#
0REGUNTASYACCIONES
z%S
.Oz%S 3Óz%SELSUBÈRBOLDERECHODE .),
.Oz%S 3Óz%SELSUBÈRBOLIZQUIERDODE .),
3Ó%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLDERECHODE E)NFOR
.O%NTONCESREGRESARA)NSERCIØNCONELSUBÈRBOLIZQUIERDODE E)NFOR
z%S
.Oz%S 3Óz%SELSUBÈRBOLDERECHODE.), .),
.O%NTONCESCREAROTRONODO REALIZARLOSENLACESYCARGARLAINFORMACIØN
210 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %NLAlGURASEPRESENTAELÈRBOLBINARIODEBÞSQUEDALUEGODEREALIZADAESTA OPERACIØN &)'52! RBOLBINARIODEBÞSQUEDA )NSERCIØNDELASCLAVES Y
/TRAFORMADEEXPRESARELALGORITMODEINSERCIØNESLASIGUIENTE !LGORITMO )NSERCIØN?V?!"" )NSERCIØN?V?!""!0./$/ ).&/2 [%LALGORITMOREALIZALAINSERCIØNDEUNELEMENTOENUNÈRBOLBINARIODEBÞSQUEDA!0./$/ ES UNA VARIABLE DE TIPO %.,!#% LA PRIMERA VEZ APUNTA A LA RAÓZ DEL ÈRBOL ).&/2 ES UN PARÈMETRODETIPOENTEROQUECONTIENELAINFORMACIØNDELELEMENTOQUESEQUIEREINSERTAR%L ALGORITMOCONSIDERAELCASODEUNÈRBOLVACÓO] 3I!0./$/≠.), ENTONCES 3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA)NSERCIØN?V?!""CON!0./$/>):1E).&/2 [,LAMADARECURSIVA] SINO 3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA)NSERCIØN?V?!""CON!0./$/>$%2E).&/2 [,LAMADARECURSIVA] SINO %SCRIBIRh,AINFORMACIØNYASEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] SINO #REAR/42/ [3ECREAUNNUEVONODO] (ACER/42/>):1←.), /42/>$%2←.), /42/>).&/← ).&/2 Y!0./$/←/42/ [&INDELCONDICIONALDELPASO]
Ç3#0-&4#*/"3*04
211
%LIMINACIØNENUNÉRBOLBINARIODEBÞSQUEDA ,AOPERACIØNDEELIMINACIØNENUNÈRBOLBINARIODEBÞSQUEDAESUNPOCOMÈSCOM PLICADAQUELADEINSERCIØN²STACONSISTEENELIMINARUNNODOSINVIOLARLOSPRINCIPIOS QUEDElNENUNÈRBOLBINARIODEBÞSQUEDA3EDEBENDISTINGUIRLOSSIGUIENTESCASOS 3IELELEMENTOAELIMINARESTERMINALUHOJA SIMPLEMENTESESUPRIMEREDElNIENDO ELPUNTERODESUPREDECESOR 3IELELEMENTOAELIMINARTIENEUNSOLODESCENDIENTE ENTONCESTIENEQUESUSTITUIRSE PORESEDESCENDIENTE 3IELELEMENTOAELIMINARTIENELOSDOSDESCENDIENTES ENTONCESSETIENEQUESUSTITUIR PORELNODOQUESEENCUENTRAMÈSALAIZQUIERDAENELSUBÈRBOLDERECHOOPORELNODO QUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOLIZQUIERDO #ABEDESTACARQUEANTESDEELIMINARUNNODO SEDEBELOCALIZARÏSTEENELÈRBOL0ARA ESTOSEUTILIZAELALGORITMODEBÞSQUEDAPRESENTADOANTERIORMENTE
%JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLASSIGUIENTESCLAVESDELÈRBOLBINARIODEBÞSQUEDA DELAlGURA ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLAlGURA
&)'52! %LIMINACIØNENUNÉRBOL BINARIODEBÞSQUEDAA Y F CORRESPONDENALPRIMER CASOB YE CORRESPONDEN ALSEGUNDOCASOC YD CO RRESPONDENALTERCERCASO G %STADOlNALDELÉRBOL .OTA,ASmECHASENCOLOR INDICANELELEMENTOQUEQUIERE ELIMINARSE
212 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN
!CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE
Ç3#0-&4#*/"3*04
213
!LGORITMO %LIMINACIØN?!"" %LIMINACIØN?!""!0./$/ ).&/2 [%LALGORITMOREALIZALAELIMINACIØNDEUNELEMENTOENUNÈRBOLBINARIODEBÞSQUEDA!0./$/ ESUNAVARIABLE PORREFERENCIA DETIPO%.,!#%).&/2ESUNPARÈMETRODETIPOENTEROQUE CONTIENELAINFORMACIØNDELNODOQUESEDESEAELIMINAR] [!58 !58)Y/42/SONVARIABLESAUXILIARESDETIPOPUNTERO"/ESUNAVARIABLEDETIPO BOOLEANO] 3I!0./$/≠.), ENTONCES 3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA%LIMINACIØN?!""CON!0./$/>):1E).&/2 SINO 3I).&/2!0./$/>).&/ ENTONCES 2EGRESARA%LIMINACIØN?!""CON!0./$/>$%2E).&/2 SINO (ACER/42/←./$/ 3I/42/>$%2.), ENTONCES (ACER!0./$/←/42/>):1 SINO 3I/42/>):1.), ENTONCES (ACER!0./$/←/42/>$%2 SINO (ACER!58←!0./$/>):1Y"/←&!,3/ ! -IENTRAS!58>$%2≠.), 2EPETIR (ACER!58←!58 !58←!58>$%2 Y"/←6%2$!$%2/ " [&INDELCICLODELPASO!] (ACER!0./$/>).&/←!58>).&/Y /42/←!58 # 3I"/6%2$!$%2/ ENTONCES (ACER!58>$%2←!58>):1 SINO (ACER!0./$/>):1←!58>):1 $ [&INDELCONDICIONALDELPASO#] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] 1UITAR/42/ [3ELIBERAELESPACIODEMEMORIA] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNAELIMINARNOSEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO]
214 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO
$ADOELÈRBOLDELAlGURAA VERIlQUESIQUEDAIGUALALÈRBOLDELAlGURABLUEGO DEELIMINAR APLICANDOELALGORITMO LASCLAVESQUESEMUESTRANACONTINUACIØN
&)'52! %LIMINACIØNENUNÉRBOLBINARIODEBÞSQUEDAA !NTESDEELIMINARLASCLAVESB $ESPUÏS DEELIMINARLASCLAVES .OTA%NELEJEMPLO COMOELNODOAELIMINARTIENEDOSDESCENDIENTES SESUSTITUYEPORELNODOQUE SEENCUENTRAMÉSALADERECHAENELSUBÉRBOLIZQUIERDO
2"/,%3"!,!.#%!$/3 #UANDO SE ESTUDIARON LOS ÈRBOLES BINARIOS DE BÞSQUEDA SE MENCIONØ QUE ES UNA ES TRUCTURASOBRELACUALSEPUEDENREALIZARElCIENTEMENTELASOPERACIONESDEBÞSQUEDA INSERCIØNYELIMINACIØN3INEMBARGO SIELÈRBOLCRECEODECRECEDESCONTROLADAMENTE EL RENDIMIENTOPUEDEDISMINUIRCONSIDERABLEMENTE%LCASOMÈSDESFAVORABLESEPRODUCE CUANDOSEINSERTAUNCONJUNTODECLAVESORDENADASENFORMAASCENDENTEODESCENDENTE COMOSEMUESTRAENLAlGURA &)'52! RBOLESBINARIOSDEBÞS QUEDACONCRECIMIENTO DESCONTROLADO
Ç3#0-&4#"-"/$&"%04
215
%SDENOTARQUEELNÞMEROPROMEDIODECOMPARACIONESQUESEDEBENREALIZARPARA LOCALIZARUNADETERMINADACLAVEENUNÈRBOLBINARIODEBÞSQUEDACONCRECIMIENTODES CONTROLADOES. CIFRAQUEMUESTRAUNRENDIMIENTOMUYPOBREENLAESTRUCTURA #ON EL OBJETO DE MANTENER LA ElCIENCIA EN LA OPERACIØN DE BÞSQUEDA SURGEN LOS ÈRBOLESBALANCEADOS,APRINCIPALCARACTERÓSTICADEÏSTOSESLADEREALIZARREACOMODOSO BALANCEOS DESPUÏSDEINSERCIONESOELIMINACIONESDEELEMENTOS%STOSÈRBOLESTAMBIÏN RECIBENELNOMBREDE!6,ENHONORASUSINVENTORES DOSMATEMÈTICOSRUSOS '- !DELSON 6ELSKIIY%-,ANDIS &ORMALMENTESEDElNEUNÈRBOLBALANCEADOCOMOUNÈRBOLBINARIODEBÞSQUE DA ENELCUALSEDEBECUMPLIRLASIGUIENTECONDICIØN0ARATODONODO4DELÈRBOL LA ALTURA DE LOS SUBÈRBOLES IZQUIERDO Y DERECHO NO DEBEN DIFERIR EN MÈS DE UNA UNIDAD \(2)n(2$\≤ DONDE(2) ESLAALTURADELARAMAOSUBÈRBOLIZQUIERDOY(2$ESLAALTURADELARAMAO SUBÈRBOLDERECHO %NLAlGURASEMUESTRANDOSEJEMPLOSDEÈRBOLESBALANCEADOS
&)'52! $OSÉRBOLESBALANCEADOS A #ONALTURAB #ON ALTURA
/BSERVEELLECTORQUESISEINSERTANLASCLAVES OENELÈRBOLBALANCEADODE LAlGURAA ÏSTEPIERDEELEQUILIBRIO3INEMBARGO SISEINSERTANLASCLAVESO ENELMISMOÈRBOL ÏSTEMANTIENEELEQUILIBRIOMÈSAÞN LOMEJORA !HORABIEN CONRESPECTOALAELIMINACIØN SIADICHOÈRBOLSELEQUITANLASCLAVES OELÈRBOLCONTINÞASIENDOBALANCEADOINCLUSOPODRÓANQUITÈRSELELASTRESCLAVESY ELÈRBOLNOPERDERÓAELEQUILIBRIO3INEMBARGO SISEELIMINALACLAVEELÈRBOLPIERDE ELEQUILIBRIOYESNECESARIOREESTRUCTURARLO ,OSÈRBOLESBALANCEADOSSEPARECENMUCHO ENSUMECANISMODEFORMACIØN ALOS NÞMEROS&IBONACCI %LÈRBOL DEALTURA ES VACÓO EL ÈRBOLDE ALTURA TIENE UNÞNICO NODOY ENGENERAL ELNÞMERODENODOSDELÈRBOLCONALTURAHSECALCULAAPLICANDO LASIGUIENTEFØRMULARECURSIVA
216 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
▼ &ØRMULA
+H+Hn+Hn
DONDE+INDICAELNÞMERODENODOSDELÈRBOLYHLAALTURA 0OROTRAPARTE ALGUNOSESTUDIOSDEMUESTRANQUELAALTURADEUNÈRBOLBALANCEADODE NNODOSNUNCAEXCEDERÈDE LOGN
%JEMPLO
3UPONGAMOS QUE SE DESEA CALCULAR EL NÞMERO DE NODOS DE UN ÈRBOL BALANCEADO CON ALTURA,AFORMAENQUESEEFECTÞAELCÈLCULOESLASIGUIENTE
+ +
+ + +
+ + +
+ + + +
+ + + +
+
+
)NSERCIØNENÉRBOLESBALANCEADOS !LINSERTARUNELEMENTOENUNÈRBOLBALANCEADOSEDEBENDISTINGUIRLOSSIGUIENTESCA SOS ,ASRAMASIZQUIERDA2) YDERECHA2$ DELÈRBOLTIENENLAMISMAALTURA(2)(2$ PORLOTANTO 3ISEINSERTAUNELEMENTOEN2) ENTONCES(2)SERÈMAYORENUNAUNIDADA(2$ 3ISEINSERTAUNELEMENTOEN2$ ENTONCES(2$SERÈMAYORENUNAUNIDADA(2) /BSERVEQUEENCUALQUIERADELOSDOSCASOSMENCIONADOSY NOSEVIOLA ELCRITERIODEEQUILIBRIODELÈRBOL ,ASRAMASIZQUIERDA2) YDERECHA2$ DELÈRBOLTIENENALTURADIFERENTE(2)≠ (2$ 3UPONGAMOSQUE(2)(2$ 3ISEINSERTAUNELEMENTOEN2) ENTONCES(2)SERÈIGUALA(2$[,ASRA MASTIENENLAMISMAALTURA PORLOQUESEMEJORAELEQUILIBRIODELÈRBOL] 3ISEINSERTAUNELEMENTOEN2$ ENTONCESSEROMPEELCRITERIODEEQUILI BRIODELÈRBOLYESNECESARIOREESTRUCTURARLO 3UPONGAMOSQUE(2)(2$ 3ISEINSERTAUNELEMENTOEN2) ENTONCESSEROMPEELCRITERIODEEQUILI BRIODELÈRBOLYESNECESARIOREESTRUCTURARLO 3ISEINSERTAUNELEMENTOEN2$ ENTONCES(2$SERÈIGUALA(2)[,ASRA MASTIENENLAMISMAALTURA PORLOQUESEMEJORAELEQUILIBRIODELÈRBOL]
Ç3#0-&4#"-"/$&"%04
217
%NLAlGURASEMUESTRANDIAGRAMASDELOSDISTINTOSCASOSQUESEPRESENTANEN LAOPERACIØNDEINSERCIØNENÈRBOLESBALANCEADOS
&)'52! $IFERENTESCASOSDEINSER CIØNENÉRBOLESBALANCEA DOSA #ASOB #ASO C #ASOD #ASO E #ASOF #ASO G #ASOH #ASO I #ASO .OTA,ALÓNEADISCONTINUA MARCAELEQUILIBRIOPERFECTO DELÉRBOL
!HORABIEN PARAPODERDETERMINARSIUNÈRBOLESTÈBALANCEADOONO SEDEBEMANE JARINFORMACIØNRELATIVAALEQUILIBRIODECADANODODELÈRBOL3URGEASÓELCONCEPTODE FACTORDEEQUILIBRIODEUNNODO&% QUESEDElNECOMOLAALTURADELSUBÈRBOLDERECHO MENOSLAALTURADELSUBÈRBOLIZQUIERDO
&%(2$n(2)
▼ &ØRMULA
218 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 ,OSVALORESQUEPUEDETOMAR&%SONn 3I&%LLEGARAATOMARLOSVALORESDE nO ENTONCESDEBERÓAREESTRUCTURARSEELÈRBOL%NLAlGURASEPRESENTAUNÈRBOL BALANCEADOCONELCORRESPONDIENTE&%PARACADANODODELÈRBOL
&)'52! RBOLBALANCEADOCONEL CORRESPONDIENTE&%
/BSERVEELLECTORQUEENLAlGURAEL&%DELNODOQUEALMACENAELESn PUESTOQUELAALTURADELSUBÈRBOLDERECHOESIGUALAYLAALTURADELSUBÈRBOLIZQUIERDO IGUALA &%nn %L&%DESECALCULACOMO &%n !CONTINUACIØNSEPRESENTALADElNICIØNDEUNÈRBOLBALANCEADOENLENGUAJEALGO RÓTMICO %.,!#%>./$/ ./$/ 2%')342/ ):1 $%2TIPO%.,!#% ).&/TIPODEDATO &%n [&INDELADElNICIØN]
2EESTRUCTURACIØNDELÉRBOLBALANCEADO %L PROCESO DE INSERCIØN EN UN ÈRBOL BALANCEADO ES SENCILLO SIN EMBARGO REQUIERE DE OPERACIONESAUXILIARESQUECOMPLICANPARCIALMENTEELPROCESO0RIMEROSEDEBESEGUIR ELCAMINODEBÞSQUEDADELÈRBOL HASTALOCALIZARELLUGARDONDEHAYQUEINSERTARELELE MENTO,UEGOSECALCULASU&% QUEOBVIAMENTESERÈ YREGRESAMOSPORELCAMINODE BÞSQUEDACALCULANDOEL&%DELOSDISTINTOSNODOSVISITADOS3IENALGUNODELOSNODOSSE VIOLAELCRITERIODEEQUILIBRIOENTONCESSEDEBEREESTRUCTURARELÈRBOL%LPROCESOTERMINA
Ç3#0-&4#"-"/$&"%04
219
ALLLEGARALARAÓZDELÈRBOL OCUANDOSEREALIZALAREESTRUCTURACIØNDELMISMO ENCUYO CASONOESNECESARIODETERMINAREL&%DELOSNODOSRESTANTES 2EESTRUCTURARELÈRBOLSIGNIlCAROTARLOSNODOSDELMISMOPARALLEVARLOAUNESTADO DEEQUILIBRIO,AROTACIØNPUEDESERSIMPLEOCOMPUESTA%LPRIMERCASOINVOLUCRADOS NODOSYELSEGUNDOCASOAFECTAATRES3ILAROTACIØNESSIMPLESEPUEDEREALIZARPORLAS RAMASDERECHAS$$ OPORLASRAMASIZQUIERDAS)) 3IPOROTRAPARTELAROTACIØNES COMPUESTA SE PUEDE REALIZAR POR LAS RAMAS DERECHA E IZQUIERDA $) O POR LAS RAMAS IZQUIERDAYDERECHA)$
%JEMPLO
&)'52! 2OTACIONESENÉRBOLES BALANCEADOSA 2OTACIØN)) B 2OTACIØN$$C 2OTACIØN $)D 2OTACIØN)$
%NLAlGURASEPUEDENOBSERVARGRÈlCAMENTELOSDIFERENTESTIPOSDEROTACIONES%N LAlGURAASEPRESENTALAROTACIØN)) ENLAlGURABLAROTACIØN$$ ENLAlGURA CLAROTACIØN$)YENLAlGURADLAROTACIØN)$ ,ALÓNEACONTINUA?????? MARCAELESTADODELOSNODOSDELÈRBOLANTESDEREALIZAR LAINSERCIØN,ALÓNEADISCONTINUA???? INDICAELNUEVOELEMENTOINSERTADO,ALÓNEA CONPUNTOS MARCAELCAMINODEREGRESOHASTAQUESEDETECTAELDESEQUILIBRIODEL ÈRBOL,ALÓNEAGRUESA?????? INDICAELMOVIMIENTODELOSNODOSENLAROTACIØN
220 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN
%JEMPLO
3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNÈRBOLBALANCEADOQUESE ENCUENTRAVACÓO
Ç3#0-&4#"-"/$&"%04
221
,ASOPERACIONESNECESARIASSONLASSIGUIENTES
!L REGRESAR LUEGO DE INSERTAR UN NODO CON EL VALOR SIGUIENDO EL CAMINO DE BÞSQUEDASEDETECTAQUEENLACLAVESEVIOLAELCRITERIODEEQUILIBRIODELÈRBOLYSE DEBEREESTRUCTURAR3EAPUNTACON./$/LACLAVEYCON./$/LARAMAIZQUIERDA DEDICHACLAVE,UEGOSEVERIlCAEL&%DE./$/COMOENESTECASOESIGUALAnSE PUEDEREALIZARLAROTACIØN))%LMOVIMIENTODEAPUNTADORESPARAREALIZARLAROTACIØN)) ESELSIGUIENTE ./$/>):1 ←./$/>$%2 ./$/>$%2 ←./$/ ./$/ ←./$/ 2ESPECTOAL&%DELOSNODOSAFECTADOS ÏSTESERÈSIEMPREENELCASODEROTACIONES SIMPLES ./$/>&% ./$/>&%
←
←
,UEGODEEFECTUARELREACOMODO ELÈRBOLQUEDAASÓ
!LREGRESARSIGUIENDOELCAMINODEBÞSQUEDASEMODIlCAEL&%DELOSNODOSY PEROELEQUILIBRIODELÈRBOLSEMANTIENE
222 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
!LREGRESAR LUEGODEINSERTARELVALOR SIGUIENDOELCAMINODEBÞSQUEDASEOB SERVAUNAVIOLACIØNALCRITERIODEEQUILIBRIODELÈRBOLYSEDEBEREESTRUCTURAR3EAPUNTA CON./$/LACLAVEYCON./$/LARAMADERECHADEDICHACLAVE3EVERIlCAEL&% DE./$/YCOMOENESTECASOESIGUALASEPUEDEREALIZARLAROTACIØN$$%LMOVI MIENTODEAPUNTADORESPARAREALIZARLAROTACIØN$$ES ./$/>$%2 ←./$/>):1 ./$/>):1 ←./$/ ./$/ ←./$/ 2ESPECTOAL&%DELOSNODOSAFECTADOS LASASIGNACIONESSONLASSIGUIENTES ./$/>&% ./$/>&%
← ←
,UEGODEVOLVERAEQUILIBRARLO ELÈRBOLQUEDADEESTAFORMA
Ç3#0-&4#"-"/$&"%04
223
,UEGODEINSERTARLACLAVEYALREGRESARSIGUIENDOELCAMINODEBÞSQUEDASEAD VIERTEQUEENLACLAVESEROMPEELEQUILIBRIODELÈRBOL3EAPUNTACON./$/LACLAVE YCON./$/SURAMADERECHA3ECALCULAEL&%DE./$/YCOMOENESTECASOES IGUALAn SEREALIZALAROTACIØN$)3EAPUNTAENTONCESCON./$/LARAMAIZQUIERDA DE./$/%LMOVIMIENTODEAPUNTADORESPARAREALIZARLAROTACIØN$)ES ./$/>):1 ←./$/>$%2 ./$/>$%2 ←./$/ ./$/>$%2 ←./$/>):1 ./$/>):1 ←./$/ ./$/ ←./$/ %L&%DELOSNODOSINVOLUCRADOSSEASIGNADEACUERDOCONLOSVALORESESTABLECIDOS ENLATABLA
4!",! &ACTORESDEEQUILIBRIO ENLAROTACIØN$)
./$/∧.&% ./$/∧.&%n
./$/∧.&% ./$/∧.&% ./$/∧.&%
./$/∧.&%
./$/∧.&% ./$/∧.&% ./$/∧.&%n
./$/∧.&%
./$/∧.&% ./$/∧.&%
#OMOENELEJEMPLOPRESENTADOEL&%DE./$/ESIGUALA SEREALIZANLASSI GUIENTESASIGNACIONES ./$/>&% ./$/>&% ./$/>&%
←n ← ←
,UEGODEREALIZARELREACOMODO ELÈRBOLQUEDADELASIGUIENTEMANERA
224 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
2EGRESANDOPORELCAMINODEBÞSQUEDALUEGODEINSERTARLACLAVE ESEVIDENTE QUEENLACLAVESEROMPEELEQUILIBRIODELÈRBOL3EAPUNTACON./$/LACLAVEY CON./$/SURAMAIZQUIERDA3EVERIlCAEL&%DE./$/YCOMOENESTECASOES IGUALA SEREALIZALAROTACIØN)$3EAPUNTACON./$/LARAMADERECHADE./$/ %LMOVIMIENTODEAPUNTADORESPARAREALIZARLAROTACIØN)$ES ./$/>$%2 ←./$/>):1 ./$/>):1 ←./$/ ./$/>):1 ←./$/>$%2 ./$/>$%2 ←./$/ ./$/ ←./$/ %L&%DELOSNODOSINVOLUCRADOSSEASIGNADEACUERDOCONLOSVALORESESTABLECIDOS ENLATABLA
4!",! &ACTORESDEEQUILIBRIO ENLAROTACIØN)$
./$/∧&% ./$/∧&%n
./$/∧&% ./$/∧&% ./$/∧&%
./$/∧&%
./$/∧&% ./$/∧&% ./$/∧&%
./$/∧&%
./$/∧&%n ./$/∧&%
Ç3#0-&4#"-"/$&"%04
225
#OMOENELEJEMPLOPRESENTADOEL&%DE./$/ESIGUALA SEREALIZANLASSI GUIENTESASIGNACIONES ./$/>&% ./$/>&% ./$/>&%
← ← ←
,UEGODEVOLVERAEQUILIBRARLO ELÈRBOLQUEDADELASIGUIENTEFORMA
.OTA/BSERVEQUELUEGODEREALIZARLAINSERCIØNDEUNELEMENTOYCUANDOSERE GRESAPORELCAMINODEBÞSQUEDA EL&%DELNODOVISITADOSEINCREMENTAENSILAINSER CIØNSEHIZOPORSURAMADERECHAYDISMINUYEENSILAINSERCIØNSEHIZOPORSURAMA IZQUIERDA
%JEMPLO
$ADOCOMODATOELÈRBOLBALANCEADODELAlGURAA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURABLUEGODEINSERTARLASSIGUIENTESCLAVES n
&)'52! )NSERCIØNENÉRBOLESBALAN CEADOSA !NTESDEINSERTAR LASCLAVESB $ESPUÏSDE INSERTARLASCLAVES
226 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 !CONTINUACIØNSEPRESENTAELALGORITMODEINSERCIØNENÈRBOLESBALANCEADOS !LGORITMO )NSERTA?BALANCEADO )NSERTA?BALANCEADO./$/ "/ ).&/2 [%LALGORITMOINSERTAUNELEMENTOENUNÈRBOLBALANCEADO./$/ESUNPARÈMETRODETIPO PUNTERO PORREFERENCIA"/ESUNPARÈMETRODETIPOBOOLEANO PORREFERENCIA"/SEUTILIZAPARA INDICARQUELAALTURADELÈRBOLHACRECIDO SUVALORINICIALES&!,3/).&/2ESUNPARÈMETRO DETIPOENTEROQUECONTIENELAINFORMACIØNDELELEMENTOQUEQUEREMOSINSERTAR] [/42/ ./$/Y./$/SONVARIABLESAUXILIARESDETIPOPUNTERO] 3I./$/≠.), ENTONCES 3I).&/2./$/>).&/ ENTONCES 2EGRESARA)NSERTA?BALANCEADOCON./$/>):1 "/E).&/2 [,LAMADARECURSIVA] 3I"/6%2$!$%2/ ENTONCES 3I./$/>&% (ACER./$/>&%←Y"/←&!,3/ (ACER./$/>&%←n n(ACER./$/←./$/>):1 [2EESTRUCTURACIØNDELÈRBOL] 3I./$/>&%≤ ENTONCES[2OTACIØN))] (ACER./$/>):1←./$/>$%2 ./$/>$%2 ←./$/ ./$/>&%←Y./$/←./$/ [4ERMINALAROTACIØN))] SINO[2OTACIØN)$] (ACER./$/←./$/>$%2 ./$/>):1←./$/>$%2 ./$/>$%2←./$/ ./$/>$%2←./$/>):1Y ./$/>):1←./$/ ! 3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%← " [&INDELCONDICIONALDELPASO!] # 3I./$/>&% ENTONCES (ACER./$/>&%←n SINO (ACER./$/>&%← $ [&INDELCONDICIONALDELPASO#] (ACER./$/←./$/ [4ERMINALAROTACIØN)$]
Ç3#0-&4#"-"/$&"%04
[&INDELCONDICIONALDELPASO] (ACER./$/>&%←Y"/←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] SINO 3I).&/2./$/>).&/ ENTONCES 2EGRESARA)NSERTA?BALANCEADOCON./$/>$%2 "/E).&/2 [,LAMADARECURSIVA] 3I"/6%2$!$%2/ ENTONCES 3I./$/>&% n(ACER./$/>&%←Y"/←&!,3/ (ACER./$/>&%← (ACER./$/←./$/>$%2 [2EESTRUCTURACIØNDEÈRBOL] ! 3I./$/>&%≥ ENTONCES[2OTACIØN$$] (ACER./$/>$%2←./$/>):1 ./$/>):1←./$/ ./$/>&%←Y./$/←./$/ [4ERMINALAROTACIØN$$] SINO[2OTACIØN$)] (ACER./$/←./$/>):1 ./$/>$%2←./$/>):1 ./$/>):1←./$/ ./$/>):1←./$/>$%2Y ./$/>$%2←./$/ 3I./$/>&% ENTONCES (ACER./$/>&%←n SINO (ACER./$/>&%← [&INDELCONDICIONALINTERNO] 3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%← [&INDELCONDICIONALINTERNO] (ACER./$/←./$/ [4ERMINALAROTACIØN$)] " [&INDELCONDICIONALDELPASO!] (ACER./$/>&%←Y"/←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNYASEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO]
227
228 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
[&INDELCONDICIONALDELPASO] SINO #REAR./$/ (ACER./$/>).&/←).&/2 ./$/>):1←.), ./$/>$%2←.), ./$/>&%←Y"/←6%2$!$%2/ [&INDELCONDICIONALDELPASO]
%LIMINACIØNENÉRBOLESBALANCEADOS ,AOPERACIØNDEELIMINACIØNENÈRBOLESBALANCEADOSESMÈSCOMPLEJAQUELAOPERACIØN DEINSERCIØN COMONORMALMENTEOCURREENCASITODASLASESTRUCTURASDEDATOS#ONSISTE ENQUITARUNNODODELÈRBOLSINVIOLARLOSPRINCIPIOSQUEDElNENUNÈRBOLBALANCEADO 2ECUERDEQUESEDElNIØCOMOUNAESTRUCTURAENLACUAL PARATODONODODELÈRBOL SE DEBECUMPLIRQUELAALTURADELSUBÈRBOLIZQUIERDOYLAALTURADELSUBÈRBOLDERECHO NODEBENDIFERIRENMÈSDEUNAUNIDAD %LIMINARNODOSENUNÈRBOLBALANCEADORESULTADIFÓCILAPESARDEQUESEUTILIZAEL MISMOALGORITMODEELIMINACIØN IDÏNTICOENLØGICAPERODIFERENTEENIMPLEMENTACIØN QUEENLOSÈRBOLESBINARIOSDEBÞSQUEDAYLASMISMASOPERACIONESDEREACOMODOQUESE UTILIZANENELALGORITMODEINSERCIØNENÈRBOLESBALANCEADOS %NLAOPERACIØNDEELIMINACIØNENÈRBOLESBALANCEADOSSEDEBENDISTINGUIRLOSSI GUIENTESCASOS 3IELELEMENTOAELIMINARESTERMINALUHOJA SIMPLEMENTESESUPRIME 3IELELEMENTOAELIMINARTIENEUNSOLODESCENDIENTE ENTONCESSETIENEQUESUSTITUIR PORESEDESCENDIENTE 3IELELEMENTOAELIMINARTIENELOSDOSDESCENDIENTES ENTONCESSETIENEQUESUSTITUIR PORELNODOQUESEENCUENTRAMÈSALAIZQUIERDAENELSUBÈRBOLDERECHOOPORELNODO QUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOLIZQUIERDO 0ARA ELIMINAR UN NODO EN UN ÈRBOL BALANCEADO LO PRIMERO QUE SE DEBE HACER ES LOCALIZARSUPOSICIØNENELÈRBOL3EELIMINASIGUIENDOLOSCRITERIOSESTABLECIDOSANTERIOR MENTEYSEREGRESAPORELCAMINODEBÞSQUEDACALCULANDOEL&%DELOSNODOSVISITADOS 3IENALGUNODELOSNODOSSEVIOLAELCRITERIODEEQUILIBRIO ENTONCESSEDEBEREESTRUCTURAR ELÈRBOL%LPROCESOTERMINACUANDOSELLEGAALARAÓZDELÈRBOL#ABEACLARARQUEMIEN TRASQUEENELALGORITMODEINSERCIØNUNAVEZEFECTUADAUNAROTACIØNSEPODÓADETENEREL PROCESO ENESTEALGORITMOSEDEBECONTINUARPUESTOQUESEPUEDEPRODUCIRMÈSDEUNA ROTACIØNENELCAMINOHACIAATRÈS0ARACOMPRENDERMEJORLAOPERACIØNDEELIMINACIØN ENÈRBOLESBALANCEADOS OBSERVEELSIGUIENTEEJEMPLO
%JEMPLO
3UPONGAMOS QUE SE DESEA ELIMINAR LAS SIGUIENTES CLAVES DEL ÈRBOL BALANCEADO DE LA lGURA
Ç3#0-&4#"-"/$&"%04
229
#ABEDESTACARQUEELMOVIMIENTODEAPUNTADORESYLAREASIGNACIØNDELOS&%NOSE PRESENTARÈNENESTEEJEMPLO PORQUESONIDÏNTICOSALOSMOSTRADOSENELEJEMPLO &)'52! RBOLBALANCEADO
,ASOPERACIONESQUESEREALIZANSONLASSIGUIENTES
230 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
,AELIMINACIØNDELACLAVEESUNPROCESOSENCILLO YAQUEDICHACLAVENOTIENE DESCENDIENTESDIAGRAMAA !LREGRESARSIGUIENDOELCAMINODEBÞSQUEDAESEVIDENTE QUE EN LA CLAVE SE ROMPE EL CRITERIO DE EQUILIBRIO Y SE DEBE REESTRUCTURAR EL ÈRBOL DIAGRAMAA 3EAPUNTACON./$/LACLAVEYCON./$/LARAMAIZQUIERDADE ./$/3EVERIlCAEL&%DE./$/YCOMOÏSTEESIGUALAn ENTONCESSEREALIZALA ROTACIØN)),UEGODELAREESTRUCTURACIØN ELÈRBOLQUEDACOMOENELDIAGRAMAA
Ç3#0-&4#"-"/$&"%04
231
,AELIMINACIØNDELACLAVEESUNPROCESOSENCILLODIAGRAMAB .OSEDEBE REESTRUCTURARELÈRBOLPORQUEMANTIENEELEQUILIBRIOYSØLOESNECESARIOCAMBIAREL&%DE LOSNODOSQUEALMACENANALYDIAGRAMAB
232 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 !LELIMINARLACLAVESEORIGINAELCASOMÈSDIFÓCILDEELIMINACIØNENÈRBOLESLA ELIMINACIØN DE UNA CLAVE CON DOS DESCENDIENTES DIAGRAMA CL %N ESTE CASO SE OPTA PORSUSTITUIRDICHACLAVEPORELNODOQUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOL IZQUIERDO ,UEGODELASUSTITUCIØN ELÈRBOLQUEDACOMOSEMUESTRAENELDIAGRAMA C!LREALIZARLASUSTITUCIØNSEOBSERVAQUEENDICHONODOSEVIOLAELCRITERIODEEQUI LIBRIOYSEDEBEREESTRUCTURARELÈRBOL3EAPUNTACON./$/LACLAVEYCON./$/ LARAMADERECHADE./$/3EVERIlCAEL&%DE./$/YCOMOÏSTEESIGUALA SE REALIZALAROTACIØN$$,UEGODELREACOMODO ELÈRBOLQUEDACOMOENELDIAGRAMAC
Ç3#0-&4#"-"/$&"%04
233
!LELIMINARLACLAVESURGENUEVAMENTEELTERCERCASODEELIMINACIØN QUECORRES PONDEAUNACLAVECONDOSDESCENDIENTESDIAGRAMAD 3ESUSTITUYEDICHACLAVEPOREL NODOQUESEENCUENTRAMÈSALADERECHAENELSUBÈRBOLIZQUIERDO ,UEGODELASUS TITUCIØN ELÈRBOLQUEDACOMOSEPRESENTAENELDIAGRAMAD%SEVIDENTEQUE DESPUÏS DELASUSTITUCIØN ENELNODOCONLACLAVESEVIOLAELCRITERIODEEQUILIBRIOYSEDEBE REESTRUCTURARELÈRBOL3EAPUNTACON./$/LACLAVEYCON./$/LARAMAIZQUIERDA DE./$/YSEVERIlCAEL&%#OMOENESTECASOESIGUALA SEAPUNTACON./$/ LARAMADERECHADE./$/YSEREALIZALAROTACIØN)$,UEGODELAREESTRUCTURACIØN EL ÈRBOLQUEDACOMOELPRESENTADOENELDIAGRAMAD
,UEGODELAELIMINACIØNDELASCLAVES ELÈRBOLQUEDACOMOENELDIAGRAMAE
234 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 ,AELIMINACIØNDELACLAVECORRESPONDEALPRIMERCASODEBORRADOENÈRBOLES ESEL CASOMÈSSIMPLEDIAGRAMAF 3INEMBARGO ALVERIlCAREL&%DELACLAVESEADVIERTEQUE SEROMPEELEQUILIBRIODELÈRBOLYSEDEBEREESTRUCTURARDIAGRAMAF 3EAPUNTACON./$/ LACLAVEYCON./$/LARAMADERECHADE./$/ YSEVERIlCAEL&%DE./$/#OMO ÏSTEESIGUALAn SEAPUNTACON./$/LARAMAIZQUIERDADE./$/YSEREALIZALAROTA CIØN$),UEGODELAREESTRUCTURACIØN ELÈRBOLQUEDACOMOENELDIAGRAMAF /BSERVE CUIDADOSAMENTE QUE LUEGO DE REALIZAR LA ELIMINACIØN DE UN ELEMENTO Y CUANDOSEREGRESAPORELCAMINODEBÞSQUEDA EL&%DELNODOVISITADODISMINUYEEN SILAELIMINACIØNSEHIZOPORSURAMADERECHAYSEINCREMENTAENSILAELIMINACIØNSE HIZOPORSURAMAIZQUIERDA
%JEMPLO
$ADOELÈRBOLBALANCEADODELAlGURAA VERIlQUESIELMISMOQUEDAIGUALALDELA lGURABLUEGODEELIMINARLASSIGUIENTESCLAVES
&)'52! %LIMINACIØNENÉRBOLES BALANCEADOSA !NTES DEELIMINARLASCLAVESB $ESPUÏSDEELIMINARLAS CLAVES
Ç3#0-&4#"-"/$&"%04
235
#ONELlNDEDARLEMAYORMODULARIDADALALGORITMODEELIMINACIØNENÈRBOLESBA LANCEADOS SEESTUDIARÈNDOSALGORITMOSAUXILIARES%LPRIMERO 2EESTRUCTURA?IZQ SE UTILIZACUANDOLAALTURADELARAMAIZQUIERDAHADISMINUIDO%LSEGUNDO 2EESTRUCTU RA?DER SEEMPLEACUANDOLAALTURADELARAMADERECHAHADISMINUIDO !LGORITMO 2EESTRUCTURA?IZQ
2EESTRUCTURA?IZQ./$/ "/ [%STEALGORITMOREESTRUCTURAELÈRBOLCUANDOLAALTURADELARAMAIZQUIERDAHADISMINUIDOYEL &%DE./$/ESIGUALA./$/ESUNPARÈMETROPORREFERENCIADETIPOPUNTERO"/ESUN PARÈMETRODETIPOBOOLEANO TAMBIÏNPORREFERENCIA"/SEUTILIZAPARAINDICARQUELAALTURADE LARAMAIZQUIERDAHADISMINUIDO] [./$/Y./$/SONVARIABLESAUXILIARESDETIPOPUNTERO] 3I"/6%2$!$%2/ ENTONCES 3I./$/>&% n(ACER./$/>&%← (ACER./$/>&%←Y"/←&!,3/ [2EESTRUCTURACIØNDELÈRBOL] (ACER./$/←./$/>$%2 3I./$/>&%≥ ENTONCES[2OTACIØN$$] (ACER./$/>$%2←./$/>):1Y./$/>):1←./$/ 3I./$/>&% (ACER./$/>&%← ./$/>&%←nY "/←&!,3/ (ACER./$/>&%←Y./$/>&%← [&INDELCONDICIONAL] (ACER./$/←./$/ [4ERMINALAROTACIØN$$] SINO[2OTACIØN$)] (ACER./$/←./$/>):1 ./$/>$%2←./$/>):1 ./$/>):1←./$/ ./$/>):1←./$/>$%2Y ./$/>$%2←./$/ 3I./$/>&% ENTONCES (ACER./$/>&%←n SINO (ACER./$/>&%← [&INDELCONDICIONAL] 3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%←
236 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
[&INDELCONDICIONAL] (ACER./$/←./$/Y./$/>&%← [4ERMINALAROTACIØN$)] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!LGORITMO 2EESTRUCTURA?DER 2EESTRUCTURA?DER [%STEALGORITMOREESTRUCTURAELÈRBOLCUANDOLAALTURADELARAMADERECHAHADISMINUIDOYEL &%DE./$/ESIGUALAn./$/ESUNPARÈMETRO PORREFERENCIA DETIPOPUNTERO"/ESUN PARÈMETRODETIPOBOOLEANO TAMBIÏNPORREFERENCIA"/SEUTILIZAPARAINDICARQUELAALTURADE LARAMADERECHAHADISMINUIDO] [./$/Y./$/SONVARIABLESAUXILIARESDETIPOPUNTERO] 3I"/6%2$!$%2/ ENTONCES 3I./$/>&% (ACER./$/>&%← (ACER./$/>&%←nY"/←&!,3/ n[2EESTRUCTURACIØNDELÈRBOL] (ACER./$/←./$/>):1 3I./$/>&%≤ ENTONCES[2OTACIØN)) (ACER./$/>):1←./$/>$%2Y./$/>$%2←./$/ 3I./$/>&% (ACER./$/>&%←n ./$/>&%←Y "/←&!,3/ n(ACER./$/>&%←Y./$/>&%← [&INDELCONDICIONALDELPASO] (ACER./$/←./$/ [4ERMINALAROTACIØN))] SINO[2OTACIØN)$ (ACER./$/←./$/>$%2 ./$/>):1←./$/>$%2 ./$/>$%2←./$/ ./$/>$%2←./$/>):1Y ./$/>):1←./$/ 3I./$/>&%n ENTONCES (ACER./$/>&%← SINO (ACER./$/>&%← [&INDELCONDICIONALDELPASO] 3I./$/>&% ENTONCES (ACER./$/>&%←n
Ç3#0-&4#"-"/$&"%04
237
SINO (ACER./$/>&%← [&INDELCONDICIONALDELPASO] (ACER./$/←./$/Y./$/>&%← [4ERMINALAROTACIØN)$ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!CONTINUACIØNSEPRESENTAELALGORITMODEELIMINACIØNENÈRBOLESBALANCEADOS EL CUALHARÈUSODELOSPREVIAMENTEEXPLICADOS !LGORITMO %LIMINA?BALANCEADO
%LIMINA?BALANCEADO./$/ "/ ).&/2 [%LALGORITMOELIMINAUNELEMENTOENUNÈRBOLBALANCEADO5TILIZADOSALGORITMOSAUXILIARES 2EESTRUCTURA?IZQY2EESTRUCTURA?DER./$/ESUNPARÈMETROPORREFERENCIADETIPOPUNTERO "/ESUNPARÈMETRODETIPOBOOLEANO TAMBIÏNPORREFERENCIA YSEUTILIZAPARAINDICARQUELA ALTURADELÈRBOLHADISMINUIDO SUVALORINICIALES&!,3/).&/2ESUNPARÈMETRODETIPO ENTEROQUECONTIENELAINFORMACIØNDELELEMENTOQUESEQUIEREELIMINAR] [/42/ !58 !58SONVARIABLESAUXILIARESDETIPOPUNTERO"//,ESUNAVARIABLEDETIPO BOOLEANO] 3I./$/≠.), ENTONCES 3I).&/2./$/>).&/ ENTONCES 2EGRESARA%LIMINA?BALANCEADOCON./$/>):1 "/E).&/2 ,LAMARALALGORITMO2EESTRUCTURA?IZQCON./$/Y"/ SINO 3I).&/2./$/>).&/ ENTONCES 2EGRESARA%LIMINA?BALANCEADOCON./$/>$%2 "/E).&/2 ,LAMARALALGORITMO2EESTRUCTURA?DERCON./$/Y"/ SINO (ACER/42/←./$/Y"/←6%2$!$%2/ 3I/42/>$%2.), ENTONCES (ACER./$/←/42/>):1 SINO 3I/42/>):1.), ENTONCES (ACER./$/←/42/>$%2 SINO
238 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
(ACER!58←./$/>):1Y"//,←&!,3/ ! -IENTRAS!58>$%2≠.), 2EPETIR (ACER!58←!58 !58←!58>$%2 Y"//,←6%2$!$%2/ " [&INDELCICLODELPASO!] (ACER./$/>).&/←!58>).&/Y /42/←!58 # 3I"//,6%2$!$%2/ ENTONCES (ACER!58>$%2←!58>):1 SINO (ACER./$/>):1←!58>):1 $ [&INDELCONDICIONALDELPASO#] ,LAMARALALGORITMO2EESTRUCTURA?DER CON./$/>):1Y"/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] 1UITAR/42/ [,IBERALAMEMORIADELNODO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELÈRBOLv [&INDELCONDICIONALDELPASO]
%L ANÈLISIS MATEMÈTICO DE LOS ALGORITMOS DE INSERCIØN )NSERTA?BALANCEADO Y ELIMINACIØN%LIMINA?BALANCEADODEMUESTRAQUEESPOSIBLEBUSCAR INSERTARYELI MINARUNELEMENTOENUNÈRBOLBALANCEADODENNODOSEN/LOGN UNIDADESDETIEMPO 0OROTRAPARTE DIVERSOSANÈLISISDEMUESTRANQUESONMÈSFRECUENTESLASROTACIONESEN LAS OPERACIONES DE INSERCIØN QUE EN LAS DE ELIMINACIØN YA QUE MIENTRAS SE PRODUCE APROXIMADAMENTEUNAROTACIØNPORCADADOSINSERCIONES SEPRODUCEUNAROTACIØNPOR CADACINCOELIMINACIONES
%JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLACLAVE DELÈRBOLBALANCEADODELAlGURA &)'52! RBOLBALANCEADO
Ç3#0-&4#"-"/$&"%04 ,ASOPERACIONESQUESEREALIZANSONLASSIGUIENTES
239
240 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
/BSERVEELLECTORQUEALELIMINARLACLAVESEDESBALANCEAELÈRBOLYDEBEMOS EFECTUARLAROTACIØN))3INEMBARGO LUEGODEBALANCEARYMODIlCARELFACTORDEEQUI LIBRIODELNODOQUEALMACENALACLAVENOSDAMOSCUENTAQUEDEBEMOSEFECTUARUN NUEVOBALANCEO AHORAUNAROTACIØN$$²STEESUNTÓPICOCASODONDEALELIMINARUNA CLAVESEPRODUCEUNACADENADEBALANCEOS
2"/,%3-5,4)#!-)./3 ,OSDIFERENTESTIPOSDEÈRBOLESBINARIOSESTUDIADOSHASTAELMOMENTOFUERONDESARRO LLADOSPARAFUNCIONARENLAMEMORIAPRINCIPALDELACOMPUTADORA3INEMBARGO EXISTEN MUCHAS APLICACIONES EN LAS QUE EL VOLUMEN DE INFORMACIØN ES TAL QUE LOS DATOS NO CABENENLAMEMORIAPRINCIPALYESNECESARIOALMACENARLOS ORGANIZADOSENARCHIVOS ENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO%STAORGANIZACIØNDEARCHIVOSDEBESER SUlCIENTEMENTEADECUADACOMOPARARECUPERARLOSDATOSENFORMAElCIENTE
Ç3#0-&4.6-5*$".*/04
241
%SIMPORTANTERECORDARQUEELTIEMPONECESARIOPARALOCALIZARUNREGISTROENLAME MORIAPRINCIPALDELACOMPUTADORASEMIDEENMICROSEGUNDOS MIENTRASQUEELTIEMPO NECESARIOPARALOCALIZARUNAPÈGINACONTIENEVARIOSREGISTROS ENMEMORIASECUNDARIA POREJEMPLODISCO SEMIDEENMILISEGUNDOS%LTIEMPODEACCESO CLAROESTÈ ESMILESDE VECESMÈSRÈPIDOENLAMEMORIAPRINCIPALQUEENLAMEMORIASECUNDARIA #ONSIDERE EL CASO DE ALMACENAR UN ÈRBOL BINARIO EN DISCO 3E NECESITARÈ EN PRO MEDIO PARALOCALIZARALGUNODELOSNODOS LOGDNACCESOSADISCO DONDENREPRESENTA ELNÞMERODENODOSDELÈRBOLYDELORDENDELMISMO QUEENESTECASOESIGUALA0OR EJEMPLOSIELÈRBOLCONTIENEDEELEMENTOS SENECESITARÓANAPROXIMADAMENTE ACCESOSADISCO!HORABIEN SIELÈRBOLESTÈORGANIZADOENPÈGINASNODOS DETAL MANERAQUECADAPÈGINACONTENGACOMOMÓNIMOELEMENTOS ENTONCESSENECESITA RÓANCOMOMÈXIMOTRESACCESOSADISCOLOG .OTEELLECTORQUELOSACCESOS ADISCODISMINUYENDEMODOCONSIDERABLE %XISTENDIFERENTESTÏCNICASPARALAORGANIZACIØNDEARCHIVOSINDIZADOS SINEMBARGO LAORGANIZACIØNENÈRBOLES "YESPECÓlCAMENTESUVARIANTE LAORGANIZACIØNENÈRBOLES " ESLAMÈSUTILIZADA
RBOLES " ,OS ÈRBOLES " SON UNA GENERALIZACIØN DE LOS ÈRBOLES BALANCEADOS ²STOS REPRESENTAN BÈSICAMENTEUNMÏTODOPARAALMACENARYRECUPERARINFORMACIØNENMEDIOSEXTERNOS &UERON PROPUESTOS POR "AYER Y -C#REIGHT EN 3U NOMBRE ÈRBOLES " NUNCA FUE EXPLICADOPORLOSAUTORES AUNQUEMUCHOSSOSTIENENQUE"PROVIENEDE"AYER UNODE SUSINVENTORES %NESTETIPODEÈRBOLES UNGRUPODENODOSRECIBEELNOMBREDEPÈGINA%NCADA PÈGINASEALMACENALAINFORMACIØNDEUNGRUPODENODOSYSEIDENTIlCAPORMEDIODE UNACLAVEOLLAVE %NGENERALCADAPÈGINADEUNÈRBOL"DEORDENDCONTIENEDCLAVESCOMOMÈXIMO YDCLAVESCOMOMÓNIMO#ONESTOSEGARANTIZAQUECADAPÈGINAESTÏLLENACOMOMÓNI MOHASTALAMITAD2ESPECTOALNÞMERODEDESCENDIENTES CADAPÈGINADEUNÈRBOL "DE ORDENDTIENEDHIJOSCOMOMÈXIMOYDHIJOSCOMOMÓNIMO EXCEPTOLAPÈGINA RAÓZQUEPUEDECONTENERCOMOMÓNIMODATOYPORCONSIGUIENTESOLAMENTEHIJOS,AS PÈGINASENGENERALSONALMACENADASENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO A EXCEPCIØNDELAPÈGINARAÓZQUEESCONVENIENTEMANTENERLAENMEMORIAPRINCIPAL#ABE MENCIONAR QUEBÈSICAMENTEPORCUESTIONESDEESPACIO ENLOSEJEMPLOSYlGURAS EN CADANODOSEALMACENASOLAMENTEUNDATO LACLAVECONLACUALVAMOSATRABAJAR%NLA lGURASEPRESENTAUNDIAGRAMACORRESPONDIENTEAUNÈRBOL "DEORDEN
&)'52! RBOL "DEORDEN
242 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %NLAlGURASEOBSERVAUNAPÈGINADEUNÈRBOL "DEORDEND CONDCLAVESY DHIJOS
&)'52! 0ÉGINADEUNÉRBOL "DE ORDEND
&ORMALMENTEUNÈRBOL "SEDElNEDELASIGUIENTEMANERA #ADAPÈGINA EXCEPTOLARAÓZ CONTIENEENTREDYDELEMENTOS SIENDODELGRADODEL ÈRBOL ,ARAÓZPUEDEALMACENARENTREYDELEMENTOS #ADAPÈGINA EXCEPTOLAPÈGINARAÓZYLASPÈGINASHOJA TIENEENTREDYD DESCENDIENTES3EUTILIZARÈMPARAEXPRESARELNÞMERODEELEMENTOSPORPÈGINA ,APÈGINARAÓZTIENEALMENOSDOSDESCENDIENTES ,ASPÈGINASHOJAESTÈNTODASALMISMONIVEL
%JEMPLO
,UEGODEANALIZARELÈRBOL "DELAlGURASEPUEDEAlRMARLOSIGUIENTERESPECTOA ÏSTE
&)'52! RBOL "DEORDEN
◗ ◗ ◗ ◗ ◗ ◗
/RDENDELÈRBOL !LTURADELÈRBOL 4ODASLASPÈGINASCONTIENEN OELEMENTOS EXCEPTOLARAÓZQUECONTIENE ,OSELEMENTOSDENTRODELAPÈGINASEENCUENTRANORDENADOSENFORMACRECIENTE DE IZQUIERDAADERECHA 4ODASLASHOJASESTÈNALMISMONIVEL 4ODASLASPÈGINASTIENENODESCENDIENTES
"ÞSQUEDAENÉRBOLES " %LPROCESODEBÞSQUEDAENÈRBOLES "ESUNAGENERALIZACIØNDELPROCESODEBÞSQUEDA EN ÈRBOLES BINARIOS DE BÞSQUEDA ,OS PASOS NECESARIOS PARA LOCALIZAR UNA CLAVE 8 EN UNÈRBOL "SONLOSQUESEPRESENTANACONTINUACIØN3EUTILIZA.),PARAINDICARQUELA PÈGINAESTÈVACÓA
Ç3#0-&4.6-5*$".*/04
243
3EDEBETENERENMEMORIALAPÈGINASOBRELACUALSEQUIERETRABAJAR 3IPÈGINA≠.), ENTONCES 3EAVANZAHACIAELPASO SINO 3EAVANZAHACIAELPASO [&INDELCONDICIONALDELPASO] 3EDEBEVERIlCARSILACLAVEBUSCADASEENCUENTRAENDICHAPÈGINA3IMESPEQUE×A SEUTILIZARÈBÞSQUEDASECUENCIAL DEOTRAMANERASEPODRÈUTILIZARBÞSQUEDABINARIA 3ILACLAVESEENCUENTRAENLAPÈGINA ENTONCES [,AOPERACIØNDEBÞSQUEDACONCLUYECUANDOSEENCUENTRA _²8)4/ELDATOENLAPÈGINAVISITADA] SINO 3EDEBENDISTINGUIRLOSSIGUIENTESCASOS 3I8#, ENTONCES 3EDEBELOCALIZAR0!' 3I#,I8#,M ENTONCES 3EDEBELOCALIZAR0!'I 3I8#,M ENTONCES 3EDEBELOCALIZAR0!'M [&INDELCONDICIONALDELPASO] 2EGRESARALPASO .OTA3EUTILIZAELTÏRMINO#,PARAHACERREFERENCIAALASCLAVESDEUNADETER MINADAPÈGINA 8PARAINDICARLACLAVEQUESEBUSCAY0!'PARAEXPRESARLA PÈGINAQUEDEBELOCALIZARSEENMEMORIASECUNDARIA _&2!#!3/,APÈGINAQUESEDESEALOCALIZARESTÈVACÓA PORLOTANTOELPROCESO DEBÞSQUEDASEINTERRUMPEYSEINFORMAQUELACLAVENOSEENCUENTRAALMACENADA ENELÈRBOL
)NSERCIØNENÉRBOLES " %LPROCESODEINSERCIØNENÈRBOLES "ESRELATIVAMENTESENCILLO AUNQUEREQUIERECIERTO TRATAMIENTOESPECIALDEBIDOALASCARACTERÓSTICASPROPIASDEESTOSÈRBOLES,OSÈRBOLES " TIENENUNCOMPORTAMIENTOTÓPICO DIFERENTEALRESTODELOSÈRBOLESESTUDIADOSANTERIORMEN TE4ODASLASHOJASESTÈNALMISMONIVELYPORLOTANTOCUALQUIERCAMINODESDELARAÓZHASTA ALGUNADELASHOJASTIENELAMISMALONGITUD0OROTRAPARTE LOSÈRBOLES "TIENENUNAFORMA EXTRA×ADECRECER LOHACENDEABAJOHACIAARRIBA ESDECIR DESDELASHOJASHACIALARAÓZ,OS PASOSPARALLEVARACABOLAINSERCIØNDEUNNODOENUNÈRBOL "SONLOSSIGUIENTES ,OCALIZARLAPÈGINADONDECORRESPONDEPORELVALOR PARANOALTERARELORDEN INSERTARLACLAVE 3IMD [%LNÞMERODEELEMENTOSDELAPÈGINAESMENORAD]
244 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 ENTONCES ,ACLAVESEINSERTAENELLUGARQUELECORRESPONDE [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO] SINO[%LNÞMERODEELEMENTOSDELAPÈGINAESIGUALAD] ,APÈGINAAFECTADASEDIVIDEENYSEDISTRIBUYENLASM CLAVESEQUITATIVAMENTEENTRELASMISMAS,ACLAVEDELMEDIOSUBE ALAPÈGINAANTECESORA [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO] [&INDELCONDICIONALDELPASO] ,OS PASOS ANTERIORES SE REPITEN MIENTRAS SEA NECESARIO 3I ALGUNA DE LAS PÈGINAS ANTECESORASSEDESBORDANUEVAMENTE ENTONCESHAYQUEORDENARLASCLAVESENLAPÈGINA APLICARPARTICIØNYLACLAVEDELMEDIOSUBEALAPÈGINAANTECESORA%LPROCESODEPROPA GACIØNPUEDELLEGARINCLUSOHASTALARAÓZ ENDICHOCASOLAALTURADELÈRBOLSEINCREMENTA ENUNAUNIDAD [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO]
&)'52! )NSERCIØNDELACLAVEEN UNÉRBOL "A !NTESDEIN SERTARLACLAVEB $ESPUÏS DEINSERTARLACLAVE
&)'52! )NSERCIØNDELACLAVEENUNÉRBOL "A !NTESDEINSERTARLACLAVEB $ESPUÏS DEINSERTARLA .OTA/BSERVEELLECTORQUELAINSERCIØNDELACLAVEPROVOCØLADIVISIØNDELAPÉGINA!ENDOS PÉGINAS"Y#,ASCLAVESSEDISTRIBUYERONEQUITATIVAMENTEENTRELASPÉGINASCITADASYLACLAVEDEL MEDIO SUBIØALAPÉGINAANTECESORA
Ç3#0-&4.6-5*$".*/04
245
&)'52! )NSERCIØNDELACLAVEEN UNÉRBOL "A !NTESDEIN SERTARLACLAVEB $ESPUÏS DEINSERTARLA .OTA/BSERVEELLECTORQUELA INSERCIØNDELACLAVEPROVO CØLADIVISIØNDELAPÉGINA!EN DOSPÉGINAS"Y#3INEMBAR GO ALSUBIRLACLAVEDELMEDIO SEPRODUJOUNNUEVO DESBORDAMIENTOQUEORIGINØ LAPARTICIØNDELAPÉGINA$ ENLASPÉGINAS%Y&,ACLAVE FORMAAHORAPARTEDEUNA NUEVAPÉGINA' YREPRESENTA LARAÓZDELÉRBOL
%JEMPLO
3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNÈRBOL "DEORDENQUESE ENCUENTRAVACÓO ,OSRESULTADOSPARCIALESQUEILUSTRANELCRECIMIENTODELÈRBOLSEPRESENTANENLOS DIAGRAMASDELAlGURA
&)'52! )NSERCIONESENUNÉRBOL " DEORDEN
246 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! CONTINUACIØN
Ç3#0-&4.6-5*$".*/04
247
&)'52! CONTINUACIØN
%JEMPLO
$ADOCOMODATOELÈRBOL "DEORDENDELAlGURAA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURABLUEGODEINSERTARLASSIGUIENTESCLAVES
&)'52! )NSERCIØNENUNÉRBOL "DE ORDENA !NTESDEINSER TARLASCLAVESB $ESPUÏS DEINSERTARLASCLAVES
248 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
%LIMINACIØNENÉRBOLES " ,AOPERACIØNDEELIMINACIØNENÈRBOLES "ESUNAOPERACIØNMÈSCOMPLICADAQUELA INSERCIØN#ONSISTEENQUITARUNACLAVEDELÈRBOLSINVIOLARLACONDICIØNDEQUEENUNA PÈGINA EXCEPTOLARAÓZ NOPUEDEHABERMENOSDEDCLAVESNIMÈSDEDCLAVES SIENDOD ELORDENDELÈRBOL%NLAOPERACIØNDEBORRADOSEDEBENDISTINGUIRLOSSIGUIENTESCASOS 3ILACLAVEAELIMINARSEENCUENTRAENUNAPÈGINAHOJAENTONCESSIMPLEMENTESE SUPRIME 3IM≥D [3EVERIlCAQUEELNÞMERODEELEMENTOSENLAPÈGINASEAVÈLIDO] ENTONCES 4ERMINALAOPERACIØNDEBORRADO [3EPRESENTAUNEJEMPLODEESTECASOENLAlGURA] SINO 3EDEBEBAJARLACLAVELEXICOGRÈlCAMENTEADYACENTEDELA PÈGINAANTECESORAYSUSTITUIRESTACLAVEPORLAQUESE ENCUENTREMÈSALADERECHAENELSUBÈRBOLIZQUIERDOOPORLA QUESEENCUENTREMÈSALAIZQUIERDAENELSUBÈRBOLDERECHO #ONESTEPASOSELOGRAQUEM ENESTAPÈGINA SIGA SIENDO≥D [3EPRESENTAUNEJEMPLOENLASlGURASAYB] 3IESTONOESPOSIBLE PORLASMDELASPÈGINAS INVOLUCRADAS SEDEBENFUSIONARLASPÈGINASQUESON DESCENDIENTESDIRECTASDELACLAVEQUESEBAJA [3EPRESENTAUNEJEMPLODEESTECASOENLASlGURASCYD] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] 3ILACLAVEAELIMINARNOSEENCUENTRAENUNAPÈGINAHOJAENTONCES 3EDEBESUSTITUIRPORLACLAVEQUESEENCUENTRAMÈSALAIZQUIERDA ENELSUBÈRBOLDERECHOOPORLACLAVEQUESEENCUENTRAMÈSALA DERECHAENELSUBÈRBOLIZQUIERDO 3IM≥D [3EVERIlCAQUEELNÞMERODEELEMENTOSENLAPÈGINASEAVÈLIDO]
&)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA
Ç3#0-&4.6-5*$".*/04
249
ENTONCES 4ERMINALAOPERACIØNDEBORRADO [3EPRESENTAUNEJEMPLODEESTECASOENLAlGURA] SINO 3EDEBEBAJARLACLAVELEXICOGRÈlCAMENTEADYACENTEDELA PÈGINAANTECESORAYFUSIONARLASPÈGINASQUESON DESCENDIENTESDIRECTASDEDICHACLAVE [%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] #ABEACLARARQUEELPROCESODEFUSIØNDEPÈGINASSEPUEDEPROPAGARINCLUSOHASTA LARAÓZ ENCUYOCASOLAALTURADELÈRBOLDISMINUYEENUNAUNIDAD%NLAlGURASE PRESENTANDOSEJEMPLOSDEESTECASO &)'52! %LIMINACIØNDELASCLAVES YENUNÉRBOL "DE ORDENA !NTESDEELIMI NARLACLAVEB $ESPUÏS DEELIMINARLAC !NTESDE ELIMINARLACLAVE D $ESPUÏSDEELIMINARLA .OTAS!LELIMINARLACLAVE DELAPÉGINA! BAJALACLAVE DELAPÉGINAANTECESORAY ÏSTAESSUSTITUIDAPORLAQUESE ENCUENTRAMÉSALAIZQUIERDA ENLAPÉGINADERECHAESDECIR LACLAVEDELAPÉGINA" !LELIMINARLACLAVEDELA PÉGINA! BAJALACLAVEDELA PÉGINAANTECESORAYSEFUSIO NANLASPÉGINAS!Y"
&)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE SESUSTITUYEPORLACLAVEQUESE ENCUENTRAMÉSALAIZQUIERDA ENELSUBÉRBOLDERECHO
250 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE SESUSTITUYEPORLACLAVEQUESE ENCUENTRAMÉSALADERECHAEN ELSUBÉRBOLIZQUIERDO 3IN EMBARGO ALSUBIRLACLAVE ENLAPÉGINA! MQUEDAMENOR QUED PORLOQUEESNECESARIO REALIZARUNAFUSIØN"AJALACLA VECORRESPONDIENTEALAPÉGINA ANTECESORANUEVAMENTE Y SEFUSIONANLASPÉGINAS!Y"
&)'52! %LIMINACIØNDELASCLAVES YENUNÉRBOL "DE ORDENA !NTESDEELIMI NARLACLAVEB $ESPUÏS DEELIMINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! MQUEDAMENOR AD PORLOQUEESNECESARIO BAJARLACLAVEDELAPÉGINA ANTECESORA PRODUCIÏNDOSELA FUSIØNDELASPÉGINAS!Y"3IN EMBARGO ENLAPÉGINA#NUE VAMENTEMQUEDAMENORAD PORLOQUEESNECESARIOBAJARLA CLAVEDELAPÉGINA%#OMO ESTAPÉGINAQUEDAVACÓA ES NECESARIAENTONCESUNANUEVA FUSIØN AHORADELASPÉGINAS# Y$,AALTURADELÉRBOLDISMI NUYEENUNAUNIDAD
Ç3#0-&4.6-5*$".*/04
251
&)'52! CONTINUACIØN
C !NTESDEELIMINARLA CLAVED $ESPUÏSDE ELIMINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! SESUSTITUYEPOR LACLAVEQUESEENCUENTRAMÉS ALADERECHAENELSUBÉRBOL IZQUIERDODELAPÉGINA" 3INEMBARGO ENLAPÉGINA" M QUEDAMENORQUED PORLOQUE ESNECESARIOBAJARLACLAVE DELAPÉGINA$PRODUCIÏNDOSE LAFUSIØNDELASPÉGINAS"Y #.UEVAMENTEENLAPÉGINA $ MQUEDAMENORAD PORLO QUEAHORAESNECESARIOBAJAR LACLAVEDELAPÉGINA! #OMOESTAPÉGINAQUEDAVACÓA ENTONCESNECESITAREALIZARSE UNAFUSIØNDELASPÉGINAS$Y %,AALTURADELÉRBOLDISMINUYE ENUNAUNIDAD
%JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLASSIGUIENTESCLAVESDELÈRBOL "DEORDENDELA lGURA
&)'52! RBOL "DEORDEN
,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLOSDIAGRAMASDELAlGURA
252 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! %LIMINACIONESENUN ÉRBOL "DEORDEN
Ç3#0-&4.6-5*$".*/04
253
&)'52! CONTINUACIØN
%JEMPLO
$ADOCOMODATOELÈRBOL "DEORDENDELAlGURA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURA LUEGODEELIMINARLASSIGUIENTESCLAVES
&)'52! RBOL "DEORDENLUEGO DEELIMINARLASCLAVES Y
254 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLACLAVEDELÈRBOL "DEORDENDELAlGURA
&)'52! RBOL "DEORDEN
,ASOPERACIONESQUESEREALIZANSONLASSIGUIENTES
Ç3#0-&4.6-5*$".*/04
255
.OTA!LELIMINARLACLAVEDELAPÈGINA! MQUEDAMENORAD PORLOQUEES NECESARIOBAJARLACLAVEDELAPÈGINA# PRODUCIÏNDOSELAFUSIØNDELASPÈGINAS!Y "3INEMBARGO ENLAPÈGINA#NUEVAMENTEMQUEDAMENORAD PORLOQUEESNECESARIO BAJARLACLAVEDELAPÈGINA&!QUÓESDONDESEPRODUCEUNODELOSCASOSMÈSDIFÓCILES DEBORRADOENÈRBOLES "%NLOSEJEMPLOSANTERIORESHACÓAMOSFUSIØNDELASPÈGINAS# Y$ DISMINUYENDOLAALTURADELÈRBOL3INEMBARGO SIHICIÏRAMOSESTOMSERÓAMAYORA D PORLOQUEVIOLARÓAMOSLOSPRINCIPIOSQUEDElNENUNÈRBOL "%SNECESARIOENTONCES SUBIRLACLAVEDELAPÈGINA$ALAPÈGINA& YLAPÈGINA%PASAASERELHIJODERECHODE LACLAVE AHORAENLAPÈGINA#
RBOLES " ,OSÈRBOLES "SEHANCONVERTIDOENLATÏCNICAMÈSUTILIZADAPARALAORGANIZACIØNDEAR CHIVOSINDIZADOS,APRINCIPALCARACTERÓSTICADEESTOSÈRBOLESESQUETODALAINFORMACIØN SEENCUENTRAENLASHOJAS MIENTRASQUELOSNODOSRAÓZEINTERIORESALMACENANCLAVESQUE SEUTILIZANCOMOÓNDICES$EBIDOAESTACARACTERÓSTICADELOSÈRBOLES " TODOSLOSCAMI NOSDESDELARAÓZHASTACUALQUIERADELOSDATOSTIENENLAMISMALONGITUD%NLAlGURA PRESENTAMOSUNDIAGRAMADEUNÈRBOL "DEORDEN %SDENOTARQUELOSÈRBOLES "OCUPANUNPOCOMÈSDEESPACIOQUELOSÈRBOLES " Y ESTOOCURREALEXISTIRDUPLICIDADENALGUNASCLAVES3INEMBARGO ESTOESACEPTABLESIEL ARCHIVOSEMODIlCAFRECUENTEMENTE PUESTOQUESEEVITALAOPERACIØNDEREORGANIZACIØN DELÈRBOLQUEESTANCOSTOSAENLOSÈRBOLES " &ORMALMENTESEDElNEUNÈRBOL "DEORDENDDELASIGUIENTEMANERA #ADAPÈGINA EXCEPTOLARAÓZ CONTIENEMELEMENTOS DONDEMESUNVALORENTREDY D ,ARAÓZCONTIENEDEADELEMENTOS #ADAPÈGINA EXCEPTOLARAÓZ TIENEENTREDYDDESCENDIENTES ,APÈGINARAÓZTIENEALMENOSDOSDESCENDIENTES ,ASPÈGINASHOJASESTÈNTODASALMISMONIVEL 4ODALAINFORMACIØN CONLASCLAVESQUELASIDENTIlCAN SEENCUENTRAENLASPÈGINAS HOJA ,ASCLAVESALMACENADASENLASPÈGINASRAÓZEINTERIORESSEUTILIZANCOMOÓNDICES
&)'52! RBOL "DEORDEN
256 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
"ÞSQUEDAENÉRBOLES " ,A OPERACIØN DE BÞSQUEDA EN ÈRBOLES " ES SIMILAR A LA OPERACIØN DE BÞSQUEDA EN ÈRBOLES "%LPROCESOESSIMPLE SINEMBARGOPUEDESUCEDERQUEALBUSCARUNADETERMI NADACLAVELAMISMASEENCUENTREENUNAPÈGINARAÓZOINTERIOR%NDICHOCASONOSEDEBE DETENERELPROCESOPORQUEENLAPÈGINARAÓZOENLASINTERIORESSØLOSEALMACENANCLAVES QUEFUNCIONANCOMOÓNDICES,ABÞSQUEDADEBECONTINUARENLAPÈGINAAPUNTADAPORLA RAMADERECHADEDICHACLAVE 0OREJEMPLO ALBUSCARLACLAVEENELÈRBOL "DELAlGURASEADVIERTEQUE ÏSTASEENCUENTRAENLAPÈGINARAÓZ%NESTECASO SEDEBECONTINUARELPROCESODEBÞS QUEDAENLAPÈGINAAPUNTADAPORLARAMADERECHADEDICHACLAVE
)NSERCIØNENÉRBOLES " %LPROCESODEINSERCIØNENÈRBOLES "ESRELATIVAMENTESIMPLE SIMILARALPROCESODE INSERCIØNENÈRBOLES ",ADIlCULTADSEPRESENTACUANDOSEDESEAINSERTARUNACLAVEEN UNAPÈGINAQUESEENCUENTRALLENAMD %NESTECASO LAPÈGINAAFECTADASEDIVIDE EN DISTRIBUYÏNDOSELASMCLAVESDELASIGUIENTEFORMAhLASDPRIMERASCLAVESENLA PÈGINADELAIZQUIERDAYLASDRESTANTESCLAVESENLAPÈGINADELADERECHAv5NACOPIA DELACLAVEDELMEDIOSUBEALAPÈGINAANTECESORA %NLAlGURASEMUESTRANDOSDIAGRAMASQUEILUSTRANCØMOFUNCIONAESTECASO 0UEDESUCEDERQUELAPÈGINAANTECESORASEDESBORDENUEVAMENTE ENDICHOCASOSEDEBE REPETIRELPROCESOANTERIOR%SIMPORTANTENOTARQUEELDESBORDAMIENTOENUNAPÈGINA QUENOESHOJANOPRODUCEDUPLICIDADDECLAVES%LPROCESODEPROPAGACIØNPUEDELLEGAR HASTALARAÓZ ENCUYOCASOLAALTURADELÈRBOLSEPUEDEINCREMENTARENUNAUNIDAD
&)'52! )NSERCIØNDELACLAVEENUNÉRBOL "A !NTESDEINSERTARLACLAVEB $ESPUÏSDEINSERTARLA .OTA/BSERVEQUELAINSERCIØNDELACLAVEENLAPÉGINA!PRODUCESUDIVISIØNENDOSPÉGINAS"Y#,ASDPRIMERASCLAVESSEUBICANENLAPÉGINA"Y ,AS DCLAVESRESTANTESENLAPÉGINA# Y 5NACOPIADELACLAVEDELMEDIO SUBEALAPÉGINAANTECESORA
Ç3#0-&4.6-5*$".*/04
257
%NLAlGURASEPRESENTANDOSDIAGRAMASQUECLARIlCANYRESUELVENESTECASO &)'52! )NSERCIØNDELACLAVEENUNÉRBOL "A !NTESDEINSERTARLACLAVEB $ESPUÏSDEINSERTARLA .OTA,AINSERCIØNDELACLAVEENLAPÉGINA!PROVOCØLADIVISIØNDEÏSTAENLASPÉGINAS"Y#3INEMBARGO ALSUBIRUNACOPIADELACLAVEDELMEDIO SEPRODUCE UNNUEVODESBORDAMIENTOENLAPÉGINA$QUEPROVOCASUPARTICIØNENLASPÉGINAS%Y&,ACLAVEFORMAAHORAPARTEDELAPÉGINA'YREPRESENTALARAÓZDELÉRBOL,A ALTURADELÉRBOLSEINCREMENTAENUNAUNIDAD
%JEMPLO
3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNÈRBOL "DEORDENQUE SEENCUENTRAVACÓO ,OSRESULTADOSPARCIALESQUEILUSTRANELCRECIMIENTODELÈRBOLSEPRESENTANENLOS DIAGRAMASCORRESPONDIENTESALAlGURA
258 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 &)'52! )NSERCIONESENUNÉRBOL " DEORDEN
Ç3#0-&4.6-5*$".*/04
259
&)'52! CONTINUACIØN
%JEMPLO
$ADOCOMODATOELÈRBOL "DEORDENDELAlGURAA VERIlQUESIELMISMOQUEDA IGUALALDELAlGURAB LUEGODEINSERTARLASSIGUIENTESCLAVES
&)'52! )NSERCIONESENUNÉRBOL " DEORDENA !NTESDE INSERTARLASCLAVES B $ESPUÏSDEINSERTARLAS
260 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
%LIMINACIØNENÉRBOLES " ,AOPERACIØNDEELIMINACIØNENÈRBOLES "ESMÈSSIMPLEQUELAOPERACIØNDEBORRADO ENÈRBOLES "%STOOCURREPORQUELASCLAVESQUESEDEBENELIMINARSIEMPRESEENCUENTRAN ENLASPÈGINASHOJA%NGENERALSEDEBENDISTINGUIRLOSSIGUIENTESCASOS 3IALELIMINARUNACLAVEMQUEDAMAYOROIGUALAD ENTONCESTERMINALAOPERACIØN DEBORRADO,ASCLAVESDELASPÈGINASRAÓZOINTERNASNOSEMODIlCANPORMÈSQUE SEANUNACOPIADELACLAVEELIMINADAENLASHOJAS3EPRESENTAUNEJEMPLODEESTE CASOENLAlGURA 3IALELIMINARUNACLAVEMQUEDAMENORAD ENTONCESSEDEBEREALIZARUNAREDISTRI BUCIØNDECLAVES TANTOENELÓNDICECOMOENLASPÈGINASHOJAS#UANDOSECAMBIALA ESTRUCTURADELÈRBOL SEQUITANAQUELLASCLAVESQUEQUEDARONENLOSNODOSINTERIORES LUEGODEHABERELIMINADOSUCORRESPONDIENTEINFORMACIØNENLOSNODOSHOJA(AY DOSEJEMPLOSQUEILUSTRANCØMOFUNCIONAESTECASOENLAlGURA 0UEDESUCEDERQUEALELIMINARUNACLAVEYALREALIZARUNAREDISTRIBUCIØNDELASMIS MAS LAALTURADELÈRBOLDISMINUYAENUNAUNIDAD%NLAlGURASEPRESENTANDOS DIAGRAMASQUECORRESPONDENAESTECASO
&)'52! %LIMINACIØNDELACLAVE DEUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! LAPÉGINARAÓZ" QUECONTIENECOMOÓNDICEALA CLAVEELIMINADANOSEMODIlCA
&)'52! %LIMINACIØNDELASCLAVES YDEUNÉRBOL "DE ORDENA !NTESDEELIMI NARLACLAVEB $ESPUÏS DEELIMINARLAC !NTESDE ELIMINARLACLAVED $ESPUÏSDEELIMINARLA
Ç3#0-&4.6-5*$".*/04
261
&)'52! CONTINUACIØN .OTAS!LELIMINARLACLAVEDELAPÉGINA! MQUEDAMENORAD PORLOQUEDEBEREALIZARSEUNAREDISTRIBUCIØNDECLAVES3ETOMALACLAVEQUESEENCUENTRAMÉSALA DERECHAENLARAMAIZQUIERDADEDELAPÉGINA" 3ECOLOCADICHACLAVEENLAPÉGINA!YUNACOPIADELAMISMA COMOÓNDICE ENLAPÉGINA# !LELIMINARLACLAVEDELAPÉGINA! MQUEDAMENORAD PORLOQUEDEBEREALIZARSEUNAREDISTRIBUCIØNDECLAVES#OMONOSEPUEDETOMARUNACLAVEDELAPÉGINA" PUESTOQUEMQUEDARÓAMENORAD ENTONCESSEREALIZAUNAFUSIØNDELASPÉGINAS!Y"
&)'52! %LIMINACIØNDELACLAVE ENUNÉRBOL "DEORDEN A !NTESDEELIMINARLA CLAVEB $ESPUÏSDEELI MINARLA .OTA!LELIMINARLACLAVE DELAPÉGINA! MQUEDAMENOR AD PORLOQUEDEBEREALIZARSE UNAREDISTRIBUCIØNDECLAVES #OMONOPUEDETOMARSEUNA CLAVEDELAPÉGINA" PUESTO QUEMQUEDARÓAMENORAD EN TONCESSEREALIZAUNAFUSIØNDE LASPÉGINAS!Y"3INEMBARGO LUEGODEESTAFUSIØNMQUEDA MENORADENLAPÉGINA# POR LOQUEDEBEBAJARSELACLAVE DELAPÉGINA%YREALIZARSEUNA NUEVAFUSIØN AHORADELASPÉ GINAS#Y%,AALTURADELÉRBOL DISMINUYEENUNAUNIDAD
262 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLASSIGUIENTESCLAVESDELÈRBOL "DEORDENDELA lGURA
&)'52! RBOL "DEORDEN
,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEPRESENTAN ENLOSDIAGRAMASDELAlGURA
&)'52! %LIMINACIONESENUN ÉRBOL "DEORDEN
Ç3#0-&4.6-5*$".*/04
263
&)'52! CONTINUACIØN
%JEMPLO
6ERIlQUESIELÈRBOL "DEORDENDELAlGURAQUEDAIGUALALDELAlGURA LUEGO DEELIMINARLASSIGUIENTESCLAVES
&)'52! RBOL "DEORDENLUEGO DEELIMINARLASCLAVES Y
264 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
RBOLES ,OS ÈRBOLES SON UNA VARIANTE DE LOS ÈRBOLES MULTICAMINOS ²STOS SE CARACTERIZAN PORQUECADAUNODESUSNODOSPUEDETENERMÈXIMOHIJOSYTODOSLOSNODOSEXTERNOS HOJASESTÈNALMISMONIVEL%SDECIR ENESTOSÈRBOLESSEDEBEGARANTIZARELTAMA×O YLAALTURADELOSMISMOS #OMOENELCASODELOSÈRBOLESMULTICAMINOSANALIZADOSENLASSECCIONESPREVIAS LASOPERACIONESDEINSERCIØNYELIMINACIØNPUEDENOCASIONAR RESPECTIVAMENTE LAPARTI CIØNOFUSIØNDELOSNODOSCONELOBJETODEMANTENERLASPROPIEDADESENUNCIADAS$EBI DOAQUESELLEVANACABODEMANERASIMILARALOPRESENTADO SEDEJAALLECTORELDESARROLLO DELOSCORRESPONDIENTESALGORITMOS
,!#,!3%2"/, ,ACLASE«RBOLTIENECOMOATRIBUTOALARAÓZDELAESTRUCTURAYCOMOMÏTODOSATODASLAS OPERACIONESANALIZADAS SEGÞNELTIPODEÈRBOLQUESEESTÏREPRESENTANDO'RÈlCAMENTE UNACLASE«RBOLPARAÈRBOLESBINARIOSSEPUEDEVERCOMOSEMUESTRAENLAlGURA %NESTECASO LOSMÏTODOSPERMITENLLEVARACABOTODASLASOPERACIONESPRESENTADAS PREVIAMENTELOSTRESTIPOSDERECORRIDOS BÞSQUEDA INSERCIØNYELIMINACIØN 3E TIENE ACCESO A LOS MIEMBROS DE UN OBJETO DE LA CLASE «RBOL POR MEDIO DE LA NOTACIØNDEPUNTOS!SUMIENDOQUELAVARIABLE!2/"*ESUNOBJETODELACLASE«RBOL PREVIAMENTECREADO SEPUEDEHACER !2/"*2ECORRE?0REORDENARGUMENTO PARAINVOCARELMÏTODOQUEVISITACADAUNO DE LOS NODOS DEL ÈRBOL SIGUIENDO EL RECORRIDO PREORDEN %N ESTE MÏTODO SE REQUIERE COMOARGUMENTOUNPUNTEROALNODOAVISITARLAPRIMERAVEZESLARAÓZ YAQUEES UNMÏTODORECURSIVO !2/"*)NSERTAARGUMENTOS PARAINSERTARUNNUEVOELEMENTOENELÈRBOLBINARIO %NESTEMÏTODOSEREQUIERENDOSARGUMENTOS UNOPARAELNODOAVISITARLAPRIMERAVEZ ESLARAÓZYOTROPARAELDATOAINSERTAR
&)'52! #LASERBOL
&+&3$*$*04
265
▼ %*%2#)#)/3 RBOLESENGENERAL Ê £° ,OSÈRBOLESSEPUEDENREPRESENTARDEDIFERENTESFORMAS$ADOELSIGUIENTEDIAGRAMA DE6ENNQUECORRESPONDEAUNAESTRUCTURAÈRBOL CONVIÏRTALOANOTACIØNDECIMALDE $EWEYYNOTACIØNINDENTADA
Ê Ó° $ADALASIGUIENTEESTRUCTURADELÈRBOLREPRESENTADACOMOANIDACIØNDEPARÏNTESIS !"%+ & #', -. $( ) / 0 1 2 *
#ALCULELOSIGUIENTE
A 'RADODELÈRBOL B 'RADODELNODO' C !LTURADELÈRBOL D .ODOSTERMINALESUHOJAS E .ODOSINTERIORES Ê Î° $ADA LA SIGUIENTE ESTRUCTURA DE ÈRBOL REPRESENTADA COMO NOTACIØN DECIMAL DE $EWEY
! " $ % ) * & ' + - . # ( , #ALCULELASLONGITUDESDECAMINOINTERNOYEXTERNODEDICHOÈRBOL
Ê {° #ALCULECUÈLESELGRADODELNODO4 SI4ESPADREDELNODO0YÏSTETIENEHERMA NOS
266 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
RBOLESBINARIOS Ê x° 2EPRESENTELASSIGUIENTESEXPRESIONESALGEBRAICASUTILIZANDOÈRBOLESBINARIOS A # 9 >$2 + B !2n#,$ + C 8"# $ >"+0 > > Ê È° $ADOSLOSSIGUIENTESÈRBOLESBINARIOSREPRESENTADOSCOMOANIDACIØNDEPARÏNTESIS A +"! &$ 7-, /0 : B
%SCRIBALOSRECORRIDOSPREORDEN INORDENYPOSORDENDECADAUNODEELLOS
Ê Ç° z#UÈLESELMÈXIMONÞMERODENODOSDEUNÈRBOLBINARIODEALTURAH Ê n° z#UÈNTOSÈRBOLESBINARIOSDISTINTOSSEPUEDETENERCONNODOSz9CUÈNTOSCON Ê ° z#UÈNTOSÈRBOLESBINARIOSSIMILARESSEPUEDETENERCONNODOSz9CUÈNTOSCON £ä°$ADAS LAS SIGUIENTES SECUENCIAS DE NODOS OBTENIDAS POR LOS RECORRIDOS PREORDEN INORDENYPOSORDEN DIBUJEELCORRESPONDIENTEÈRBOLBINARIO ◗ ◗ ◗
0REORDEN0 2 ! # ( 4 / )NORDEN! 2 ( # 0 / 4 0OSTORDEN! ( # 2 / - 4 0
2EPRESENTACIØNDEÉRBOLESGENERALES COMOÉRBOLESBINARIOS ££°$ADOSLOSSIGUIENTESÈRBOLESGENERALES UNOREPRESENTADOENFORMADEGRAFO INCISO A YOTROREPRESENTADOCOMOANIDACIØNDEPARÏNTESIS INCISOB CONVIÏRTALOSAÈRBO LESBINARIOS
&+&3$*$*04 A
B !"% &+ #', -1 2 . $( )/3 0 £Ó°$ADOELSIGUIENTEBOSQUE CONVIÏRTALOENÈRBOLBINARIO
267
268 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 RBOLESBINARIOSDEBÞSQUEDA £Î°$ADASLASSIGUIENTESCLAVESQUEREPRESENTANLOSSIGNOSDELZODIACO CONSTRUYAUN ÈRBOLBINARIODEBÞSQUEDA
PISCIS ACUARIO CAPRICORNIO CÈNCER SAGITARIO VIRGO LEO ESCORPIØN LIBRA GÏMINIS ARIES TAURO
£{°$ADOELSIGUIENTEÈRBOLBINARIODEBÞSQUEDA COMPLETELOSNODOSENBLANCODETAL FORMAQUENOSEVIOLENLOSPRINCIPIOSQUEDElNENJUSTAMENTEUNÈRBOLBINARIODE BÞSQUEDA
£x°$ADOELSIGUIENTEÈRBOLBINARIODEBÞSQUEDA ELIMINELASCLAVES
£È°6ERIlQUESIELÈRBOLBINARIODEBÞSQUEDADELDIAGRAMADELINCISOA QUEDAIGUALAL DELDIAGRAMADELINCISOB LUEGODEELIMINARLASCLAVES
&+&3$*$*04
269
%JERCICIOSDEPROGRAMACIØNENÉRBOLESBINARIOS £Ç°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMACUÈNTOSNODOSTIENEUNÈRBOLBINARIO £n°%SCRIBAUNPROGRAMAQUECALCULEEIMPRIMAELTOTALDENODOSINTERNOSQUETIENEUN ÈRBOLBINARIO £°#ONSIDERANDOQUEUNÈRBOLBINARIOALMACENANÞMEROSENTEROS ENCUENTREEIMPRIMA ELMÈXIMOVALORGUARDADOENELÈRBOLYELPROMEDIODELOSMISMOS Óä°%SCRIBAUNPROCEDIMIENTOQUEREALICELOSIGUIENTE A )MPRIMALAINFORMACIØNALMACENADAENLASHOJASDEUNÈRBOLBINARIO B )MPRIMALAINFORMACIØNALMACENADAENLOSNODOSINTERNOSDEUNÈRBOLBINARIO Ó£°$ADOELSIGUIENTEÈRBOLBINARIO
270 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 %SCRIBAUNPROGRAMAQUEIMPRIMALOSNODOSDELMISMODELASIGUIENTEFORMA
! " $ % & ' ( # ) ÓÓ°$ADOELÈRBOLBINARLODELEJERCICIO ESCRIBAUNPROGRAMAQUEIMPRIMALOSNODOS DELMISMODELASIGUIENTEFORMA
! " # $ % ) & ' ( Óΰ%SCRIBAUNPROCEDIMIENTOQUEVISITELOSNODOSDEUNÈRBOLBINARIODELASIGUIENTE FORMA ◗ ◗ ◗
2AÓZ 2AMADERECHA 2AMAIZQUIERDA
Ó{°%SCRIBATRESPROCEDIMIENTOSQUEEFECTÞENLOSRECORRIDOSENPREORDEN INORDENYPOS ORDENENFORMAITERATIVAENLUGARDERECURSIVA PARALOCUALSEPUEDEAPOYARENUNA PILA Óx°%SCRIBAUNPROCEDIMIENTOQUEELIMINETODASLASHOJASDEUNÈRBOLBINARIO ÓÈ°%SCRIBAUNPROGRAMAQUECARGUELOSNODOSDEUNÈRBOLBINARIOENUNARREGLOUNIDI MENSIONAL#UIDEQUESEMANTENGALARELACIØNPADRE HIJOENTRELOSNODOS ÓÇ°%SCRIBAUNAFUNCIØNQUEDETERMINESIDOSÈRBOLESBINARIOSSONSIMILARES Ón°%SCRIBAUNAFUNCIØNQUEDETERMINESIDOSÈRBOLESBINARIOSSONEQUIVALENTES Ó°%SCRIBAUNPROCEDIMIENTOQUEINTERCAMBIELOSSUBÈRBOLESIZQUIERDOYDERECHODEUN ÈRBOLBINARIO%SDEOBSERVARQUEESTEINTERCAMBIOSEDEBEREALIZARPARATODONODO DELÈRBOL %JEMPLO$ADOELÈRBOLBINARIODELDIAGRAMADELINCISOA ELINTERCAMBIODE RAMASPRODUCEELÈRBOLDELDIAGRAMADELINCISOB
&+&3$*$*04
271
Îä°3ETIENEALMACENADATODALAASCENDENCIADE#ARLOSENUNÈRBOLBINARIO3EHASEGUI DOELSIGUIENTECRITERIOPARA#ARLOSYTODOSSUSPROGENITORESENLARAMAIZQUIERDA SEHAGUARDADOELNOMBREDELAMADREYENLARAMADERECHAELNOMBREDELPADRE /BSERVELAlGURAQUESEMUESTRAACONTINUACIØN
%SCRIBA UN SUBPROGRAMA QUE IMPRIMA EL NOMBRE DE TODOS LOS PROGENITORES FEMENINOSDE#ARLOS Σ°2ETOMEELPROBLEMAANTERIOR!GREGUEUNAFUNCIØNQUEPUEDAINSERTARALÈRBOLGE NEALØGICODE#ARLOSTANTOASCENDIENTESFEMENINOSCOMOMASCULINOS ÎÓ°$ElNALACLASE«RBOLBINARIOUTILIZANDOALGÞNLENGUAJEDEPROGRAMACIØNORIENTADO AOBJETOS TOMANDOCOMOBASEPARAPROGRAMARLOSMÏTODOSLOSALGORITMOSESTUDIA DOSENESTECAPÓTULO Îΰ2ETOMEELPROBLEMAANTERIOR!GREGUEALACLASEUNMÏTODOQUEMUESTREELCONTENI DODEUNNODO Î{°%SCRIBAUNPROGRAMADEAPLICACIØNQUEDADOSDOSOBJETOSDELACLASE«RBOLBINARIO PREVIAMENTEDElNIDA IMPRIMAUNMENSAJEADECUADOSEGÞNLOSMISMOSSEANEQUI VALENTESONO$ETERMINESIREQUIEREDElNIRNUEVOSMÏTODOSALACLASE
RBOLESBALANCEADOS Îx°$ETERMINESILOSSIGUIENTESÈRBOLESBINARIOSSONÈRBOLESBALANCEADOS
272 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
ÎÈ°#ALCULECUÈLESELMÈXIMONÞMERODENODOSDEUNÈRBOLBALANCEADODEALTURA z#UÈLESELMÓNIMO
&+&3$*$*04
273
ÎÇ°)NSERTELASCLAVES ENELÈRBOLBALANCEADOQUESEDAA CONTINUACIØN
În°%LIMINELASSIGUIENTESCLAVESDELÈRBOLBALANCEADODELSIGUIENTEDIAGRAMA
ΰ%SCRIBALASINSTRUCCIONESNECESARIASPARAEQUILIBRARELÈRBOLBALANCEADODELSIGUIEN TEDIAGRAMA LUEGODEELIMINARLACLAVE
274 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4 RBOLES "YÉRBOLES " {ä°z#UÈL ES EL NÞMERO DE CLAVES M QUE PUEDE TENER COMO MÈXIMO UN ÈRBOL " DE ORDENYTRESNIVELESz#UÈLELDEUNÈRBOL " {£°z#UÈLESELNÞMEROMÈSPEQUE×ODECLAVESQUE ALSERINSERTADAS PROVOCARÓAQUEUN ÈRBOL "DEORDENTUVIERATRESNIVELES {Ó°z#UÈLESELNÞMEROMÈSPEQUE×ODECLAVESQUE ALSERINSERTADAS PROVOCARÓAQUEUN ÈRBOL "DEORDENTUVIERACUATRONIVELES {ΰ5NÈRBOL "DEORDENYTRESNIVELESTIENECLAVESz#UÈNTASCLAVESSE PODRÓANELIMINARDELÈRBOLSINQUEÏSTETENGAQUEDISMINUIRSUALTURA {{°2EALICELOSTRESEJERCICIOSANTERIORES PEROAHORAAPLICADOSAÈRBOLES " {x°)NSERTELASSIGUIENTESCLAVES A %NUNÈRBOL "DEORDENQUESEENCUENTRAVACÓO B %NUNÈRBOL "DEORDENQUESEENCUENTRAVACÓO {È°6ERIlQUE SI EL ÈRBOL " DE ORDEN DEL DIAGRAMA DEL INCISO A QUEDA IGUAL AL DEL DIAGRAMADELINCISOB LUEGODEINSERTARLASSIGUIENTESCLAVES
&+&3$*$*04
275
{Ç°6ERIlQUESIELÈRBOL "DEORDENDELDIAGRAMADELINCISOA QUEDAIGUALALDEL DIAGRAMADELINCISOB LUEGODEINSERTARLASSIGUIENTESCLAVES
{n°6ERIlQUESIELÈRBOL "DEORDENDELDIAGRAMADELINCISOB DELEJERCICIOQUEDA IGUALALÈRBOLDELSIGUIENTEDIAGRAMA LUEGODEELIMINARLASCLAVES
{°6ERIlQUESIELÈRBOL"QUESEPRESENTAENELINCISOA QUEDAIGUALALÈRBOLDELDIAGRA MADELINCISOB LUEGODEELIMINARLASSIGUIENTESCLAVES
276 >«ÌÕÊÈÊ Ê Ê Ç3#0-&4
%JERCICIOSDEPROGRAMACIØNDEÉRBOLES "YÉRBOLES " xä°%SCRIBALOSSUBPROGRAMASDEINSERCIØNYELIMINACIØNENÈRBOLES " x£°%SCRIBALOSSUBPROGRAMASDEINSERCIØNYELIMINACIØNENÈRBOLES "
#APÓTULO
Ç
'2&)#!3 ).42/$5##)¼. %NELCAPÓTULOANTERIORSEESTUDIARONLASESTRUCTURASDEDATOSTIPOÈRBOLES ENDONDECADA NODOOELEMENTOPUEDETENERCOMOMÈXIMOUNNODOQUELEPRECEDEORAÓZ3INEMBARGO ENLAPRÈCTICAEXISTENPROBLEMASOSITUACIONESENQUELAINFORMACIØNQUESEDEBEALMA CENARNOCORRESPONDECONUNAESTRUCTURADEESTETIPO0ARAESTOSPROBLEMASSENECESITA DE UNA ESTRUCTURA EN LA CUAL SE PUEDAN REPRESENTAR OTRAS RELACIONES ENTRE LOS DATOS O COMPONENTESDELAMISMA$EDICAREMOSESTECAPÓTULOALESTUDIODELASGRÈlCAS ,ASGRÈlCASSONESTRUCTURASDEDATOSNOLINEALESDONDECADACOMPONENTEPUEDE TENERUNOOMÈSPREDECESORESYSUCESORES%NUNAGRÈlCASEDISTINGUENDOSELEMENTOS LOSNODOS MEJORCONOCIDOSCOMOVÏRTICES YLOSARCOS LLAMADOSARISTAS QUECONECTAN UNVÏRTICECONOTRO,OSVÏRTICESALMACENANINFORMACIØNYLASARISTASREPRESENTANRELA CIONESENTREDICHAINFORMACIØN %STASESTRUCTURASTIENENAPLICACIONESENDIFERENTESDOMINIOS ENTREELLOSTRANSPORTE TERRESTRE AÏREOYMARÓTIMO REDESDECOMPUTADORAS MAPASUBICACIØNGEOGRÈlCADE VARIASCIUDADES ASIGNACIØNDETAREAS ETC#ONSIDERE POREJEMPLO LAGRÈlCADELAlGURA DONDESEOBSERVANALGUNASDELASPRINCIPALESCAPITALESSUDAMERICANASYLACONEXIØN ENTREELLAS%NESTECASOLOSVÏRTICESREPRESENTANALASCIUDADES MIENTRASQUELASARISTAS ALASCARRETERASOALGÞNOTROMEDIODECONEXIØNENTREELLAS!LGUNASARISTASESTÈNETIQUE TADAS ELVALORQUEAPARECEENELLASCONSTITUYELADISTANCIAQUEEXISTEENTRELASCIUDADES %NGENERAL UNAETIQUETAENLAARISTAQUEUNE POREJEMPLO LOSVÏRTICESIYJSEUSAPARA REPRESENTARELCOSTODEIRDELVÏRTICEIALVÏRTICEJ %NLAlGURASEPRESENTANDOSEJEMPLOSDEGRÈlCAS,APRIMERAA TIENECUATRO VÏRTICESA B C D YCINCOARISTASA B B C C D D A B D MIENTRASQUELA SEGUNDAB TIENESEISVÏRTICESA B C D E F YSEISARISTASA B B C C D D A D E E F
$%&).)#)¼.$%'2&)#!3 5NAGRÈlCA'CONSTADEDOSCONJUNTOS6' Y!' %LPRIMEROLOINTEGRANELEMENTOS LLAMADOSNODOSOVÏRTICESELSEGUNDO ARCOSOARISTAS0ORLOTANTO PODEMOSDENOTAR UNAGRÈlCA'COMO
278 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! %JEMPLODEGRÉlCA
'6 ! $ONDE6REPRESENTAELCONJUNTODEVÏRTICESDE'Y!ELCONJUNTODEARISTASDE'3I NOSEHACENINGUNAESPECIlCACIØN LOSCONJUNTOS6Y!SONlNITOS #ADAARISTAESTÈIDENTIlCADAPORUNÞNICOPARDENODOSDELCONJUNTODEVÏRTICES QUEPUEDEONOESTARORDENADO5NAARISTAQUEVADELVÏRTICEUALVSEDENOTAMEDIANTE
&)'52! %LEMENTOSDEUNAGRÉlCA
$0/$&1504#Ç4*$04%&(3Ç'*$"4
279
LAEXPRESIØNAU V DONDEUYVSONVÏRTICESADYACENTESYLOSEXTREMOSDEA%NESTE CASO UYVESTÈNCONECTADOSPORAYSEDICEQUEAESINCIDENTEENUYV
#/.#%04/3"3)#/3$%'2&)#!3 ! CONTINUACIØN SE PRESENTAN ALGUNOS DE LOS CONCEPTOS MÈS IMPORTANTES RELACIONADOS CONLATEORÓADEGRÈlCAS ◗ ◗ ◗
'RADODEUNVÏRTICE%LGRADODEUNVÏRTICEV ESCRITOCOMOGRADOV ESELNÞMERO DEARISTASQUECONTIENENAVESDECIR QUETIENENAVCOMOEXTREMO3IELGRADOV VNOTIENEARISTAS SEDICEQUEVESUNNODOAISLADO ,AZOOBUCLE5NLAZOOBUCLEESUNAARISTAQUECONECTAAUNVÏRTICECONSIGOMIS MOESDECIR AU U #AMINO5NCAMINO0DELONGITUDNSEDElNECOMOLASECUENCIADENVÏRTICESQUE SEDEBESEGUIRPARALLEGARDELVÏRTICEVORIGENALVÏRTICEVNDESTINO 0V VN $ETALMODOQUEVIESADYACENTEAVIPARAI Nn
◗ ◗ ◗ ◗ ◗ ◗ ◗
◗ ◗
#AMINOCERRADO%LCAMINO0ESCERRADOSIELPRIMEROYÞLTIMOVÏRTICESSONIGUA LESESDECIR SIVVN #AMINOSIMPLE%LCAMINOESSIMPLESITODOSSUSNODOSSONDISTINTOS CONEXCEP CIØNDELPRIMEROYDELÞLTIMO QUEPUEDENSERIGUALESESDECIR 0ESSIMPLESIV V SONDISTINTOS #ICLO5NCICLOESUNCAMINOSIMPLECERRADODELONGITUDOMAYOR5NCICLODE LONGITUDKSELLAMAK CICLO 'RÈlCACONEXA3EDICEQUEUNAGRÈlCAESCONEXASIEXISTEUNCAMINOSIMPLEENTRE CUALESQUIERADOSDESUSNODOS 'RÈlCAÈRBOL3EDICEQUEUNAGRÈlCA'ESDELTIPOÈRBOLOÈRBOLLIBRESI'ESUNA GRÈlCACONEXASINCICLOS 'RÈlCACOMPLETA3EDICEQUEUNAGRÈlCAESCOMPLETASICADAVÏRTICEVDE'ESAD YACENTEATODOSLOSDEMÈSVÏRTICESDE'5NAGRÈlCACOMPLETADENVÏRTICESTENDRÈ NNn ARISTAS 'RÈlCAETIQUETADA3EDICEQUEUNAGRÈlCA'ESTÈETIQUETADASISUSARISTASTIENEN ASIGNADOUNVALOR%SDECIR SICADAARISTAATIENEUNVALORNUMÏRICONONEGATIVO CA LLAMADOCOSTO PESOOLONGITUDDEA ENTONCES'TIENEPESOOESTÈETIQUETADA %NESTECASO CADACAMINO0DE'TENDRÈASOCIADOUNPESOOLONGITUDQUESERÈLA SUMADELOSPESOSDELASARISTASQUEFORMANELCAMINO0 -ULTIGRÈlCA5NAGRÈlCASEDENOMINAMULTIGRÈlCASIALMENOSDOSDESUSVÏRTICES ESTÈNCONECTADOSENTRESÓPORMEDIODEDOSARISTAS%NESTECASO LASARISTASRECIBEN ELNOMBREDEARISTASMÞLTIPLESOPARALELAS 3UBGRÈlCA$ADALAGRÈlCA'6 ! 'ʹ6ʹ !ʹ SEDENOMINASUBGRÈlCADE' SI6ʹ≠φ 6ʹ⊆6Y!ʹ⊆! DONDECADAARISTADE!ʹESINCIDENTECONVÏRTICESDE6ʹ
280 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! #ONCEPTOSDEGRÉlCAS
,UEGODEOBSERVARLAlGURASEPUEDENREALIZARLASSIGUIENTESAlRMACIONES A 4ODOSLOSVÏRTICESTIENENGRADO B 5NCAMINO0PARALLEGARDELNODO!AL$PUEDESER! " # $/TROSPUEDENSER! % $O! $ C %LCAMINO! # $ !ESUNCAMINOCERRADO EL! # $NOLOES D %LCAMINO! # $ !ESUNCAMINOSIMPLE EL! # " $ #NOLOES E %LCAMINO! # $ !ESUNCICLO F %S UNA GRÈlCA CONEXA PUES TODOS LOS NODOS TIENEN AL MENOS UN CAMINO A OTRO NODO G %SUNAGRÈlCACOMPLETA PUESTODOSLOSNODOSSECONECTANCONLOSDEMÈS ,UEGODEOBSERVARLAlGURASEPUEDENREALIZARLASSIGUIENTESAlRMACIONES A %NLAGRÈlCADELAlGURAA EXISTEUNLAZOOBUCLEENELVÏRTICED%SDECIR A D D B ,AGRÈlCADELAlGURAB ESUNAMULTIGRÈlCA YAQUEHAYDOSARISTASQUEUNEN LOSVÏRTICESCYD%SDECIR LASARISTASAC D YAC D SONARISTASMÞLTIPLESO ARISTASPARALELAS %NLASSIGUIENTESSECCIONESSEDESCRIBENDOSTIPOSDEGRÈlCASDIRIGIDASYNODIRI GIDAS
'2&)#!3$)2)')$!3 %N ESTA SECCIØN SE TRATARÈ UN TIPO ESPECIAL DE GRÈlCAS LLAMADAS GRÈlCAS DIRIGIDAS !DEMÈSDESUDElNICIØNYSUREPRESENTACIØN SEPRESENTARÈNLOSPRINCIPALESALGORITMOS USADOSPARAELCÈLCULODECAMINOS%SIMPORTANTEMENCIONARQUEEXISTEGRANCANTIDAD DEPROBLEMASDELAVIDAREALQUESONMUYDIFÓCILESDERESOLVER YQUE SINEMBARGO SE PODRÓANRESOLVERFÈCILMENTESISEMODELARANCONGRÈlCASYLUEGOSEAPLICARANALGUNOS MÏTODOSQUEFUNCIONANSOBREELLAS
(3Ç'*$"4%*3*(*%"4
281
&)'52! /TROSCONCEPTOSDEGRÉlCAS
#ADAVEZQUESOLUCIONAMOSUNPROBLEMA ENREALIDADESTAMOSENCONTRANDOLASO LUCIØNAUNMODELODELPROBLEMA4ODOSLOSMODELOSSONSIMPLIlCACIONES DEALGUNA FORMA DELMUNDOREAL DEOTRAMANERASERÓANEXTREMADAMENTECOMPLEJOSYDIFÓCILESDE MANEJAR %LPROCESODESOLUCIØNDEUNPROBLEMACONSTADEDOSETAPASIMPORTANTESELDESA RROLLODEUNMODELODEUNPROBLEMAYELUSODELMODELOPARAGENERARLASOLUCIØN,A SOLUCIØN lNALMENTE ESENTÏRMINOSDELMODELO3IELNUESTROTIENEUNALTOGRADODEl DELIDADYELMÏTODOQUEEMPLEAMOSESADECUADO ENTONCESNUESTRASOLUCIØNSERÈBUENA 0ORELCONTRARIO SINUESTROMODELONOREPRESENTAlDEDIGNAMENTEALPROBLEMA ENTONCES LOSRESULTADOSNOSERÈNSATISFACTORIOS,ATEORÓADEGRÈlCASPROPORCIONALOSCONCEPTOS PARAMODELARMUCHOSPROBLEMASDELAVIDAREAL UTILIZANDOJUSTAMENTEGRÈlCAS,UEGO EXISTENMUYBUENOSMÏTODOSQUESEPUEDENAPLICARAESTASGRÈlCAS QUEPROPORCIONARÈN COMORESULTADOlNALLASOLUCIØNDELPROBLEMAINICIAL ,ASGRÈlCASDIRIGIDASSECARACTERIZANPORQUESUSARISTASTIENENASOCIADAUNADIREC CIØNESDECIR SONPARESORDENADOS,OSVÏRTICESSEUTILIZANPARAREPRESENTARINFORMA CIØN MIENTRASQUELASARISTASREPRESENTANUNARELACIØNCONDIRECCIØNOJERARQUÓAENTRE AQUÏLLOS5NAPOSIBLEAPLICACIØNDEESTETIPODEGRÈlCASPUEDESERLAREPRESENTACIØNDE CIUDADESENLOSVÏRTICES YLADURACIØNDELOSVUELOSENLASARISTAS ASUMIENDOQUEEL TIEMPONECESARIOPARAIRDELACIUDAD#ALACIUDAD#NOESELMISMOTENIENDOEN CUENTARAZONESCOMOLOSVIENTOSQUEELREQUERIDOPARAIRDELACIUDAD#ALACIUDAD #!CONTINUACIØNSEDElNEFORMALMENTEELCONCEPTODEGRÈlCADIRIGIDA 5NA GRÈlCA DIRIGIDA ' TAMBIÏN LLAMADA DIGRÈlCA SE CARACTERIZA PORQUE CADA ARISTAATIENEUNADIRECCIØNASIGNADAESDECIR CADAARISTAESTÈASOCIADAAUNPARORDE NADOU V DEVÏRTICESDE'5NAARISTADIRIGIDAAU V SELLAMAARCO YGENERALMENTE SEEXPRESACOMOU→V0ARALASARISTASDELASDIGRÈlCASSEAPLICALASIGUIENTETERMINO LOGÓA
282 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! 2EPRESENTACIØNDEUNA ARISTADIRIGIDA
A B C D
AEMPIEZAENUYTERMINAENV UESELORIGENOPUNTOINICIALDEA YVESELDESTINOOPUNTOTERMINALDEA UESUNPREDECESORDEVYVESUNSUCESOROVECINODEU UESADYACENTEHACIAVYVESADYACENTEDESDEU
%NLAlGURASEPRESENTAUNEJEMPLODEUNAARISTADEUNADIGRÈlCA/BSERVEQUE ELARCOQUEUNEALOSDOSVÏRTICESTIENEDIRECCIØN INDICADAPORMEDIODELAmECHA
2EPRESENTACIØNDEGRÉlCASDIRIGIDAS ,ASDIGRÈlCASSONESTRUCTURASDEDATOSABSTRACTASPORLOTANTO LOSLENGUAJESDEPROGRA MACIØNNOCUENTANCONHERRAMIENTASQUEPERMITANSUMANEJO0ARASUREPRESENTACIØNSE REQUIEREUSAROTRASESTRUCTURASDEDATOS%XISTENVARIASOPCIONESPARAREALIZARESTOÞLTI MOLAELECCIØNDELAMÈSADECUADADEPENDEDELUSOQUESELEVAYAADARALAINFORMACIØN ALMACENADAENLOSVÏRTICESYENLASARISTAS,ASREPRESENTACIONESMÈSUTILIZADASSONLAS MATRICESYLISTASDEADYACENCIA QUESEDESCRIBENACONTINUACIØN%SIMPORTANTESE×ALAR QUEALGUNOSLENGUAJESDEPROGRAMACIØN COMO,)30O3#(%-% NOUTILIZANARREGLOS BIDIMENSIONALESMATRICESCOMOESTRUCTURASDEDATOSESTÈNDARPORLOTANTO SEUSAN ÈRBOLESOLISTASPARALAREPRESENTACIØNDEDIGRÈlCAS
-ATRIZDEADYACENCIA 5NAMATRIZDEADYACENCIAESUNAMATRIZBOOLEANA DEORDENN DONDENINDICAELNÞ MERODEVÏRTICESDE',OSRENGLONESYCOLUMNASDELAMATRIZREPRESENTANALOSVÏRTICES YSUCONTENIDOLAEXISTENCIAONODEARCOSENTREELLOS0ORLOTANTO CADAELEMENTOI JDE LAMATRIZALMACENAUNOUN DEPENDIENDODESIEXISTEONOUNARCOENTRELOSVÏRTICES IYJ 0ARAGENERARLAMATRIZDEADYACENCIACORRESPONDIENTEAUNADIGRÈlCASELEDAUNOR DENARBITRARIOASUSVÏRTICES YSEASIGNAALOSRENGLONESYALASCOLUMNASDEUNAMATRIZEL MISMOORDEN5NELEMENTODELAMATRIZSERÈSILOSVÏRTICESCORRESPONDIENTESALRENGLØN YALACOLUMNAESTÈNUNIDOSPORUNAARISTASONADYACENTES YENCASOCONTRARIO 3I'6 ! Y6[L N] LAMATRIZDEADYACENCIA-QUEREPRESENTAA' TIENEN§NELEMENTOSDONDE-;I J=CON≤I≤NY≤J≤N ESSØLOSIEXISTEUNARCO QUEVAYADELNODOIALJ YESENOTROCASO 5NAVENTAJADELASMATRICESDEADYACENCIAESQUEELTIEMPODEACCESOALELEMENTO REQUERIDOESINDEPENDIENTEDELTAMA×ODE6Y!%LTIEMPODEBÞSQUEDAESDELORDEN DEN 3INEMBARGO SUPRINCIPALDESVENTAJAESQUEREQUIEREUNESPACIODEALMACENA MIENTODENPOSICIONES AUNQUEELNÞMERODEARCOSDE'NOSOBREPASEESENÞMERO,A MATRIZDEADYACENCIAESÞTILENLOSALGORITMOSDISE×ADOSPARACONOCERSIEXISTEUNAARISTA ENTREDOSNODOSDADOS %N LAS lGURAS Y SE PRESENTAN DOS EJEMPLOS DE GRÈlCAS DIRIGIDAS CON SUS RESPECTIVASREPRESENTACIONESPORMEDIODEMATRICESDEADYACENCIA
(3Ç'*$"4%*3*(*%"4
283
1,ÊÇ°È %JEMPLODEREPRESENTACIØN DEGRÉlCASA 'RÉlCADIRI GIDAB Ê-ATRIZDEADYACEN CIADELAGRÉlCADIRIGIDA
5NAVARIANTEDELAMATRIZDEADYACENCIAESLAMATRIZDEADYACENCIAETIQUETADA EN DONDE-;I J=REPRESENTALAETIQUETAOCOSTOASOCIADOALARCO3ILAARISTANOEXISTE EN TONCESELVALORDE-;I J=SERÈCERO%STASMATRICESTAMBIÏNSEDENOMINANMATRICESDE COSTOSODEDISTANCIAS%NLAlGURASEPRESENTAUNEJEMPLODEESTECASO #OMOYASEMENCIONØ LAPRINCIPALDESVENTAJADELASMATRICESDEADYACENCIAESEL ESPACIOQUEREQUIERENPARAALMACENARLAINFORMACIØN5NAALTERNATIVAPARAOPTIMIZAREL USODELAMEMORIAESPORMEDIODELASLISTASDEADYACENCIA
1,ÊÇ°Ç %JEMPLODEREPRESENTACIØNDEGRÉlCASA 'RÉlCADIRIGIDACONCOSTOSB Ê-ATRIZ DEADYACENCIAETIQUETADAOCONCOSTOS
284 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! %JEMPLODEREPRESENTACIØNDEGRÉlCASA $IGRÉlCAB ,ISTADEADYACENCIA DELADIGRÉlCA
,ISTADEADYACENCIA 5NALISTADEADYACENCIAPARAUNVÏRTICEAESUNALISTAORDENADADETODOSLOSVÏRTICESAD YACENTESDEA0ORLOTANTO UNALISTADEADYACENCIAPARAREPRESENTARUNAGRÈlCADIRIGIDA ESTARÈFORMADAPORTANTASLISTASCOMOVÏRTICESTENGA'0ARAGUARDARLOSVÏRTICESDE' SEPUEDEUTILIZAROTRALISTAOUNARREGLO%NESTELIBROSEUSAUNARREGLOALQUELLAMAMOS (%!$ DONDE(%!$;I=ESUNAPUNTADORALALISTADEVÏRTICESADYACENTESALVÏRTICEI,A LISTADEADYACENCIAREQUIEREUNESPACIODEALMACENAMIENTOPROPORCIONALALASUMADEL NÞMERODEVÏRTICESMÈSELNÞMERODEARCOS %STETIPODEREPRESENTACIØNSERECOMIENDACUANDOELNÞMERODEARISTASESMENOR AN%LUSODELALISTADEADYACENCIAPERMITEAHORRARESPACIODEALMACENAMIENTO3IN EMBARGO USARUNALISTAENLUGARDEUNAMATRIZTIENELADESVENTAJADEQUEELTIEMPODE BÞSQUEDADELASARISTASPUEDESERMAYOR YAQUESEPIERDEELACCESODIRECTOQUEPERMITE LAMATRIZ,AOPERACIØNDEBÞSQUEDASERÈDELORDENDE/N &)'52! %JEMPLODEAPLICACIØNDELALGORITMODE$IJKSTRAA $IGRÉlCAB -ATRIZDEDISTANCIAS DELADIGRÉlCA
(3Ç'*$"4%*3*(*%"4
285
%NLAlGURASEOBSERVAQUEENELARREGLO ENLAPOSICIØNCORRESPONDIENTEACADA UNODELOSCUATROVÏRTICES SEGUARDØUNPUNTEROALALISTADEADYACENCIADELOSRESPEC TIVOSVÏRTICES!SÓ ENLAPOSICIØNDELNODOAHAYUNPUNTEROALALISTAFORMADAPORLOS VÏRTICESBYC AMBOSADYACENTESDESDEA
/BTENCIØNDECAMINOSDENTRODEUNADIGRÉlCA !LBUSCARUNAESTRUCTURADEDATOSQUESEAJUSTEALASCARACTERÓSTICASDEUNPROBLEMA SE BUSCATAMBIÏNQUESOBREDICHAESTRUCTURASEPUEDANREALIZAROPERACIONESQUEFACILITEN ELMANEJODELAINFORMACIØNALMACENADAENELLA0ARAELCASODELASGRÈlCASDIRIGIDAS GENERALMENTERESULTADEINTERÏSENCONTRARLOSCAMINOS DIRECTOSOINDIRECTOS ENTRESUS VÏRTICES!SUVEZ ALTRABAJARCONDIGRÈlCASETIQUETADASSEREQUIEREENCONTRARELCAMINO MÈSCORTOENTREDOSVÏRTICESDADOSOENTRETODOSSUSVÏRTICES%SDECIR INTERESANAQUELLOS CAMINOSQUENOSPERMITANLLEGARDESDEUNVÏRTICEORIGENAUNVÏRTICEDESTINORECORRIENDO LAMENORDISTANCIAOCONELMENORCOSTO,OSALGORITMOSMÈSUSADOSPARAESTElNSON $IJKSTRA &LOYD Y 7ARSHALL ,OS TRES ALGORITMOS UTILIZAN UNA MATRIZ DE ADYACENCIA ETIQUETADA DONDE -;I J=SIIJ -;I J=∞SINOEXISTEUNCAMINODEIAJ DONDEI≠J -;I J=COSTODEIRDELVÏRTICEIALVÏRTICEJ SIEXISTEAI J !PARTIRDEESTEPUNTO ALAMATRIZDEADYACENCIAETIQUETADALALLAMAREMOSMATRIZ DEDISTANCIASOMATRIZDECOSTOS%NLASSIGUIENTESSECCIONESSEPRESENTARÈNLOSALGO RITMOSMENCIONADOS
!LGORITMODE$IJKSTRA %LALGORITMODE$IJKSTRAENCUENTRAELCAMINOMÈSCORTODEUNVÏRTICEELEGIDOACUAL QUIEROTROVÏRTICEDELADIGRÈlCA DONDELALONGITUDDEUNCAMINOESLASUMADELOSPESOS DELASARISTASQUELOFORMAN,ASARISTASDEBENTENERUNPESONONEGATIVO 5NAPOSIBLEAPLICACIØNDEESTEALGORITMOSEPRESENTACUANDOSEDESEAENCONTRARLA RUTAMÈSCORTAENTREDOSCIUDADESCADAVÏRTICEREPRESENTAUNACIUDADYELPESODELAS ARISTASINDICALADURACIØNDELOSVUELOS !CONTINUACIØNSEDESCRIBENLOSPRINCIPALESELEMENTOSQUESECONSIDERANCUANDOSE APLICAELALGORITMO ◗ ◗
3ESUNARREGLOFORMADOPORLOSVÏRTICESDELOSCUALESYACONOCEMOSLADISTANCIA MÓNIMAENTREELLOSYELORIGEN%STEARREGLO INICIALMENTE SØLOALMACENAALNODO ORIGEN $ESUNARREGLOFORMADOPORLADISTANCIADELVÏRTICEORIGENACADAUNODELOSOTROS %SDECIR $;I=ALMACENALAMENORDISTANCIA OCOSTO ENTREELORIGENYELVÏRTICEI! ESTECAMINOSELECONOCECOMOESPECIAL%STEARREGLOSEFORMAENCADAPASODELAL GORITMO!LTERMINARELALGORITMO $CONTENDRÈLADISTANCIAMÓNIMAENTREELORIGEN YCADAUNODELOSOTROSVÏRTICESDELAGRÈlCA
286 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 ◗
-ESUNAMATRIZDEDISTANCIASDEN§NELEMENTOS TALQUE-;I J=ALMACENALADISTAN CIAOCOSTOENTRELOSVÏRTICESIYJ SIENTREAMBOSEXISTEUNAARISTA%NCASOCONTRARIO -;I J=SERÈUNVALORMUYGRANDE∞ %LALGORITMODE$IJKSTRAESELSIGUIENTE
!LGORITMO $IJKSTRA $IJKSTRA. [%STEALGORITMOENCUENTRALADISTANCIAMÓNIMAENTREUNVÏRTICEORIGENYCADAUNODELOSOTROS VÏRTICES DE UNA GRÈlCA DIRIGIDA 3E CONSIDERA AL VÏRTICE COMO EL VÏRTICE ORIGEN . ES EL NÞMERODEVÏRTICESDELAGRÈlCADIRIGIDA3Y$SONARREGLOSDE.ELEMENTOSY-ESUNAMATRIZ DE.§.ELEMENTOS SEGÞNLODESCRITOANTERIORMENTE] !GREGARELVÏRTICEA3 2EPETIRCONIDESDEHASTA. %LEGIRUNVÏRTICEVEN6n3 TALQUE$;V=SEAELMÓNIMOVALOR !GREGARVA3 2EPETIRPARACADAVÏRTICEWEN6n3 (ACER$;W=←MÓNIMO$;W= $;V=-;V W= [&INDELCICLODELPASO] [&INDELCICLODELPASO]
$ADAUNAGRÈlCA'6 ! DONDE6ESTÈFORMADOPORNVÏRTICES SISEUSAUNA MATRIZDEDISTANCIASPARAREPRESENTARLA CADACICLOTOMAUNTIEMPODE/N YSONEJECU TADOSNnVECESPORLOTANTO ELALGORITMOESDELORDENDE/N 3I!ESMENORQUEN ENTONCESESMÈSElCIENTEUSARUNALISTADEADYACENCIAPARAREPRESENTARLADIGRÈlCA%N ESTECASOELTIEMPODERECORRIDOSERÈDELORDENDE/LOGN YELDELOSCICLOSSERÈDEL ORDENDE/!LOGN
%JEMPLO
!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE$IJKSTRAPARAEN CONTRARELCAMINOMÈSCORTODESDEUNODELOSVÏRTICESACUALQUIERADELOSOTROSVÏRTICES DEUNAGRÈlCADIRIGIDA FORMADAPORCINCOVÏRTICES. %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOPARALADIGRÈlCADELAlGU RA,APRIMERACOLUMNAESPARA3 ARREGLOENELCUALSEALMACENAENCADAPASODEL ALGORITMOELVÏRTICESELECCIONADO,ASCOLUMNASETIQUETADASCON$;A= $;B= $;E=SE UTILIZANPARAMOSTRARELVALORMÓNIMODELCAMINOENCONTRADOENTREELVÏRTICEORIGENY
4!",! !PLICACIØNDELALGORITMO DE$IJKSTRA
3
$;A=
$;B=
$;C=
$;D=
$;E=
#OMENTARIO
[A]
∞
∞
%STADOINICIAL
[A B]
3EENCONTRØA B DYA B E
[A B E]
3EENCONTRØA B E D
[A B E D]
.OHAYCAMBIOS
[A B E D C]
%STADOlNALA B E D C
(3Ç'*$"4%*3*(*%"4
287
&)'52! %JEMPLODEAPLICACIØNDEL ALGORITMODE$IJKSTRA A $IGRÉlCAB -ATRIZDE DISTANCIASDELADIGRÉlCA
LOSVÏRTICESA B E RESPECTIVAMENTE0ORÞLTIMO SETIENEUNACOLUMNAENLACUALSE COMENTACADAPASODELALGORITMO ◗ ◗ ◗ ◗
%JEMPLO
3EELIGIØELVÏRTICEACOMOVÏRTICEORIGEN 5NAVEZQUEELVÏRTICEELEGIDOSEAGREGAA3 SUVALORCORRESPONDIENTEEN$NOCAM BIA ,OSVALORESlNALESDE$INDICANLADISTANCIAMÓNIMAENTREELVÏRTICEORIGENYCADAUNO DELOSOTROSVÏRTICES0OREJEMPLO $;D=REPRESENTAELCOSTODEIRDELVÏRTICEAALD PASANDOPORBYE$;E=ESELCOSTODEIRDELVÏRTICEAALEPASANDOPORB ,ASOMBRASEUTILIZAPARAINDICAR ENCADAPASO CUÈLESELMÓNIMOVALOREN$ LOQUE IMPLICALAELECCIØNDELVÏRTICECORRESPONDIENTEPARASERINCLUIDOEN3
%NLAlGURASEPRESENTAOTROEJEMPLODEAPLICACIØNDELALGORITMODE$IJKSTRAPARA ENCONTRARELCAMINOMÈSCORTODESDEUNODELOSVÏRTICESACUALQUIERADELOSOTROSVÏRTI CESDEUNAGRÈlCADIRIGIDA CON.
288 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 4!",! !PLICACIØNDELALGORITMODE$IJKSTRA
3
$;A=
$;B=
$;C=
$;D=
$;E=
$;F=
$;G=
$;H=
#OMENTARIO
[A]
∞
∞
∞
∞
∞
%STADOINICIAL
[A B]
∞
∞
∞
3EENCONTRØA B CYA B E
[A B D]
∞
∞
3EENCONTRØA B D G
[A B D C]
∞
3EENCONTRØA B C F
[A B D C G]
3EENCONTRØA D G H
[A B D C G E]
3EENCONTRØA B E FYA B E H
[A B D C G E H]
.OHAYCAMBIO
[A B D C G E H F]
%STADOlNAL
%NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOPARALADIGRÈlCADELAlGURA ,APRIMERACOLUMNAESPARA3 ARREGLOENELCUALSEALMACENAENCADAPASODEL ALGORITMOELVÏRTICESELECCIONADO,ASCOLUMNASETIQUETADASCON$;A= $;B= $;H=SE UTILIZANPARAMOSTRARELVALORMÓNIMODELCAMINOENCONTRADOENTREELVÏRTICEORIGENY CADAUNODELOSOTROSVÏRTICES0ORÞLTIMO SETIENEUNACOLUMNAENLACUALSECOMENTA CADAPASODELALGORITMO ◗ ◗ ◗ ◗
3EELIGIØELVÏRTICEACOMOORIGEN 5NAVEZQUEELVÏRTICEELEGIDOSEAGREGAA3 SUVALORCORRESPONDIENTEEN$NOCAM BIA ,OSVALORESlNALESDE$INDICANLADISTANCIAMÓNIMAENTREELVÏRTICEORIGENYCADA UNODELOSOTROSVÏRTICES0OREJEMPLO $;F=REPRESENTAELCOSTODEIRDELVÏRTICE AALVÏRTICEF PASANDOPORLOSVÏRTICESBYE ,ASOMBRASEUTILIZAPARAINDICAR ENCADAPASO CUÈLESELMÓNIMOVALOREN$ LOQUE IMPLICALAELECCIØNDELVÏRTICECORRESPONDIENTEPARASERINCLUIDOEN3
!LGORITMODE&LOYD %L ALGORITMO DE &LOYD ENCUENTRA EL CAMINO MÈS CORTO ENTRE TODOS LOS VÏRTICES DE LA DIGRÈlCA3EALAGRÈlCADIRIGIDA'6 ! DONDECADAARCOU→VTIENEASOCIADOUN PESO %L ALGORITMO DE &LOYD PERMITIRÈ ENCONTRAR EL CAMINO MÈS CORTO ENTRE CADA PAR ORDENADOUYV ,AMATRIZDEDISTANCIASSIRVECOMOPUNTODEPARTIDAPARAESTEALGORITMO3EREALIZAN KITERACIONESSOBRELAMATRIZBUSCANDOELCAMINOMÈSCORTOPORLOTANTO ENLAK ÏSIMA ITERACIØN -;I J=TENDRÈELCAMINODEMENORCOSTOPARALLEGARDEIAJ PASANDOPORUN NÞMERODEVÏRTICESMENORAK ELCUALSECALCULARÈSEGÞNLASIGUIENTEEXPRESIØN
(3Ç'*$"4%*3*(*%"4
289
- K ; I J = « - K ; I J = MÓN ¬ ® - K ; I K = - K ; K J = 3EELEGIRÈELCAMINOMÈSCORTOENTREELVALOROBTENIDOENLAITERACIØNKn YEL QUERESULTADEPASARPORELVÏRTICEK%NELALGORITMOSEUSALAMATRIZDECOSTOS - DONDE -;I J=SERÈIGUALALCOSTODEIRDEIAJ AUNVALORMUYGRANDE∞ SINOEXISTECAMINO DEIAJ OACEROSIIJ !LGORITMO &LOYD
&LOYD. [%STEALGORITMOENCUENTRALADISTANCIAMÓNIMAENTRETODOSLOSVÏRTICESDELAGRÈlCADIRIGIDA. ESELNÞMERODEVÏRTICESDELAGRÈlCADIRIGIDA-ESUNAMATRIZDE..ELEMENTOS YSEINICIA CONLOSCOSTOSDELADIGRÈlCAK I JSONVARIABLESENTERAS] 2EPETIRCON+DESDEHASTA. 2EPETIRCON)DESDEHASTA. 2EPETIRCON*DESDEHASTA. 3I-)+-+*-)* ENTONCES (ACER-)*←-)+-+* [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
0ARATODOVÏRTICEDELADIGRÈlCASEPRUEBASIELCAMINOMÈSCORTO PARAIRDESDE DICHOVÏRTICEALOSOTROS ESATRAVÏSDEUNVÏRTICEINTERMEDIOK%NCASOAlRMATIVO EL COSTOQUETIENEASOCIADOSEREEMPLAZAPORLASUMADELOSCOSTOSDEIRDELVÏRTICEORIGEN ALINTERMEDIOYDELINTERMEDIOALDESTINO%NOTROCASO ELVALORDE-;I J=NOSEMODIlCA 5NAVEZPROBADOSTODOSLOSVÏRTICESDELADIGRÈlCACOMONODOSINTERMEDIOS LAMATRIZ RESULTANTE ALMACENA LA MENOR DISTANCIA ENTRE CADA PAR DE NODOS ,A COMPLEJIDAD DEL ALGORITMOESDELORDENDE/. YAQUESEUTILIZANTRESCICLOSANIDADOSDEORDEN.
%JEMPLO
!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE&LOYDPARAEN CONTRARLAMÓNIMADISTANCIAENTRETODOSLOSVÏRTICESDEUNAGRÈlCADIRIGIDA,AMATRIZ DEDISTANCIASESLACORRESPONDIENTEALADIGRÈlCADELEJEMPLO%NLAlGURASE PRESENTANLOSDIFERENTESESTADOSDELAMATRIZDEDISTANCIASDELADIGRÈlCADADA OBTENIDOS APARTIRDELAAPLICACIØNDELALGORITMO!SÓ LAMATRIZMOSTRADAENELINCISOA ESLAMATRIZ DEDISTANCIASDELADIGRÈlCADADAESTADOINICIAL,AMATRIZDECOSTOSMOSTRADAENEL INCISOB ESLAOBTENIDAUSANDOELVÏRTICEBCOMOVÏRTICEINTERMEDIO%NESEPASO + SEENCONTRARONLOSSIGUIENTESCAMINOSA B DCONDISTANCIAIGUALA A B ECON DISTANCIAIGUALA YC B ECONDISTANCIAIGUALA ,AlGURADEC CORRESPONDEALA
290 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 MATRIZDEDISTANCIAS RESULTADODEUSARELVÏRTICECCOMOVÏRTICEINTERMEDIO%NESEPASO + SEENCONTRØELSIGUIENTECAMINOE C BCONDISTANCIAIGUALA &INALMENTE LA lGURAPRESENTADAENELINCISOD MUESTRALAMATRIZOBTENIDADEDISTANCIASMEDIANTEEL VÏRTICEECOMOVÏRTICEINTERMEDIO0ARA+SEENCONTRARONLOSSIGUIENTESCAMINOSA E DCONDISTANCIAIGUALA B E CCONDISTANCIAIGUALA YB E DCONDISTANCIAIGUAL A %LESTADOlNALDEESTAMATRIZALMACENALASDISTANCIASMÓNIMASENTRECADAUNODE LOSVÏRTICESDELADIGRÈlCADADA 3IADEMÈSDEOBTENERLAMENORDISTANCIAENTRETODOSLOSVÏRTICESDELAGRÈlCADIRIGI DASEREQUIERECONOCERLATRAYECTORIAENCONTRADAPARACADAVÏRTICE SEDEBERÈIRGUARDAN DODICHATRAYECTORIALOSVÏRTICESINTERMEDIOS%STAVARIANTEDELALGORITMODE&LOYD UTILIZAUNARREGLOAUXILIAR4 DE..ELEMENTOS DONDE4;I J=SERÈIGUALAKSIKESUN NODOINTERMEDIOENTREIYJ
&)'52! %JEMPLODEAPLICACIØNDELALGORITMODE&LOYD
(3Ç'*$"4%*3*(*%"4
291
!LGORITMO &LOYD?GUARDA?VÏRTICES
&LOYD?GUARDA?VÏRTICES. [%STEALGORITMOENCUENTRALADISTANCIAMÓNIMAENTRETODOSLOSVÏRTICESDELAGRÈlCADIRIGIDA !DEMÈS ALMACENAELCONJUNTODENODOSINTERMEDIOSQUEFORMANLASTRAYECTORIASENCONTRADAS .ESELNÞMERODEVÏRTICESDELAGRÈlCADIRIGIDA-ESUNAMATRIZDE..ELEMENTOS YSE INICIACONLOSCOSTOSDELADIGRÈlCA4ESUNAMATRIZDE..ELEMENTOS YALMACENARÈENCADA ELEMENTOI JELVÏRTICEINTERMEDIOUSADOPARAIRDEIAJ+ ) *SONVARIABLESENTERAS] 2EPETIRCON+DESDEHASTA. 2EPETIRCON)DESDEHASTA. 2EPETIRCON*DESDEHASTA. 3I-)+-+*-IJ ENTONCES (ACER-)*←-)+-+*Y4)*←+ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
%JEMPLO
!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE&LOYD?GUARDA? VÏRTICES#OMORESULTADOSEOBTIENEUNAMATRIZCONLASDISTANCIASMÓNIMASENTRETODOS LOSVÏRTICESDEUNAGRÈlCADIRIGIDAYLOSVÏRTICESINTERMEDIOSUTILIZADOSPARAALCANZAR ESASDISTANCIAS,AMATRIZDEDISTANCIASESLACORRESPONDIENTEALADIGRÈlCADELEJEMPLO #ONRESPECTOALAOBTENCIØNDELAMATRIZDEDISTANCIASMÓNIMAS ELALGORITMOGENERA UNAMATRIZIGUALALAPRESENTADAENLAlGURA DONDESEOBSERVACØMOSEVANASIG NANDOVALORESALAMATRIZ4 AMEDIDAQUESEVANENCONTRANDOVÏRTICESINTERMEDIOSQUE REDUCENLADISTANCIAENTREDOSVÏRTICES %NELINCISOA SEMUESTRAELESTADOINICIALDE4%NESTECASOSEASIGNØUN ACADA COMPONENTEDELARREGLO%NLAlGURADELINCISOB SEPRESENTAELARREGLOUNAVEZREGIS TRADOBPARA+ COMOVÏRTICEINTERMEDIOENTREAYD AYE CYE%NC SEPUEDE OBSERVAR4LUEGODEENCONTRARALNODOCPARA+ COMOINTERMEDIOENTREEYB0OR ÞLTIMO SELLEGAALESTADOlNALDE4 INCISOD LUEGODEENCONTRARAEPARA+ COMO VÏRTICEINTERMEDIOENTRELOSVÏRTICESAYD BYC BYD
292 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! %JEMPLODEAPLICACIØN DELALGORITMO &LOYD?GUARDA?VÏRTICES°
!LGORITMODE7ARSHALL %LALGORITMODE7ARSHALLENCUENTRA SIESPOSIBLE UNCAMINOENTRECADAUNODELOSVÏR TICESDELAGRÈlCADIRIGIDA%SDECIR LASOLUCIØNENCONTRADAPORELALGORITMONOPRESENTA LASDISTANCIASENTRELOSVÏRTICES SØLOMUESTRASIHAYONOCAMINOENTREELLOS %LALGORITMODE7ARSHALLSEBASAENUNCONCEPTOLLAMADOCERRADURATRANSITIVADE LAMATRIZDEADYACENCIA3EALAGRÈlCADIRIGIDA'6 ! YSUMATRIZDEADYACENCIA- DONDE-;I J=SIHAYUNARCODEIAJ YSINOLOHAY,ACERRADURATRANSITIVADE-ES LAMATRIZ#TALQUE#;I J=SIHAYUNCAMINODELONGITUDMAYOROIGUALQUEDEIAJ OENOTROCASO0ARAGENERARLAMATRIZ#SEESTABLECEQUEEXISTEUNCAMINODELVÏRTICE IALJQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEKSI A 9AEXISTEUNCAMINODEIAJQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEK n B (AYUNCAMINODEIAKQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEKn Y HAYUNCAMINODEKAJQUENOPASAPORUNNÞMERODEVÏRTICESMAYORQUEKn
(3Ç'*$"4/0%*3*(*%"4
293
!LGORITMO 7ARSHALL 7ARSHALL. [%STEALGORITMOENCUENTRA SIESPOSIBLE UNCAMINODELONGITUDMAYOROIGUALAUNOENTRECADA UNODELOSVÏRTICESDELAGRÈlCADIRIGIDA.ESELNÞMERODEVÏRTICESDELADIGRÈlCA#ESUNA MATRIZDE..ELEMENTOS)NICIALMENTEESIGUALA-!LTERMINARELALGORITMOCONTENDRÈLA CERRADURATRANSITIVADE- K ) *SONVARIABLESENTERAS] 2EPETIRCON+DESDEHASTA. 2EPETIRCON)DESDEHASTA. 2EPETIRCON*DESDEHASTA. 3I!;) *= ENTONCES !;) *=←!;) +=Y!;+ *= [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
%JEMPLO
3EPRESENTAUNEJEMPLODEAPLICACIØNDELALGORITMODE7ARSHALLPARADETERMINARSIEXISTE ONOUNCAMINOENTRETODOSLOSVÏRTICESDEUNAGRÈlCADIRIGIDA3ETOMALADIGRÈlCADEL EJEMPLOLAMATRIZ# QUECONTENDRÈLACERRADURATRANSITIVAALlNALIZARELALGORITMO SEINICIACONLOSVALORESDELAMATRIZDEADYACENCIACORRESPONDIENTE %NLAlGURASEPRESENTANLOSDIFERENTESESTADOSDE# OBTENIDOSAPARTIRDELA APLICACIØNDELALGORITMO%NLAlGURADELINCISOA SEMUESTRAELESTADOINICIALDELAMATRIZ 0ORSUPARTE ENB SEPRESENTALACORRESPONDIENTEALAMATRIZ# RESULTADODEUSARELVÏR TICEBCOMOVÏRTICEINTERMEDIO3EENCONTRARONLOSSIGUIENTESCAMINOSA B D A B EY C B E,AlGURADELINCISOC CORRESPONDEALAMATRIZ#OBTENIDAPORMEDIODELVÏRTICEC COMOVÏRTICEINTERMEDIO3EFORMARONLOSCAMINOSE C BYE C E&INALMENTE END SE PRESENTAALAMATRIZ#LUEGODEUSARELVÏRTICEECOMOVÏRTICEINTERMEDIO3EOBTUVIERON LOSCAMINOSA E A B E B B E CYC E C
'2&)#!3./$)2)')$!3 %NESTASECCIØNSEPRESENTARÈELCONCEPTODEGRÈlCASNODIRIGIDASOSIMPLEMENTEGRÈ lCAS CUYACARACTERÓSTICAPRINCIPALESQUESUSARISTASSONPARESNOORDENADOSDEVÏRTICES %SDECIR SIEXISTEUNCAMINODELVÏRTICEIALJ SERÈEXACTAMENTEELMISMOCAMINODEL VÏRTICEJALI %STASGRÈlCASSEUTILIZANPARAMODELARRELACIONESSIMÏTRICASENTREDIFERENTESOBJE TOS QUESEREPRESENTANPORMEDIODELOSVÏRTICES MIENTRASQUELASARISTASSEUSANPARA INDICARLASRELACIONESENTREELLOS0OREJEMPLO ELCOSTODEUNBOLETODEAVIØNPARAIRDE LACIUDADDE-ÏXICOA'UADALAJARASERÈELMISMOENCUALQUIERADELASDIRECCIONESQUE SEREALICEELVIAJE
294 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4
&)'52! %JEMPLODEAPLICACIØNDELALGORITMODE7ARSHALL
5NAGRÈlCANODIRIGIDA'6 ! CONSTADEUNCONJUNTOlNITODEVÏRTICES6YDE OTROlNITODEARISTAS!3EDIFERENCIADEUNAGRÈlCADIRIGIDAENQUECADAARISTAEN!ESUN PARNOORDENADODEVÏRTICES3IU V ESUNAARISTANODIRIGIDA ENTONCESU V V U
2EPRESENTACIØNDEGRÉlCASNODIRIGIDAS ,ASGRÈlCASNODIRIGIDASSONESTRUCTURASDEDATOSABSTRACTASPORLOTANTO SEDEBENAPO YARENOTRASESTRUCTURASPARASUREPRESENTACIØNENMEMORIA,ASDOSREPRESENTACIONES MÈSUTILIZADASSONMATRIZDEADYACENCIAYLISTADEADYACENCIA AMBASEXPLICADASEN LASECCIØNCORRESPONDIENTEALASGRÈlCASDIRIGIDAS #ONSIDERANDO LA SIMETRÓA DE LAS RELACIONES ENTRE LOS ELEMENTOS DE LA GRÈlCA SE REQUIERECAMBIARCADAARISTANODIRIGIDAENTREUYVPORDOSARISTASDIRIGIDAS UNADEU AVYOTRADEVAUPORLOTANTO LAMATRIZDEADYACENCIARESULTARÈUNAMATRIZSIMÏTRICA YENLALISTADEADYACENCIAELVÏRTICEUESTARÈENLALISTADEADYACENCIADELVÏRTICEV Y VICEVERSA %NLAlGURAASEPUEDEOBSERVARUNEJEMPLODEUNAGRÈlCAYENB SUREPRESEN TACIØNPORMEDIODEUNAMATRIZDEADYACENCIA%NLAMATRIZSEHASOMBREADOLADIAGONAL
(3Ç'*$"4/0%*3*(*%"4
295
&)'52! 'RÉlCAYSUREPRESENTACIØN PORMEDIODEUNAMATRIZDE ADYACENCIA°
&)'52! 2EPRESENTACIØNDEUNA GRÉlCAPORMEDIODEUNA LISTADEADYACENCIA°
PRINCIPALPARAILUSTRARMÈSCLARAMENTELASIMETRÓA%SDECIR LAMATRIZTRIANGULARINFERIOR ESIGUALALAMATRIZTRIANGULARSUPERIOR %NLAlGURASEMUESTRALAREPRESENTACIØNDELAGRÈlCADELAlGURAAPOR MEDIODEUNALISTADEADYACENCIA
#ONSTRUCCIØNDELÉRBOLABARCADORDECOSTOMÓNIMO 3EA'6 ! UNAGRÈlCACONEXA ESDECIR UNAGRÈlCAENLACUALEXISTEUNCAMINO SIMPLEENTRECUALESQUIERADOSDESUSVÏRTICES!DEMÈS CADAARISTAU V TIENEASOCIADO UNPESOOCOSTO CU V #ONSIDERANDOLOANTERIOR UNÈRBOLABARCADORDEUNAGRÈlCA'SEDElNECOMOUN ÈRBOLLIBREQUECONECTATODOSLOSVÏRTICESDE6%LCOSTODELÈRBOLABARCADORRESULTADELA SUMADELASARISTASINCLUIDASENÏL0ORLOTANTO UNÈRBOLABARCADORDECOSTOMÓNIMO SEFORMAAPARTIRDELASARISTASDEMENORCOSTO
296 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 5NAAPLICACIØNTÓPICADEÈRBOLESABARCADORESDECOSTOMÓNIMOESELDISE×ODEREDES DECOMUNICACIØN0OREJEMPLO LOSVÏRTICESDELAGRÈlCAPUEDENREPRESENTARCIUDADES Y LASARISTASPOSIBLESCANALESDECOMUNICACIØNENTREELLAS%LCOSTOASOCIADOACADAARISTA REPRESENTAELCOSTODECOMUNICARUNACIUDADCONOTRAENTIEMPO DINERO MEDIOS ETC 0ORLOTANTO ELÈRBOLABARCADORREPRESENTARÈLAREDDECOMUNICACIØNQUECONECTAATODAS LASCIUDADESAUNCOSTOMÓNIMO ,OSÈRBOLESABARCADORESDECOSTOMÓNIMOGOZANDEUNAPROPIEDADQUESIRVECOMO BASEPARATODOSLOSALGORITMOSUTILIZADOSPARASUCONSTRUCCIØN%STAPROPIEDADESTABLECE QUESI'6 ! ESUNAGRÈlCACONEXA 5ESUNSUBCONJUNTOPROPIODELCONJUNTODEVÏR TICES6 YU V ESUNAARISTADECOSTOMÓNIMOTALQUEU∈5YV∈6 5 ENTONCESEXISTE UNÈRBOLABARCADORDECOSTOMÓNIMOQUEINCLUYEAU V ENTRESUSARISTAS %N LAS SIGUIENTES SECCIONES SE PRESENTARÈN LOS ALGORITMOS DE 0RIM Y DE +RUSKAL UTILIZADOSPARAOBTENERELÈRBOLABARCADORDEUNAGRÈlCA
!LGORITMODE0RIM %LALGORITMODE0RIMPERMITEENCONTRARELÈRBOLABARCADORDECOSTOMÓNIMODEUNA GRÈlCA0ARAELLOUTILIZADOSCONJUNTOS6 CONJUNTODETODOSLOSVÏRTICES Y5 CONJUNTO AUXILIARINICIADOCONELPRIMERVÏRTICE%NCADAITERACIØNDELALGORITMOSEBUSCALAARISTA U V QUECONECTE5CONLASUBGRÈlCA6 5,UEGOSEAGREGAELNODOV PERTENECIENTEA 6 5 A5%STEPROCESOSEREPITEHASTAQUE56 #ONSIDERANDOELRECORRIDOQUESEDEBEHACERENLAGRÈlCA ELTIEMPODEEJECUCIØN SERÈDELORDENDE/N SISEUSAUNAMATRIZDEADYACENCIAPARAREPRESENTARLA%NCAM BIO SILAGRÈlCAFUEREPRESENTADAPORMEDIODEUNALISTADEADYACENCIA LACOMPLEJIDAD DELALGORITMOSERÈDELORDENDE/! LOGN DONDE!ESELNÞMERODEARISTAS !NTESDEPRESENTARELALGORITMO RESULTACONVENIENTEEXPLICARLOSELEMENTOSQUESE USARÈNENÏL ◗ ◗ ◗
6ESELCONJUNTODEVÏRTICESDE'6[ N]3EUSANLOSNÞMEROSENTEROSDEL ENADELANTEPARAIDENTIlCARLOSVÏRTICES3INEMBARGO ENCADAAPLICACIØNSEPODRÈ USARLAMANERAQUESECONSIDEREMÈSADECUADA 5ESUNSUBCONJUNTOPROPIODELCONJUNTO6 SIENDOSUVALORINICIALELDELPRIMER VÏRTICE0ARANUESTRAIMPLEMENTACIØN5[] ,ESUNALISTADEARISTASQUESEVAFORMANDOCONLASARISTASDEMENORCOSTOQUESE VANSELECCIONANDO)NICIALMENTE,ESTÈVACÓA,∅
!LGORITMO 0RIM
0RIM. [%STEALGORITMOENCUENTRAELÈRBOLABARCADORDECOSTOMÓNIMODEUNAGRÈlCA'DE.VÏRTICES 5 6Y,SONESTRUCTURASDEDATOSARREGLOSOLISTASQUEPERMITENGUARDARLOSNOMBRESDE LOSVÏRTICESYLASARISTASSELECCIONADAS]
(3Ç'*$"4/0%*3*(*%"4
297
-IENTRAS6≠5 2EPETIR %LEGIRUNAARISTAU V ∈!' TALQUESUCOSTOSEAMÓNIMO SIENDOU∈5YV∈ 6n5 !GREGARLAARISTAU V A, !GREGARELNODOVA5 [&INDELCICLODELPASO]
%JEMPLO
!CONTINUACIØNSEPRESENTAUNEJEMPLODEUSODELALGORITMODE0RIMPARAENCONTRAREL ÈRBOLABARCADORDECOSTOMÓNIMODEUNAGRÈlCA%LALGORITMOSEAPLICAALAGRÈlCADELA lGURA OBTENIENDOCOMORESULTADOELÈRBOLQUESEMUESTRAENLAlGURA %LSEGUIMIENTODELALGORITMOSEPRESENTAENLATABLA %NLAPRIMERAITERACIØNSEELIGELAARISTA PORSERLADEMENORCOSTO ENESTE CASOIGUALA%LVÏRTICESEAGREGAALCONJUNTO5%NLASIGUIENTEITERACIØNSEELIGELA ARISTA CONUNCOSTODEYELVÏRTICEPASAAFORMARPARTEDE5!SÓSESIGUEHASTA ALCANZARLACONDICIØNlNALDE65 YCONSECUENTEMENTETERMINAELPROCESO
&)'52! %JEMPLODEAPLICACIØNDEL ALGORITMODE0RIM
4!",! !PLICACIØNDELALGORITMODE0RIM
)TERACIØN
5
U V
#OSTO
V
,
5ACTUALIZADO
[]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
[ ]
298 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! RBOLABARCADORDECOSTO MÓNIMO OBTENIDOAPLICAN DOELALGORITMODE0RIM
!LGORITMODE+RUSKAL %LALGORITMODE+RUSKAL ALIGUALQUEELDE0RIM PERMITEENCONTRARELÈRBOLABARCADOR DECOSTOMÓNIMODEUNAGRÈlCA,ACONSTRUCCIØNDELÈRBOLABARCADORDECOSTOMÓNIMO SELLEVAACABOSELECCIONANDOLAARISTADEMENORCOSTOYAGREGÈNDOLAALÈRBOLABARCADOR 0ARAELLOSEUTILIZAUNPROCESORELATIVAMENTESENCILLO 0RIMERO SEDEBEGENERARUNASERIEDEPARTICIONESAPARTIRDELCONJUNTODEVÏRTICES6 )NICIALMENTE LASPARTICIONESTIENENTAMA×OUNO%SDECIR 0[[6] [6] [6] [6N]] DONDE0INDICALAPARTICIØNINICIAL YCADA[6I]ESUNAPARTICIØNFORMADAPORELVÏRTICEI !PARTIRDEESTEPASOSEBUSCALAARISTADEMENORCOSTO YSIÏSTAUNEDOSVÏRTICESQUE PERTENECENAPARTICIONESDIFERENTES DICHASPARTICIONESSEREEMPLAZANPORSUUNIØN0ARA ELCASOCONTRARIO LAARISTANOFORMAPARTEDELÈRBOLABARCADORDECOSTOMÓNIMO YAQUE PRODUCIRÓAUNCICLO3ECONTINÞAELIGIENDOLAARISTAU V DEMENORCOSTOYUNIENDOLAS PARTICIONESALASCUALESPERTENECENUYV RESPECTIVAMENTE HASTAQUESETENGAUNASOLA PARTICIØNFORMADAPORTODOSLOSVÏRTICESDELAGRÈlCA%SDECIR 0K[6 6 6 6N] DONDE 0K ES LA PARTICIØN lNAL LUEGO DE K ITERACIONES LA CUAL ESTÈ FORMADA POR LOS . VÏRTICESDE' %STEALGORITMOREQUIERE ENELPEORDELOSCASOS UNTIEMPODE/! LOG! DONDE !ESELNÞMERODEARISTASDELAGRÈlCA3I!ESMENORQUEN ENTONCESELALGORITMODE +RUSKALESMÈSElCIENTEQUEELDE0RIM3I!TIENEUNVALORCERCANOAN ENTONCESES MÈSCONVENIENTEUSARELDE0RIM %LALGORITMOUTILIZAALGUNOSELEMENTOSAUXILIARES!CONTINUACIØNSEDESCRIBENLOS MISMOS ◗ ◗
,ESUNCONJUNTOFORMADOPORLASARISTASYSUSRESPECTIVOSCOSTOS 0REPRESENTALASPARTICIONESGENERADASAPARTIRDE6)NICIALMENTE0[[] [] [N]]
(3Ç'*$"4/0%*3*(*%"4
299
0ARAESTOSDOSELEMENTOS,Y0SEPUEDENUSARARREGLOSOLISTASPARASUREPRE SENTACIØNENMEMORIA !LGORITMO +RUSKAL
+RUSKAL. [%STEALGORITMOENCUENTRAELÈRBOLABARCADORDECOSTOMÓNIMODEUNAGRÈlCA'DE.VÏRTICES , Y 0 SON ESTRUCTURAS DE DATOS ARREGLOS O LISTAS QUE PERMITEN GUARDAR LAS ARISTAS Y LAS PARTICIONES RESPECTIVAMENTE] -IENTRASHAYAVÏRTICESEN0QUEPERTENEZCANAPARTICIONESDISTINTAS2EPETIR $E,SELECCIONARLAARISTAU V QUETENGAELMENORCOSTO 3IUYVSEENCUENTRANENPARTICIONESDIFERENTES ENTONCES 5NIRLASPARTICIONESALASCUALESPERTENECENUYV [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
%JEMPLO
3EPRESENTAUNEJEMPLODEUSODELALGORITMODE+RUSKALPARAENCONTRARELÈRBOLABAR CADORDECOSTOMÓNIMODEUNAGRÈlCA ELCUALSEAPLICAALAGRÈlCADELAlGURA OBTENIENDOCOMORESULTADOELÈRBOLQUESEMUESTRAENLAlGURA
&)'52! RBOLABARCADORDECOSTOMÓNIMOOBTENIDOAPLICANDOELALGORITMODE+RUSKALA 'RÉlCA INICIALENELLAAPARECENTODASLASARISTASCONSUPESOASOCIADO0ARTICIØNINICIAL0 B ,UEGODESELECCIONARLAARISTADEMENORPESO QUEUNELOSVÏRTICESY
300 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4
&)'52! CONTINUACIØN C ,UEGODESELECCIONARLASIGUIENTEARISTADEMENORPESO QUEUNELOSVÏRTICESY D ,UEGODESELECCIONARLASIGUIENTEARISTADEMENORPESO QUEUNELOSVÏRTICESY E ,UEGODESELECCIONARLASIGUIENTEARISTADEMENORPESO QUEUNELOSVÏRTICESY F RBOLABARCADORALQUESELLEGALUEGODEAPLICARELALGORITMODE+RUSKAL
3&40-6$*Î/%&130#-&."4
301
&)'52! 0UZZLE
,ALISTA,FORMADAPORLASARISTASYSUSCOSTOSU V C DONDEUYVSONVÏRTICESYC REPRESENTAELCOSTOASOCIADOADICHAARISTA ESLASIGUIENTE ,[ ] %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMO %NELPASOSEELIGELAARISTA PORQUEESLAQUETIENEASOCIADOELMENORCOSTO Y ENCONSECUENCIA SEUNENLASPARTICIONESCORRESPONDIENTESALOSVÏRTICESY,APARTICIØN RESULTANTESESOMBREA3ESIGUEDELAMISMAMANERAENLOSPASOSY%NELPASOSE ELIGELAARISTA CONUNCOSTODE YNOLAARISTA CONUNCOSTODE YAQUELOS VÏRTICESDEESTAÞLTIMANOCUMPLENCONLACONDICIØNDEPERTENECERAPARTICIONESDISTINTAS
2%3/,5#)¼.$%02/",%-!3 ,OS PROBLEMAS BÈSICAMENTE SE CLASIlCAN EN DOS GRANDES SUBGRUPOS LOS QUE CUENTAN CONUNASOLUCIØNDETERMINÓSTICAPARASUSOLUCIØN EXPRESABLEPORMEDIODEUNALGORIT MO YLOSQUEREQUIERENDEUNABÞSQUEDAPARASUSOLUCIØN,AINTELIGENCIAARTIlCIALSE PREOCUPADEESTETIPODEPROBLEMAS SINIMPORTARSISONMÈSOMENOSCOMPLEJOSQUELOS ANTERIORESDETERMINÓSTICOS
4!",! !PLICACIØNDELALGORITMO DE+RUSKAL
0ASO
!RISTAELEGIDA
#OSTO
0ARTICIONES 0[[] [] [] [] []]%STADOINICIAL
0[[ ] [] [] []]
0[[ ] [ ] []]
0[[ ] []]
0[ ]
302 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 %NLAVIDAEXISTEUNACANTIDADDEPROBLEMASQUESEPUEDENRESOLVERAPLICANDOMÏ TODOSDEBÞSQUEDA SIÏSTOSFUERONMODELADOSMEDIANTEGRÈlCAS5NODELOSPROBLEMAS MÈSESTUDIADOYUTILIZADOENELCAMPODELASOLUCIØNDEPROBLEMASESELDELPUZZLE %STEESUNJUEGOQUECONSISTEENORDENARUNCONJUNTODElCHASENUNTABLERODE.§.PO SICIONES USANDOSØLOUNLUGARLIBRE DETALMANERAQUEAQUÏLLASQUEDENENUNASECUENCIA DEA. n3EUTILIZANFRECUENTEMENTELOSJUEGOSENELÈREADERESOLUCIØNDEPROBLE MAS PORQUEPROPORCIONANUNARICAFUENTEDEEJEMPLOSPARACOMPARARYPROBARDISTINTOS MÏTODOSDEBÞSQUEDA%NLAlGURASEPRESENTAUNEJEMPLODEUNPUZZLE %NELPUZZLEEXISTEUNESTADOINICIALYOTROlNALDElNIDOS0OROTRAPARTE HAYUN CONJUNTODEMOVIMIENTOSQUEPERMITENCAMBIARDEUNACONlGURACIØNAOTRAESTOSMO VIMIENTOSSEDENOMINANOPERADORES%NLOSDIFERENTESESTADOSPARCIALESSIEMPREEXISTEN OPERADORESPROHIBIDOS ESDECIR QUENOSEPUEDENAPLICARPORQUELOSMOVIMIENTOSRE PRESENTANESTADOSILEGALES %NLAlGURASEOBSERVANTANTOLOSESTADOSINICIALYlNALDELPROBLEMAARESOL VER,ACELDAVACÓA ENESTECASO SØLOSEPUEDEINTERCAMBIARCONLASCELDASQUECONTIE NENALYAL RESPECTIVAMENTE %NELPUZZLE QUESEREPRESENTACOMOUNAMATRIZDE§ ELNÞMEROPOSIBLEDE COMBINACIONESQUESEPODRÓANGENERARES LOCUALIMPLICAQUEELPUZZLETENGA ESTADOSLEGALES § %S PRUDENTE DESTACAR QUE PARA UN ESTADO lNAL SØLO EXISTEN ESTADOS INICIALES POSIBLES,ACOMPLEJIDADDEESTEPROBLEMAESSIMILARALAQUETIENEUNCARTEROQUEDEBE DISTRIBUIRNUEVECARTASENNUEVEDIRECCIONESDIFERENTES YQUIEREENCONTRARLATRAYECTORIA ØPTIMA3IELPROBLEMAQUETUVIÏRAMOSQUERESOLVERFUERAENCAMBIOELPUZZLE QUE SE REPRESENTA EN UNA MATRIZ DE DE § LOS ESTADOS LEGALES DEL PROBLEMA SON %0OROTRAPARTE CABEMENCIONARQUEEXISTENPUZZLES QUESEREPRESENTANEN UNAMATRIZDE§ CUYONÞMERODEESTADOSLEGALESESSINEMBARGO MUCHOSDEELLOS NOSEPUEDENRESOLVER 0ARAQUEELLECTOROBSERVELACOMPLEJIDADDELPROBLEMA SEPRESENTANLASTABLAS Y DONDESEMUESTRAELTIEMPOQUESENECESITAPARAGENERARTODOSLOSESTADOSLEGALES DELPUZZLE YPUZZLE RESPECTIVAMENTE %N LA PRIMERA COLUMNA SE PRESENTA EL NÞMERO DE NODOS GENERADOS POR SEGUNDO MIENTRASQUEENLASEGUNDAESELTIEMPONECESARIOPARAPROCESARTODOSLOSNODOS%NLA TABLASEOBSERVAQUESISEPUDIERANPROCESARNODOSPORSEGUNDO SEREQUERIRÓAN SEGUNDOSPARAALCANZARLASOLUCIØNDELPROBLEMA%NCAMBIO SILACAPACIDADDE PROCESAMIENTOFUERADEDENODOSPORSEGUNDO SØLOSENECESITARÓASEGUN DOSPARALLEGARALASOLUCIØN
4!",!
.ODOSPORSEGUNDO
4IEMPODESOLUCIØN
SEGUNDOS MINUTOS
SEGUNDOS
*Õââin
3&40-6$*Î/%&130#-&."4 4!",!
.ODOSPORSEGUNDO
4IEMPODESOLUCIØN
%SEGUNDOS %MINUTOS HORAS DÓAS A×OS
SEGUNDOS MINUTOS HORAS DÓAS
303
0UZZLEDE
%NLATABLASEPRESENTANLOSRESULTADOSPARAELPUZZLE 3ILAVELOCIDADCONQUE SEGENERANLOSNODOSFUERADENODOSPORSEGUNDO ENTONCESSENECESITARÓAN A×OSPARAGENERARTODOSLOSNODOSSI ENCAMBIO LAVELOCIDADFUERADEDE NODOSPORSEGUNDO SENECESITARÓANDÓAS/BSERVEQUELOSPROBLEMASSONFÈCILMENTE ENTENDIBLES PEROLASOLUCIØNESMUYCOMPLEJA ,OSPUZZLESCONSTITUYENUNEXCELENTECAMPOPARAAPLICARYPROBARMÏTODOSDEBÞS QUEDA%LPUZZLEMÈSFRECUENTEMENTEUTILIZADOESELPUZZLE ESDECIR AQUELDEDIMEN SIØN§ DONDESEDEBENACOMODARLOSNÞMEROSAL%NLAlGURASEPRESENTA OTROEJEMPLODEPUZZLE %LPROBLEMAQUEDADElNIDOENFUNCIØNDE ◗ ◗ ◗
5NESTADOINICIALYUNESTADOlNAL 5NCONJUNTODEMOVIMIENTOSUOPERADORES PERMITIDOSPARACAMBIARDEUNACON lGURACIØNAOTRA%SDECIR UNOPERADORESTÈASOCIADOALCONCEPTODEMOVIMIENTOY ESELQUEPERMITETRANSFORMARUNESTADOENOTRO 5NCONJUNTODEOPERADORESPROHIBIDOS
0ARAELPROBLEMADELPUZZLELOSOPERADORESVÈLIDOSSEMUESTRANENLAlGURA MIENTRASQUELOSOPERADORESPROHIBIDOSSEPRESENTANENLAlGURA &)'52! %JEMPLODEUNPUZZLE
304 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52! /PERADORESVÉLIDOSPARA ELPUZZLE
&)'52! /PERADORESPROHIBIDOS PARAELPUZZLE
%NLENGUAJEDEESTADOSYOPERADORES UNASOLUCIØNALPROBLEMACONSISTEENOBTENER UNASECUENCIAAPROPIADADEOPERADORESQUEPERMITIRÈNTRANSFORMARENINICIALELESTADO lNAL ,ASOLUCIØNDEUNPROBLEMAREQUIEREDEUNORDENDEBÞSQUEDAPARASUSOLUCIØN PEROANTESDECOMENZARLABÞSQUEDAESNECESARIOMODELAROREPRESENTARELPROBLEMADE ALGUNAFORMA,ASALTERNATIVASSON ◗ ◗
%SPACIOESTADO 2EDUCCIØNDEPROBLEMAS
%NESTECAPÓTULOSØLOANALIZAREMOSLAREPRESENTACIØNESPACIOESTADOPORQUEESLA QUESERELACIONACONLASGRÈlCAS
%SPACIO ESTADO 5NPASOIMPORTANTEENLAFORMULACIØNDEUNPROBLEMAESPACIOESTADOCONSISTEENLA SELECCIØNDEUNAFORMADEREPRESENTARLOSESTADOSDELPROBLEMA,ASESTRUCTURASDEDATOS MÈSUSADASPARADESCRIBIRLOSESTADOSSONARREGLOSUNIDIMENSIONALES ARREGLOSBIDIMEN
3&40-6$*Î/%&130#-&."4
305
SIONALES LISTASLIGADAS ÈRBOLESYGRÈlCAS%NELPROBLEMADELPUZZLE UNAMATRIZDE §PARECESERLAESTRUCTURAMÈSNATURALPARAREPRESENTARLOSESTADOSDELPROBLEMA3IN EMBARGO HAYQUESERCUIDADOSOSENLAELECCIØNDELAESTRUCTURAPORDOSRAZONES ,ASOLUCIØNDEBESERCOMPUTABLE%SDECIR SEDEBEPODERDESARROLLARUNMÏTODOQUE SEPUEDAEJECUTARENUNACOMPUTADORAENUNTIEMPORAZONABLE $EBEPERMITIRALMACENARYMANIPULARLOSOPERADORESQUETRANSFORMANUNESTADOEN OTRO #ONSIDERANDOQUELAMATRIZESUNAESTRUCTURADEDATOSESTÈTICA LALISTARESULTASERLA ESTRUCTURADEDATOSMÈSADECUADAPARAREPRESENTARALPUZZLE 0ORELDINAMISMODELA MISMA SEPUEDENALMACENARFÈCILMENTELOSESTADOSYLOSOPERADORESDELPROBLEMA
-ÏTODOSDEBÞSQUEDAENESPACIO ESTADO %NELPLANTEAMIENTODEPROBLEMASESPACIOESTADO UNASOLUCIØNSEOBTIENEMEDIANTELA APLICACIØNDEOPERADORESDESDEELESTADOINICIALHASTAALCANZARELESTADOlNALOMETA%S IMPORTANTECONSIDERARLOSSIGUIENTESPUNTOS ◗ ◗ ◗ ◗
5NNODOINICIALSEASOCIACONLADESCRIPCIØNDEUNESTADOINICIAL ,OSSUCESORESDEUNNODOSECALCULANUSANDOLOSOPERADORESQUESONAPLICABLESA ESEESTADO 8ESUNOPERADORQUECALCULATODOSLOSSUCESORESDEUNNODO%LPROCESODEAPLICAR 8AUNNODOSEDENOMINAEXPANDERUNNODO 3EUTILIZANAPUNTADORESPARALIGARELNODOPADRECONSUHIJOY DEESTAMANERA PODER OBTENERLATRAYECTORIACUANDOSEENCUENTRAELESTADOMETA
,OSMÏTODOSDEBÞSQUEDASECARACTERIZANPORELORDENENELCUALSEEXPANDENLOS NODOSLOSDOSBÈSICOSMÈSAMPLIAMENTECONOCIDOSSON ◗ ◗
"READTH lRSTOBÞSQUEDAALOANCHO3EEXPANDENLOSNODOSENELORDENENQUE HANSIDOGENERADOS $EPTH lRST O BÞSQUEDA EN PROFUNDIDAD 3E EXPANDEN LOS NODOS QUE HAN SIDO GENERADOSRECIENTEMENTE
%S IMPORTANTE SE×ALAR QUE ÏSTOS SON MÏTODOS DE BÞSQUEDA ELEMENTALES PARA EN CONTRAR LAS TRAYECTORIAS PERO SON EXHAUSTIVOS PORQUE EXPANDEN DEMASIADOS NODOS Y DEBEMOSRECORDARQUESIEMPREEXISTENLÓMITES TANTODETIEMPOCOMODEESPACIO PARA ENCONTRARLASOLUCIØNDELPROBLEMA$ENTRODELÈREADERESOLUCIØNDEPROBLEMASDEIN TELIGENCIAARTIlCIALEXISTENOTROSMÏTODOSMÈSElCIENTESQUEINCORPORANCONOCIMIENTO ESTRATEGIA Y HEURÓSTICA Y PERMITEN NO SØLO ENCONTRAR UNA TRAYECTORIA SINO TAMBIÏN LA ØPTIMA
306 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4
-ÏTODODEBÞSQUEDABREADTH lRST %NELMÏTODODEBÞSQUEDABREADTH lRSTOBÞSQUEDAALOANCHOLOSNODOSSEEXPANDEN ENELORDENENELQUEHANSIDOGENERADOS3EAVANZAPORNIVELESESDECIR PRIMEROSE GENERANTODOSLOSNODOSDELPRIMERNIVEL LUEGOLOSDELSEGUNDO POSTERIORMENTELOSDEL TERCERO Y ASÓ SUCESIVAMENTE HASTA ENCONTRAR EL ESTADO META SIEMPRE QUE SEA POSIBLE ENCUANTOATIEMPOYESPACIOOCUPADOENMEMORIA%LMÏTODOTRABAJACONDOSLISTAS AUXILIARES UNALLAMADA!")%24/YLAOTRA#%22!$/,APRIMERASEUTILIZAPARA ALMACENARLOSNODOSQUEESTÈNPENDIENTESDESEREXPANDIDOSCADANUEVONODOGENERADO SECOLOCASIEMPREALlNALDE!")%24/%N#%22!$/SECOLOCANLOSNODOSQUEYAHAN SIDOEXPANDIDOS!CONTINUACIØNSEPRESENTAELALGORITMOCORRESPONDIENTE !LGORITMO "READTH lRST "READTH?lRST [%STEMÏTODOPERMITEENCONTRARLATRAYECTORIAQUEHACEPOSIBLEIRDEUNESTADOINICIALAUN ESTADOlNAL USANDOLOSOPERADORESPERMITIDOS!")%24/Y#%22!$/SONDOSLISTASLIGADAS ENLASCUALESSEALMACENANLOSNODOSPENDIENTESDESEREXPANDIDOSYLOSNODOSYAEXPANDIDOS RESPECTIVAMENTE] )NSERTARELNODOINICIALENLALISTA!")%24/ -IENTRAS!")%24/NOESTÏ6!#¶! YNOSEHAYAALCANZADOELESTADOlNAL 2EPETIR 1UITARELPRIMERNODO8DE!")%24/ 3IELNODO8NOSEENCUENTRAEN#%22!$/ ENTONCES 0ONERELNODO8ENLALISTA#%22!$/ %XPANDIRELNODO8OBTENIENDOTODOSSUSSUCESORES 3IHAYSUCESORESYNOSONELESTADOlNAL ENTONCES !LMACENARLOSALlNALDE!")%24/YPROVEERAPUNTADORESPARAREGRESARA8 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3ISEGENERØELESTADOlNAL ENTONCES[²XITO] $ESPLEGARTRAYECTORIADELESTADOINICIALALESTADOlNAL SINO[&RACASO] %SCRIBIRh.OSEALCANZØELESTADOlNALv [&INDELCONDICIONALDELPASO]
%JEMPLO
!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDABREADTH lRSTPARAENCONTRARUNATRAYECTORIAENTREDOSNODOS%LPROBLEMACONSISTEENENCONTRAR UNATRAYECTORIADE3A+ DELAGRÈlCAPRESENTADAENLAlGURA TOMANDOELORDEN ALFABÏTICOCOMOBASEPARAELORDENDEAPLICACIØNDELOSOPERADORES %NLAlGURASEOBSERVAQUEPARAESTEPROBLEMA LASOLUCIØNALCANZADAES 3 ! # % * +
3&40-6$*Î/%&130#-&."4 &)'52! "ÞSQUEDABREADTH lRST
&)'52! 4RAYECTORIAENCONTRADA 3 ! # % * +
9AFUERONEXPANDIDOS
307
308 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 LACUALSEINDICACONUNAmECHAENCOLOR%NELESTADOINICIAL 3 SEOBTIENENTODOSSUS SUCESORES LOSCUALES SEGÞNLAGRÈlCADELAlGURA SON!Y'#OMONINGUNODELOS DOSESELESTADOMETA SECONTINÞAEXPANDIENDOCADAUNODEESTOSNODOS!SÓ PARA!SE OBTIENEN" #Y' MIENTRASQUEPARA'SEGENERARON!Y(%NAMBOSCASOSSEOBTUVIE RONNODOS'Y! CONLOSQUEYASECONTABAPOREXPANSIONESANTERIORESPORLOTANTO SE IGNORAN%NLAGRÈlCA ESTOSCASOSSESE×ALANCON %NLAlGURASEOBSERVACLARAMENTE QUETODASLASRAMASDELÈRBOLCRECEN ENPROFUNDIDAD DEIGUALMANERA
%JEMPLO
!CONTINUACIØNSEPRESENTAOTROEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDABREADTH lRST PEROAHORAPARARESOLVERELPUZZLE %NESTECASOSEUSANLISTASPARAREPRESENTAR LOSNODOS
.OTA 3E UTILIZA EL EN LUGAR DEL RECTÈNGULO PARA INDICAR CELDA VACÓA SIMPLEMENTE PARA MANTENER LA HOMOGENEIDADDELOSDATOS
#ABERECORDARQUESEUSANLASLISTAS!")%24/Y#%22!$/PARAALMACENARLOS NODOSQUESEVANAEXPANDIRENALGÞNMOMENTOYLOSQUEYAHANSIDOEXPANDIDOS RES PECTIVAMENTE%STAÞLTIMALISTATAMBIÏNSEUTILIZAPARARECUPERARLATRAYECTORIADESDEEL ESTADOINICIALALESTADOMETA UNAVEZQUESEALCANZAESTAÞLTIMA4AMBIÏNESIMPORTANTE REMARCARQUECADAVEZQUESEEXPANDEUNNODOESNECESARIOVERIlCARQUESUCONTENIDO NOSEENCUENTREENLALISTA#%22!$/ PARAEVITARCAERENCICLOSINlNITOS3IEXPANDE MOSUNNODOQUEYASEENCUENTRAEN#%22!$/ ENTONCESCAEMOSENUNCICLO YADE MÈSDESERMUYDIFÓCILSALIRDEÏL ESCASIIMPOSIBLEENCONTRARLASOLUCIØNDELPROBLEMA ESTADOMETA
3&40-6$*Î/%&130#-&."4
309
,A lGURA PRESENTA LA SOLUCIØN AL PROBLEMA DEL PUZZLE ,OS OPERADORES SE APLICANSIGUIENDOLAFORMADELASMANECILLASDELRELOJIZQUIERDA ARRIBA DERECHAYABAJO ← ↑ → ↓3EPRESENTANACONTINUACIØNLASLISTAS!")%24/Y#%22!$/FORMADAS DURANTELASOLUCIØNDELPROBLEMA,ASLÓNEASHORIZONTALESSOBRELAINFORMACIØNDELOS NODOSINDICANQUEDICHONODOSEQUITØDELALISTA!")%24/#OMOSEOBSERVA ENLAS DOSLISTASSEINCORPORASOLAMENTELAINFORMACIØNDELNODOPORPROBLEMASDEESPACIO%N UNAAPLICACIØNREALESABSOLUTAMENTENECESARIOINCLUIRELCONTENIDOCOMPLETODELNODO /BSERVEQUEPARAELESTADOINICIALLAINFORMACIØNDEESENODOES.), %L PRIMERNÞMERO INDICAELNÞMERODELNODOELSEGUNDO INDICASUPADRE ELTERCERO ELNIVELENQUENOSENCONTRAMOSYELÞLTIMO .), ELOPERADORAPLICADO
&)'52! 3OLUCIØNALPROBLEMADELPUZZLE
310 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 !")%24/
#%22!$/
.), ← → ↓ → ↓ ↓ ↓ ↓ ↓ ↓ ↓ ← → ↓
.), ← .), → ← .), ↓ → ← .), ↓ ↓ → ← .),
5NAVEZQUESEALCANZAELESTADOMETASEPUEDEOBTENERINFORMACIØNMUYVALIOSA DELCAMPO)NFORMACIØNDELNODO%NESTEEJEMPLO→ ELNÞMEROINDICAQUE SEHANGENERADOn NODOS!SIMISMO ELINDICAQUEELESTADOMETASEENCONTRØEN ELNIVELY PORLOTANTO SENECESITAAPLICARTRESOPERADORESPARARESOLVERELPROBLEMA 0OROTRAPARTE LATRAYECTORIASEDEBEOBTENERDE#%22!$/DELASIGUIENTEMANERA → ↓ ← .),
PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO PADREDE→SEBUSCAEN#%22!$/ELNÞMERODENODO
,ASOLUCIØNENLENGUAJEDEESTADOSYOPERADORESES ←↓→ 2ECUERDEQUEENELLENGUAJEDEESTADOSYOPERADORES LASOLUCIØNAUNPROBLEMA CONSISTE EN ENCONTRAR LA SECUENCIA DE OPERADORES QUE PERMITEN TRANSFORMAR EL ESTADO INICIALENELlNAL
%JEMPLO
!CONTINUACIØNSEPRESENTAOTROEJEMPLODEUSODELMÏTODODEBÞSQUEDABREADTH lRST %NESTECASO ELMÏTODOPERMITEPROBARSIUNACADENADADACOMOENTRADAFUEGENERADAO NOPORCIERTAGRAMÈTICA0ARAESTEPROBLEMALOSOPERADORESSEDElNENENTÏRMINODELAS SIGUIENTESREGLASDEREESCRITURA
αβ → γ αγ → γ γβ → γ γγ → γ γ→Σ
%NLAlGURASEPRESENTALAGRÈlCACONLOSNODOSGENERADOSAPARTIRDELESTADO INICIALαβααβαβHASTAALCANZARELESTADOMETAΣ%L DEBAJODEUNNODOINDICAQUE DICHONODOYAEXISTEY PORLOTANTO SEELIMINAPARAEVITARLOSCICLOS#OMOENELEJEM PLOANTERIOR LASLISTAS!")%24/Y#%22!$/ALMACENANLOSNODOSPENDIENTESDESER EXPANDIDOSYAQUELLOSQUEYAHANSIDOEXPANDIDOS,ASLÓNEASHORIZONTALESSOBREALGU NOSNODOSINDICANQUEÏSTOSFUERONELIMINADOSDE!")%24/PORHABERSIDOEXPANDIDOS ANTERIORMENTE PARANOCAERENCICLOSINlNITOS
3&40-6$*Î/%&130#-&."4 &)'52! .ODOSGENERADOSPARA LLEGARALESTADOMETA
!")%24/ .IL
311
312 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4
↓ 3OLUCIØN #%22!$/ .), .), .), .), .), .), .), .), .), .), .), .), .), .), .), .), .), .),
3&40-6$*Î/%&130#-&."4
313
,ATRAYECTORIAQUEPERMITELLEGARALASOLUCIØNESLASIGUIENTE .), %LESTADOMETAESELNODO %LTOTALDENODOSGENERADOSESYFUERON NECESARIOSSIETENIVELESPARAALCANZARLASOLUCIØN,OSOPERADORESREGLASDEREESCRITU RAAPLICADOSPARAALCANZARELESTADOMETAPARTIENDODELESTADOINICIALSON αβ αβ αβ αγ γγ γγ γ
%JEMPLO
→γ →γ →γ →γ →γ →γ →Σ
/TROEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDABREADTH lRSTESELCONOCIDOCOMO PROBLEMADELASJARRASDEAGUA3ETIENENDOSJARRAS UNACONCAPACIDADPARACUATROLI TROSYOTRAPARATRES.INGUNADEELLASTIENEMARCASDEMEDICIØN!DEMÈS SEDISPONEDE UNABOMBADEAGUAQUEPERMITELLENARLASJARRASDEAGUATANTASVECESCOMOSEREQUIERA %LPROBLEMACONSISTEENENCONTRARLAFORMADECOLOCAREXACTAMENTEDOSLITROSDEAGUA ENLAJARRADECUATROLITROS%NESTEPROBLEMASEPARTEDEUNESTADOINICIALYEXISTENVA RIASMANERASDEALCANZARELESTADOlNAL PARTICULARIDADQUELOCONVIERTEENUNCASOMUY INTERESANTE ,OSELEMENTOSDELPROBLEMASEALMACENANENUNALISTAFORMADAPORLASVARIABLES 8Y9 LASCUALESASUVEZREPRESENTARÈNALASJARRASDECUATROYTRESLITROSDECAPACIDAD RESPECTIVAMENTE 8*ARRADECUATROLITROS QUEPUEDETOMARLOSVALORES 9*ARRADETRESLITROS QUEPUEDETOMARLOSVALORES 0ARAESTEPROBLEMALOSOPERADORESVÈLIDOSSONLOSQUESEMUESTRANENLATABLA
4!",! /PERADORESPARAEL PROBLEMADELAJARRA
)DENTIlCADOR DELOPERADOR
$ESCRIPCIØNDELAOPERACIØN
,LENARLAJARRADECUATROLITROS
,LENARLAJARRADETRESLITROS
6ACIARENELSUELOLAJARRADECUATROLITROS
6ACIARENELSUELOLAJARRADETRESLITROS
6ERTERDELAJARRADECUATROLITROSALADETRES HASTAQUELASEGUNDASELLENEO LAPRIMERAQUEDEVACÓA
6ERTERDELAJARRADETRESLITROSALADECUATRO HASTAQUELASEGUNDASELLENEO LAPRIMERAQUEDEVACÓA
314 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 %LESTADOINICIALYELlNALDELPROBLEMASEDElNENCOMO
%STADOINICIAL !MBASJARRASESTÈNVACÓAS %STADOlNAL . ,AJARRA8TIENEDOSLITROSYLAJARRA9TIENE. DONDE.
/BSERVEQUEESTEPROBLEMAMUESTRALAPARTICULARIDADDETENERUNESTADOINICIALY MÞLTIPLESESTADOSlNALES%NLAlGURASEPRESENTALAGRÈlCACONLOSNODOS GENERADOSPARAALCANZARLASOLUCIØN#OMOENLOSEJEMPLOSANTERIORES ELASTERISCOSE UTILIZAPARAINDICARQUEDICHONODOYAFUEGENERADOY PORLOTANTO SEIGNORA
&)'52! .ODOSGENERADOSPARAALCANZARLASOLUCIØN
3&40-6$*Î/%&130#-&."4
315
!CONTINUACIØNSEPRESENTANLASLISTAS!")%24/Y#%22!$/DONDESEGUARDAN RESPECTIVAMENTE LOSNODOSGENERADOSYEXPANDIDOS,ASLÓNEASATRAVESADASSOBREALGU NOSNODOSINDICANQUEÏSTOSFUERONELIMINADOSPORHABERSIDOEXPANDIDOSANTERIORMEN TE%LASTERISCODEBAJODEUNNODOINDICAQUEÏSTEYAEXISTEY PORLOTANTO SEELIMINA PARAEVITARCAERENCICLOS,AIGUALDADSEDETECTAALCOMPARARELCONTENIDODELNODOQUE SEQUIEREEXPANDIRCONELDEAQUELLOSQUEYASEENCUENTRANEN#%22!$/ !")%24/ .),
↓ %STADOMETA #%22!$/ .), .), .), .), .), .), .), .), .), .), .),
%LESTADOMETASEENCUENTRAENELNODO %LTOTALDENODOSGENERADOSES n YELTOTALDENIVELESES,ATRAYECTORIAQUEDESCRIBELASOLUCIØNSERECUPERA DELALISTA#%22!$/ .),
316 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 #ONSIDERANDOLADESCRIPCIØNDELASOPERACIONESASOCIADASALOSOPERADORESTABLA LASOLUCIØNENLENGUAJEDEESTADOSYOPERADORESES %STASECUENCIADEOPERADORESINDICAQUEPRIMEROSEDEBELLENARLAJARRA8REQUIE RECUATROLITROSYLUEGOVERTERESAAGUAENLAJARRA9SØLOSEUSARÈNTRESDELOSCUATRO LITROS%LSIGUIENTEOPERADORINDICAQUESEDEBEVACIARLAJARRA9 ARROJANDOELAGUA QUECONTIENEALPISO0OSTERIORMENTESECOLOCAELLITRORESTANTEDELAJARRA8ENLAJARRA9 QUEDANDOLAPRIMERAVACÓAYLASEGUNDACONUNLITRO,UEGOSELLENALAJARRA8USANDO CUATROLITROS0ORÞLTIMO SEPASAAGUADELAJARRA8ALAJARRA9HASTAQUEÏSTASELLENE LOCUALSELOGRACONSØLODOSLITROSPORLOTANTO LAJARRA8SEQUEDACONLOSOTROS DOSLITROS ALCANZANDOASÓELESTADOMETA
#OMPLEJIDADDELMÏTODOBREADTH lRST ,ACOMPLEJIDADDELMÏTODOBREADTH lRSTES/BD DONDEBREPRESENTAELFACTORDERA MIlCACIØNDELNODOYDLAPROFUNDIDADDELÈRBOL3UPONIENDOQUEB LAVELOCIDAD DEEXPANSIØNDENODOSPORSEGUNDOYLACAPACIDADDEALMACENAMIENTOBYTES POR NODO EN LA TABLA SE OBSERVA EN TIEMPO Y ESPACIO LA COMPLEJIDAD DEL MÏTODO BREADTH lRST %SIMPORTANTEDESTACARQUECUANDOSEUTILIZAELMÏTODOBREADTH lRSTSEDEBEEN CONTRARLASOLUCIØNENLOSPRIMEROSSEISNIVELES PORQUEDEOTRAFORMAAPARECERÈNSERIOS PROBLEMASENCUANTOATIEMPOYESPACIO/BSERVEQUEENELNIVELYASENECESITAN HORASPARARESOLVERELPROBLEMAYGIGABYTES
-ÏTODODEBÞSQUEDADEPTH lRST %NELMÏTODODEBÞSQUEDADEPTH lRST CONOCIDOCONELNOMBREDEBÞSQUEDAENPROFUN DIDADENELMUNDODEHABLAHISPANA SEEXPANDEELNODOMÈSRECIENTEMENTEGENERADO
4!",! #OMPLEJIDADBREADTH lRST /BD
0ROFUNDIDAD
.ODOS
4IEMPO
-EMORIA
MILISEGUNDO
BYTES
SEGUNDO
+B
SEGUNDOS
-B
MINUTOS
-B
HORAS
'B
DÓAS
4B
A×OS
4B
A×OS
4B
3&40-6$*Î/%&130#-&."4
317
ESTOÞLTIMOPERMITEREALIZARUNABÞSQUEDAENPROFUNDIDADENLUGARDEHACERLOENFORMA HORIZONTALCOMOENELMÏTODODEBÞSQUEDAALOANCHO,APROFUNDIDADDELNODOINICIAL ESCEROYLADEUNNODOQUENOESINICIALESIGUALAUNOMÈSLAPROFUNDIDADDESUPADRE .ORMALMENTESEESTABLECEUNLÓMITEMÈXIMODEPROFUNDIDADPERMITIDO QUEASU VEZESTABLECEELNÞMEROMÈXIMODENIVELESQUESEPUEDENGENERARENLABÞSQUEDADELA SOLUCIØN3ISELLEGAALLÓMITEESTABLECIDOSINHABERALCANZADOELESTADOMETA ENTONCES SECONSIDERAQUEELPROBLEMANOTIENESOLUCIØN!CONTINUACIØNSEPRESENTAELALGORITMO CORRESPONDIENTE !LGORITMO $EPTH lRST
$EPTH &IRST [%STEMÏTODOPERMITEENCONTRARELESTADOMETADEUNPROBLEMA APARTIRDEUNESTADOINICIALY USANDOLOSOPERADORESPERMITIDOSPARADICHOPROBLEMA0ESUNENTEROQUEINDICAELLÓMITEDE PROFUNDIDADPERMITIDO!")%24/Y#%22!$/SONDOSLISTASLINEALESSIMPLEMENTELIGADAS] )NSERTARELNODOINICIALENLALISTALLAMADA!")%24/ -IENTRAS!")%24/TENGAELEMENTOS YNOSEHAYALLEGADOALESTADOlNAL 2EPETIR 1UITARELPRIMERNODO.DE!")%24/ 3I.NOESTÈEN#%22!$/ YSUPROFUNDIDADES≤0 ENTONCES )NSERTARELNODO.ENLALISTA#%22!$/ %XPANDIRELNODO.OBTENIENDOTODOSSUSSUCESORES 3IHAYSUCESORESYNOSONELESTADOMETA ENTONCES !LMACENARLOSALINICIODELALISTA!")%24/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3IALGUNODELOSNODOSGENERADOSESELESTADOMETA ENTONCES[²XITO] $ESPLEGARLATRAYECTORIADESDEELESTADOINICIALALlNAL SINO[&RACASO] .OSEENCONTRØELESTADOlNAL [&INDELCONDICIONALDELPASO]
%NESTEALGORITMOSEMANEJAUNVALORADICIONAL 0 QUEREPRESENTALAPROFUNDIDAD MÈXIMAPERMITIDA!LRESOLVERELPROBLEMASEVERIlCASIELNODOYATIENEESAPROFUN DIDAD%NCASOAlRMATIVO SEELIMINADELALISTA!")%24/YSEAPLICABACKTRACKINGES DECIR SECONTINÞAELANÈLISISCONELNODOINMEDIATAMENTEANTERIORDELÈRBOLDEDERIVA CIØN!DEMÈS ESIMPORTANTEDESTACARQUEMIENTRASENELMÏTODOBREADTH lRSTLOSNODOS GENERADOSSEALMACENANALlNALDE!")%24/ ENELMÏTODODEPTH lRSTSECOLOCANAL INICIO
318 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 %JEMPLO
!CONTINUACIØNSEPRESENTAUNEJEMPLODEAPLICACIØNDELMÏTODODEBÞSQUEDADEPTH lRST3ERETOMAELPROBLEMADELPUZZLE PEROAHORASESOLUCIONAPORMEDIODEESTE MÏTODO3EPARTEDEUNESTADOINICIALYSEDElNEUNESTADOlNALALCUALSEQUIERELLEGAR
%STADOINICIAL
%STADOlNAL
%LESTADOINICIALSEREPRESENTADELASIGUIENTEMANERA
.IL
)NFORMACIØNDELNODO
#ONTENIDODELNODO
!DEMÈSSEESTABLECEUNLÓMITEDEPROFUNDIDADIGUALA%NLAlGURASEPRE SENTALAGRÈlCACONLOSNODOSGENERADOSHASTALLEGARALASOLUCIØN,ASLÓNEASPUNTEADAS INDICANBACKTRACKING UNMÏTODOQUEDESHACEPARTEDELATRAYECTORIAGENERADACUANDO ÏSTANOPERMITELLEGARALASOLUCIØN !CONTINUACIØNSEPRESENTANLASLISTAS!")%24/Y#%22!$/DONDESEGUARDAN RESPECTIVAMENTE LOSNODOSGENERADOSYLOSEXPANDIDOS,ASLÓNEASHORIZONTALESINDICAN QUEDICHOSNODOSFUERONELIMINADOSYASEAPORHABERSIDOEXPANDIDOSANTERIORMENTEO PORHABERLLEGADOALAPROFUNDIDADLÓMITEESTABLECIDA%LASTERISCODEBAJODEUNNODO INDICAQUEÏSTEYAEXISTEOQUESUPROFUNDIDADESIGUALALAMÈXIMAESTABLECIDAPORLO TANTO SEELIMINAPARAEVITARCAERENCICLOS !")%24/ .), ← ↑ → ↓ ↑ ↓ ↑ → ↓ → ↓ ↑ → ↓ → ↓ ↓ ↑ → ↓
→ ↑ → ↓ → → ↑ → ↓
← → → ↓ ↓ → → ↓ ↓ → %STADOMETA
3&40-6$*Î/%&130#-&."4
&)'52! 3OLUCIØNALPROBLEMA DELPUZZLE APLICANDO DEPTH lRST
319
320 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 #%22!$/ .), ← .), ↑ ← .), → ↑ ← .), ↓ → ↑ ← .), → ↓ → ↑ ← .), ↑ → ↓ → ↑ ← .), ← ↑ → ↓ → ↑ ← .), ↓ ← ↑ → ↓ → ↑ ← .), %LESTADOMETASEENCUENTRAENELNODO→ %LTOTALDENODOSGENERADOSES n YESELNIVELDONDEENCONTRAMOSELESTADOMETA,ATRAYECTORIAQUEDESCRIBE LASOLUCIØNSERECUPERADELALISTA#%22!$/ → ↓ ← ↑ .), ,ASOLUCIØNEXPRESADAENLENGUAJEDEESTADOSYOPERADORESQUEDADELASIGUIENTE MANERA ↑←↓→ ,OSMÏTODOSDEBÞSQUEDAANALIZADOS BREADTH lRSTYDEPTH lRST SECONOCENCOMO CIEGOS YAQUESONMÏTODOSEXHAUSTIVOS%NPRINCIPIO ESTOSMÏTODOSPROPORCIONANUNA SOLUCIØNPARAENCONTRARUNATRAYECTORIA PEROSONPOCOPRÈCTICOSPORQUEEXPANDENDE MASIADOS NODOS ADEMÈS SABEMOS QUE EXISTEN LÓMITES EN CUANTO A TIEMPO Y ESPACIO MEMORIA5SANDOINFORMACIØNESPECIALDELPROBLEMAYSUREPRESENTACIØNSEPUEDE AUMENTARLAVELOCIDAD%SAINFORMACIØNSEDENOMINAINFORMACIØNHEURÓSTICA %NELCAMPODELASOLUCIØNDEPROBLEMAS HEURÓSTICASIGNIlCAACELERARELPROCESO DEBÞSQUEDAHACIALAMETAMEDIANTELAEXPANSIØNDELOSNODOSMÈSPROMISORIOS5NO DELOSTEMASQUEOCUPAALAINTELIGENCIAARTIlCIALESPRECISAMENTEELESTUDIODEMÏTODOS HEURÓSTICOS %NRESUMEN LOSMÏTODOSANALIZADOSPUEDENMEJORARCONSIDERABLEMENTESUDESEM PE×OSILESINCORPORAMOSCONOCIMIENTOYHEURÓSTICA5NODELOSMÏTODOSHEURÓSTICOSDE MEJORCOMPORTAMIENTOSECONOCECOMO!
,!#,!3%'2&)#! 0ARADElNIRLACLASEGRÈlCASEREQUIEREDETERMINARSUSATRIBUTOSYLOSMÏTODOSNECESA RIOSPARASUMANEJO,OSATRIBUTOSSONLOSVÏRTICESYARISTAS INDICANDOENESTASÞLTIMAS SITIENENDIRECCIØNYCOSTO0ARASUREPRESENTACIØNSEPUEDEUTILIZARCUALQUIERADELAS ESTRUCTURASPRESENTADAS%NCUANTOALOSMÏTODOS ÏSTOSSERÈNLOSQUEPERMITANENCONTRAR UNVÏRTICE IMPRIMIRLAINFORMACIØNDEVÏRTICESYARISTAS ASÓCOMOENCONTRARTRAYECTORIAS SEGÞNELTIPODEGRÈlCAQUESEESTÏREPRESENTANDO %SRECOMENDABLEQUESEDElNAUNACLASEPORTIPODEGRÈlCA%SDECIR UNAPARALAS GRÈlCASDIRIGIDASYOTRAPARALASGRÈlCASNODIRIGIDAS%NCADAUNADEELLASSEDEBERÈ INCLUIR COMOMÏTODOS LOSALGORITMOSESTUDIADOSENESTECAPÓTULO
&+&3$*$*04
321
▼ %*%2#)#)/3 Ê £° 0ARACADAUNADELASGRÈlCASDELAlGURAINDIQUE A B C D E F G H I
!QUELLASQUESONGRÈlCASCONECTADAS !QUELLASQUESONGRÈlCASCÓCLICAS !QUELLASQUESONGRÈlCASCONEXAS !QUELLASQUESONGRÈlCASCOMPLETAS 4ODOSLOSPARESDEVÏRTICESADYACENTES 5NCAMINOENTRELOSVÏRTICESAYC SIESPOSIBLE 5NCAMINOCERRADOENTRECUALQUIERPARDEVÏRTICES SIESPOSIBLE 5NCAMINOSIMPLEENTRECUALQUIERPARDEVÏRTICES SIESPOSIBLE %LGRADODECADAVÏRTICE
Ê Ó° 5TILICEUNAMATRIZDEADYACENCIAYUNALISTASIMILARPARAREPRESENTARLASGRÈlCASDE LAlGURAAYB Ê Î° 5TILICEUNAMATRIZDEADYACENCIAYUNALISTADEADYACENCIAPARAREPRESENTARLADIGRÈ lCADELAlGURA
&)'52!
322 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4
&)'52!
Ê {° 5TILICEUNAMATRIZDECOSTOSPARAREPRESENTARLAGRÈlCADELAlGURA Ê x° 5TILICEUNAMATRIZDECOSTOSPARAREPRESENTARLASDIGRÈlCASDELAlGURAAYB Ê È° $ADALADIGRÈlCAREPRESENTADAENLAlGURA INDIQUECUÈLESDELASSIGUIENTES SUCESIONESDEÓNDICESDESCRIBENUNCAMINOENELLA A B C D E
&)'52!
&+&3$*$*04 &)'52!
Ê Ç° $ADALADIGRÈlCADELAlGURA ENCUENTREUNCAMINOACÓCLICODE A B C D E
A A A A A
Ê n° $ADALADIGRÈlCADELAlGURA A %NCUENTRELATRAYECTORIAMÈSCORTADELVÏRTICEAATODOSLOSOTROSVÏRTICES B 5TILICEUNAMATRIZDECOSTOSPARAREPRESENTARLA
&)'52!
323
324 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 &)'52!
Ê ° $ADALASIGUIENTEMATRIZDEADYACENCIA DIBUJELAGRÈlCACORRESPONDIENTE
&)'52!
&+&3$*$*04
325
£ä°$ADALASIGUIENTEMATRIZDEADYACENCIA DIBUJELADIGRÈlCACORRESPONDIENTE
££°$ADALASIGUIENTEMATRIZDECOSTOS DIBUJELADIGRÈlCACORRESPONDIENTE
£Ó°!PLIQUEELALGORITMODE$IJKSTRAALADIGRÈlCADELAlGURAB4OMEELVÏRTICEA COMOVÏRTICEORIGEN#ONSTRUYALATABLACORRESPONDIENTEALSEGUIMIENTODELALGORIT MO £Î°!PLIQUEELALGORITMODE&LOYDALADIGRÈlCADELAlGURA#ONSTRUYALATABLA CORRESPONDIENTEALSEGUIMIENTODELALGORITMO £{°!PLIQUEELALGORITMODE7ARSHALLALADIGRÈlCADELAlGURA#ONSTRUYALATABLA CORRESPONDIENTEALSEGUIMIENTODELALGORITMO
326 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 £x°!PLIQUEELALGORITMODE0RIMALAGRÈlCADELAlGURA#ONSTRUYALATABLACO RRESPONDIENTEALSEGUIMIENTODELALGORITMO £È°!PLIQUEELALGORITMODE+RUSKALALAGRÈlCADELAlGURA#ONSTRUYALATABLA CORRESPONDIENTEALSEGUIMIENTODELALGORITMO £Ç°%SCRIBAUNALGORITMOQUEPERMITAALMACENARUNAGRÈlCAPORMEDIODE A 5NAMATRIZDEADYACENCIA B 5NALISTADEADYACENCIA £n°%SCRIBAUNALGORITMOQUEPERMITAALMACENARUNADIGRÈlCAPORMEDIODEUNAMATRIZ DECOSTOS £°%SCRIBAUNALGORITMOQUEPERMITA DADAUNAGRÈlCAALMACENADAPORMEDIODEUNA MATRIZDEADYACENCIA IMPRIMIRTODOSLOSPARESDEVÏRTICESADYACENTES Óä°%SCRIBAUNAVERSIØNMODIlCADADELALGORITMODE$IJKSTRAQUEPERMITAELEGIRELCA MINOCONELMENORNÞMERODEARISTAS ENCASODETRAYECTORIASCONIGUALCOSTO Ó£°%SCRIBAUNALGORITMOQUEPERMITAELIMINARLASARISTASNECESARIASPARAOBTENER COMO RESULTADO UNAGRÈlCAACÓCLICA ÓÓ°#ONSIDEREQUEHAYCUATROTIPOSDESANGRE! " !"Y/!DEMÈS SESABEQUEELTIPO /ESCOMPATIBLEhPUEDEDONARAv CONCUALQUIERADELOSCUATROTIPOSELTIPO!ES COMPATIBLECONSUTIPOYCONELTIPO!"ELTIPO"ESCOMPATIBLECONSUTIPOYCON ELTIPO!" YELTIPO!"SØLOPUEDEDONARASUMISMOTIPO5TILICEUNAGRÈlCAPARA REPRESENTARESTAINFORMACIØNz1UÏTIPODEGRÈlCASERÈLAMÈSAPROPIADA*USTIlQUE SURESPUESTA Óΰ0IENSEENLARECETAPARAPREPARARSUPLATILLOFAVORITO,ASOPERACIONESINVOLUCRADAS JUNTOCONELTIEMPOREQUERIDOPARASUREALIZACIØN PUEDENREPRESENTARSEPORMEDIO DEUNAGRÈlCA%NELLASEPUEDENINDICARLASTAREASAREALIZARSIMULTÈNEAMENTE ASÓ COMOAQUELLASQUEDEBENSEGUIRCIERTASERIACIØN5TILICEUNAGRÈlCAYREPRESÏNTELA CONSIDERANDOQUE A 5STEDNOCUENTACONAYUDAY PORLOTANTO VAALLEVARACABOCADAUNADELASACTIVI DADESREQUERIDAS B 5STEDCUENTACONTANTOSAYUDANTESCOMODESEEY PORLOTANTO CIERTASTAREASSEPUE DENREALIZARPARALELAMENTE Ó{°3EQUIEREREPRESENTARUNATOPOLOGÓADEUNAREDTELEFØNICA DONDESEDISTINGUENCEN TRALESDECONMUTACIØNYENLACESENTRELASCENTRALES,OSENLACESENTRELASCENTRALES SONBIDIRECCIONALESYCONDIFERENTESCAPACIDADESDETRANSMISIØNCANALESDEVOZ 5TILICEUNAGRÈlCAPARAREPRESENTARUNAREDDEESTETIPOz1UÏTIPODEGRÈlCASERÈ LAMÈSAPROPIADAz#ØMOSEMODIlCALAGRÈlCASICAMBIANLASCAPACIDADESz1UÏ OPERACIONESSOBREESTAGRÈlCAPODRÓANSERDEINTERÏS*USTIlQUESUSRESPUESTAS
&+&3$*$*04
327
Óx°3E TIENE UN ALFABETO QUE CONSISTE EN TODAS LAS PALABRAS BINARIAS DE TRES BITS!L TRANSMITIRLOSATRAVÏSDEUNCANALCONRUIDOSEORIGINANCAMBIOS Y PORLOTANTO SE ORIGINATRANSICIØNENTRELASPALABRASTRANSMITIDAS0OREJEMPLO SILAPALABRATRANS MITIDAES LARECIBIDAPODRÓASER3UPONGAQUEENCADAPALABRATRANSMITIDA PUEDEHABERSØLOUNDÓGITOCONERROR#ONUNAGRÈlCAREPRESENTETODASLASPALABRAS DELALFABETOYLASTRANSICIONESQUEPUEDENORIGINARSEAOTRASPALABRASALTRANSMITIRLAS ATRAVÏSDELCANALCONRUIDOz1UÏTIPODEGRÈlCASERÈLAMÈSAPROPIADA*USTIlQUE SURESPUESTA ÓÈ°3ETIENENTRESJARRASDEAGUACONCAPACIDADESDECINCO TRESYSIETELITROS.INGUNA DEELLASPRESENTAMARCASDEMEDICIØN3ETIENEUNABOMBAQUEPERMITELLENARLASJA RRASDEAGUAz#ØMOSEPUEDENCOLOCAREXACTAMENTECUATRO LITROSDEAGUAENLA JARRADECINCOLITROSDECAPACIDAD ÓÇ°4RESMISIONEROSYTRESCANÓBALESSEENCUENTRANSOBRELAORILLADEUNRÓO4ODOSQUIE RENLLEGARALAOTRAORILLA PEROÞNICAMENTEHAYUNBOTEPARADOSPERSONAS,OSMI SIONEROS PARANOCORRERELRIESGODESERCOMIDOS QUIERENQUESUNÞMERONUNCASEA MENORQUEELDECANÓBALESENELMISMOLADODELRÓOz#ØMOPUEDENCRUZARTODOSSIN QUELOSMISIONEROSESTÏNENPELIGRO Ón°-UESTREQUELACADENA PERTENECEALLENGUAJEGENERADOPORLA GRAMÈTICA' APLICANDOLASSIGUIENTESREGLASDEREESCRITURA
3← !←3 !←! ! 3←!
Ó°#ONSIDEREELESTADOINICIAL ELESTADOlNALYLOSOPERADORESQUESEDANACONTINUA CIØN%NCUENTRELASOLUCIØNALPROBLEMA
328 >«ÌÕÊÇÊ Ê Ê (3Ç'*$"4 Îä°$ElNALACLASE'RÈlCA CORRESPONDIENTEAUNAGRÈlCANODIRIGIDA UTILIZANDOUNA MATRIZDECOSTOSPARAALMACENARLASARISTASYSUSCOSTOS Σ°2ETOMEELPROBLEMAANTERIOREINCLUYALOSMÏTODOSNECESARIOSPARAIMPLEMENTARLOS ALGORITMOSDE0RIMY+RUSKAL ÎÓ°$ElNA LA CLASE $IGRÈlCA CORRESPONDIENTE A UNA GRÈlCA DIRIGIDA UTILIZANDO UNA LISTADEADYACENCIAPARAALMACENARLASARISTASYSUSCOSTOS0UEDEREUSARLACLASE ,ISTASDELCAPÓTULO Îΰ2ETOMEELPROBLEMAANTERIOREINCLUYAENLACLASELOSMÏTODOSNECESARIOSPARAIM PLEMENTARLOSALGORITMOSDE$IJKSTRA &LOYDY7ARSHALL
#APÓTULO
n
-³4/$/3 $%/2$%.!#)¼. ).42/$5##)¼. /RDENARSIGNIlCAREAGRUPAROREORGANIZARUNCONJUNTODEDATOSUOBJETOSENUNASE CUENCIAESPECÓlCA,OSPROCESOSDEORDENACIØNYBÞSQUEDAESTEÞLTIMOSEESTUDIARÈ EN EL SIGUIENTE CAPÓTULO SON FRECUENTES EN NUESTRA VIDA6IVIMOS EN UN MUNDO DE SARROLLADO AUTOMATIZADO ACELERADO DONDELAINFORMACIØNREPRESENTAUNELEMENTODE VITALIMPORTANCIA,ASOCIEDADDEBEESTARINFORMADAY PORLOTANTO CONSTANTEMENTESE NECESITABUSCARYRECUPERARINFORMACIØN ,AOPERACIØNDEBÞSQUEDARECUPERACIØNDEINFORMACIØNNORMALMENTESEEFEC TÞASOBREELEMENTOSORDENADOS LOQUEDEMUESTRAQUE ENGENERAL DONDEHAYAOBJETOS QUESEDEBANBUSCARYRECUPERARESTARÈPRESENTEELPROCESODEORDENACIØN ,OSOBJETOSORDENADOSAPARECENPORDOQUIER$IRECTORIOSTELEFØNICOS REGISTROSDE PACIENTESDEUNHOSPITAL REGISTROSDEHUÏSPEDESDEUNHOTEL ÓNDICESDELIBROSDEUNABI BLIOTECA SONTANSØLOALGUNOSEJEMPLOSDEOBJETOSORDENADOSCONLOSQUEELSERHUMANO SEENCUENTRAFRECUENTEMENTE)NCLUSOYDEMANERAINFORMALSEPUEDESE×ALARQUEDESDE NI×OSENOSENSE×AASERORGANIZADO APONERLASCOSASENORDEN ,AORDENACIØNESUNAACTIVIDADFUNDAMENTALYRELEVANTEENLAVIDA)MAGINEELLEC TORQUÏOCURRIRÓASISEDESEARAENCONTRARUNLIBROENUNABIBLIOTECACONMÈSDE VOLÞMENESYÏSTOSESTUVIERANDESORDENADOSOREGISTRADOSENLOSÓNDICESENELORDENENEL CUALFUERONRECIBIDOSO POREJEMPLO SISEQUISIERAHABLARPORTELÏFONOCONUNAPERSONA YSEENCONTRARAQUEENELDIRECTORIOLOSABONADOSESTÈNORDENADOSSEGÞNSUNÞMEROTE LEFØNICO ENFORMAASCENDENTEODESCENDENTE,ATAREASERÓAMAYÞSCULA PEROSINNINGÞN SENTIDO &ORMALMENTESEDElNEORDENACIØNDELASIGUIENTEMANERA 3EA!UNALISTADE.ELEMENTOS ! ! ! !. /RDENARSIGNIlCAPERMUTARESTOSELEMENTOSDETALFORMAQUEQUEDENDEACUERDOCON UNADISTRIBUCIØNPREESTABLECIDA
330 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ◗ ◗
!SCENDENTE!≤!≤!≤≤!. $ESCENDENTE!≥!≥!≥≥!.
%NELPROCESAMIENTODEDATOSALOSMÏTODOSDEORDENACIØNSELESCLASIlCAENDOS GRANDESCATEGORÓAS SEGÞNDONDEHAYANSIDOALMACENADOS ◗ ◗
/RDENACIØNDEARREGLOS /RDENACIØNDEARCHIVOS
,APRIMERACATEGORÓASEDENOMINATAMBIÏNORDENACIØNINTERNA YAQUELOSELEMEN TOSOCOMPONENTESDELARREGLOSEENCUENTRANENLAMEMORIAPRINCIPALDELACOMPUTADORA ,ASEGUNDACATEGORÓASELLAMAORDENACIØNEXTERNA YAQUELOSELEMENTOSSEENCUENTRAN ENARCHIVOSALMACENADOSENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO COMODISCOS CINTAS TAMBORES ETCÏTERA 3ISEBUSCARAUNAANALOGÓAENTRELOSMÏTODOSDEORDENACIØNYLAVIDAREAL SEPODRÓA MENCIONARQUEPARALAMÈQUINA LAORDENACIØNINTERNAREPRESENTALOQUEPARAUNHUMANO SIGNIlCAORDENARUNCONJUNTODETARJETASQUESEENCUENTRANVISIBLESYEXTENDIDASTODAS SOBREUNAMESA,AORDENACIØNEXTERNA ENCAMBIO REPRESENTAPARALAMÈQUINALOQUE PARAUNHUMANOSIGNIlCAORDENARUNCONJUNTODETARJETASQUEESTÈNDISPUESTASUNADEBA JODEOTRAYENDONDESØLOSEVISUALIZALAPRIMERA %NLAPRIMERAPARTEDEESTECAPÓTULOSEESTUDIARÈNLOSMÏTODOSMÈSIMPORTANTESDE ORDENACIØNINTERNAYPOSTERIORMENTELOSMÈSINTERESANTESDEORDENACIØNEXTERNA
&)'52! /RDENACIØNINTERNA
03%&/"$*Î/*/5&3/"
331
&)'52! /RDENACIØNEXTERNA
/2$%.!#)¼.).4%2.! ,OSMÏTODOSDEORDENACIØNINTERNASEEXPLICARÈNCONARREGLOSUNIDIMENSIONALES PERO SUUSOPUEDEEXTENDERSEAOTROSTIPOSDEARREGLOSYESTRUCTURASDEDATOS%SIMPORTANTE SE×ALAR ADEMÈS QUESETRABAJARÈCONMÏTODOSDEORDENACIØNINSITU ESDECIR MÏTODOS QUENOREQUIERENDEARREGLOSAUXILIARESPARASUORDENACIØN,OSMÏTODOSQUEREQUIE REN DE ARREGLOS AUXILIARES SON GENERALMENTE INElCIENTES E INTRÓNSECAMENTE DE MENOR INTERÏS ,OSMÏTODOSDEORDENACIØNINTERNAASUVEZSEPUEDENCLASIlCARENDOSTIPOS ◗ ◗
-ÏTODOSDIRECTOSN -ÏTODOSLOGARÓTMICOSN LOGN
,OSMÏTODOSDIRECTOSTIENENLACARACTERÓSTICADEQUESUIMPLEMENTACIØNESRELATI VAMENTESENCILLAYSONFÈCILESDECOMPRENDER AUNQUESONINElCIENTESCUANDO.EL NÞMERODEELEMENTOSDELARREGLOESDETAMA×OMEDIANOOGRANDE,OSMÏTODOSLO GARÓTMICOS PORSUPARTE SONMÈSCOMPLEJOSQUELOSDIRECTOS3UELABORACIØNESMÈS SOlSTICADAY ALSERMENOSINTUITIVOS RESULTANMÈSDIFÓCILESDEENTENDER3INEMBARGO SONMÈSElCIENTESYAQUEREQUIERENDEMENOSCOMPARACIONESYMOVIMIENTOSPARAOR DENARSUSELEMENTOS %SIMPORTANTEDESTACARQUEUNABUENAMEDIDADEElCIENCIAENTRELOSDISTINTOSMÏTO DOSLACONSTITUYEELTIEMPODEEJECUCIØNDELALGORITMOYÏSTEDEPENDEFUNDAMENTALMEN TEDELNÞMERODECOMPARACIONESYMOVIMIENTOSQUESEREALICENENTRESUSELEMENTOS #OMOCONCLUSIØNSEPUEDESE×ALARQUECUANDO.ESPEQUE×OSEDEBENUTILIZARMÏ TODOSDIRECTOSYCUANDO.ESMEDIANOOGRANDESEUSARÈNMÏTODOSLOGARÓTMICOS ,OSMÏTODOSDIRECTOSMÈSCONOCIDOSSON
332 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ◗ ◗ ◗
/RDENACIØNPORINTERCAMBIO /RDENACIØNPORINSERCIØN /RDENACIØNPORSELECCIØN
/RDENACIØNPORINTERCAMBIODIRECTOBURBUJA %LMÏTODODEINTERCAMBIODIRECTO CONOCIDOCOLOQUIALMENTECOMOBURBUJA ESELMÈS UTILIZADOENTRELOSESTUDIANTESPRINCIPIANTESDECOMPUTACIØNPORSUFÈCILCOMPRENSIØNY PROGRAMACIØN0EROESPRECISOSE×ALARQUEESQUIZÈSELMÏTODOMÈSINElCIENTE %LMÏTODODEINTERCAMBIODIRECTOPUEDETRABAJARDEDOSMANERASDIFERENTESLLEVAN DOLOSELEMENTOSMÈSPEQUE×OSHACIALAPARTEIZQUIERDADELARREGLOOTRASLADANDOLOS ELEMENTOSMÈSGRANDESHACIASUPARTEDERECHA,AIDEABÈSICADEESTEALGORITMOCONSISTE ENCOMPARARPARESDEELEMENTOSADYACENTESEINTERCAMBIARLOSENTRESÓHASTAQUETODOS SEENCUENTRENORDENADOS3EREALIZANNn PASADASTRANSPORTANDOENCADAUNADEELLAS ELMENOROMAYORDEELEMENTOSSEGÞNSEAELCASOASUPOSICIØNIDEAL!LlNALDELAS Nn PASADASLOSELEMENTOSDELARREGLOESTARÈNORDENADOS
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! TRANSPORTANDOENCADAPASADAELMENORELEMENTOHACIALAPARTEIZQUIERDADELARREGLO ! ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
,UEGODELAPRIMERAPASADAELARREGLOQUEDAASÓ ! /BSERVE QUE EL ELEMENTO MÈS PEQUE×O EN ESTE CASO FUE SITUADO EN LA PARTE IZQUIERDADELARREGLO 3%'5.$!0!3!$! !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO
03%&/"$*Î/*/5&3/" !;=!;= !;=!;= !;=!;=
333
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
,UEGODELASEGUNDAPASADAELARREGLOQUEDAASÓ ! YELSEGUNDOELEMENTOMÈSPEQUE×ODELARREGLO ENESTECASO FUESITUADOENLASE GUNDAPOSICIØN %NLATABLASEPRESENTAELRESULTADODELASPASADASRESTANTES 4!",!
APASADA
APASADA
APASADA
APASADA
APASADA
%LALGORITMODEORDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOQUETRANSPORTAEN CADAPASADAELMENORELEMENTOHACIALAPARTEIZQUIERDADELARREGLOESELSIGUIENTE !LGORITMO "URBUJA?MENOR "URBUJA?MENOR! . [%STEALGORITMOORDENALOSELEMENTOSDELARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODELA BURBUJA 4RANSPORTA EN CADA PASADA EL ELEMENTO MÈS PEQUE×O HACIA LA PARTE IZQUIERDA DEL ARREGLO!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) *Y!58SONVARIABLESDETIPOENTERO] 2EPETIRCON)DESDEHASTA. 2EPETIRCON*DESDE.HASTA) 3I!*n !;*=ENTONCES (ACER!58←!;*n= !;*n=←!;)=Y!;)=←!58 [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! TRANSPORTANDOENCADAPASADAELMAYORELEMENTOHACIALAPARTEDERECHADELARREGLO !
334 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
! /BSERVEQUEELELEMENTOMÈSGRANDE ENESTECASO FUESITUADOENLAÞLTIMAPO SICIØNDELARREGLO 3%'5.$!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=
SÓHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
! YELSEGUNDOELEMENTOMÈSGRANDEDELARREGLO ENESTECASO FUESITUADOENLAPENÞL TIMAPOSICIØN%NLATABLASEVEELRESULTADODELASPASADASRESTANTES 4!",!
APASADA
APASADA
APASADA
APASADA
APASADA
%LALGORITMODEORDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOQUETRANSPORTAEN CADAPASADAELELEMENTOMAYORHACIALAPARTEDERECHADELARREGLOES !LGORITMO "URBUJA?MAYOR
03%&/"$*Î/*/5&3/"
335
"URBUJA?MAYOR! . [%LALGORITMOORDENALOSELEMENTOSDELARREGLOUNIDIMENSIONAL!4RANSPORTAENCADAPASADA ELELEMENTOMÈSGRANDEHACIALAPARTEDERECHADELARREGLO!ESUNARREGLODE.ELEMENTOS] [) *Y!58SONVARIABLESDETIPOENTERO] 2EPETIRCON)DESDE.nHASTA 2EPETIRCON*DESDEHASTA) 3I!;*=!;*=ENTONCES (ACER!58←!;*= !;*=←!;*=Y!;*=←!58 [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
!NÉLISISDEElCIENCIADELMÏTODO DEINTERCAMBIODIRECTO %LNÞMERODECOMPARACIONESQUESEREALIZANENELMÏTODODELABURBUJASEPUEDECON TABILIZARFÈCILMENTE%NLAPRIMERAPASADASEREALIZANNn COMPARACIONES ENLASE GUNDAPASADAN COMPARACIONES ENLATERCERAPASADANn COMPARACIONESYASÓ SUCESIVAMENTEHASTALLEGARAYCOMPARACIONESENTRECLAVES SIENDONELNÞMERODE ELEMENTOSDELARREGLO0ORLOTANTO TENEMOSQUEELNÞMERODECOMPARACIONESES # N N x QUEESIGUALA
N N
N N #
▼ &ØRMULA
#OMOYASEMENCIONØENELCAPÓTULO SEHACEUSODELPRINCIPIODEINDUCCIØNMA TEMÈTICAPARADESARROLLARCIERTASFØRMULAS 2ESPECTODELNÞMERODEMOVIMIENTOS ÏSTOSDEPENDENFUNDAMENTALMENTEDESIEL ARREGLOSEENCUENTRAORDENADO DESORDENADOOENORDENINVERSO,OSMOVIMIENTOSPARA CADAUNODEESTOSCASOSSON
-MÓN
-MED NnN
-MÈX NnN
▼ &ØRMULA
!SÓ POREJEMPLO SISETIENEQUEORDENARUNARREGLOQUECONTIENEELEMENTOS EL NÞMERODEMOVIMIENTOSQUESETENDRÈQUEREALIZARES A 3IELARREGLOSEENCUENTRAORDENADO ◗ COMPARACIONES ◗ MOVIMIENTOS B 3ILOSELEMENTOSDELARREGLOSEENCUENTRANDISPUESTOSENFORMAALEATORIA ◗ COMPARACIONES ◗ MOVIMIENTOS
336 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ C 3ILOSELEMENTOSDELARREGLOSEENCUENTRANENORDENINVERSO ◗ COMPARACIONES ◗ MOVIMIENTOS !HORABIEN ELTIEMPONECESARIOPARAEJECUTARELALGORITMODELABURBUJAESPROPOR CIONALAN /N DONDENESELNÞMERODEELEMENTOSDELARREGLO ! CONTINUACIØN SE PRESENTARÈN DOS VARIANTES DEL MÏTODO DE INTERCAMBIO DIRECTO MÏTODODEINTERCAMBIODIRECTOCONSE×ALYMÏTODODESHAKERSORT
/RDENACIØNPORELMÏTODODEINTERCAMBIO DIRECTOCONSE×AL %STE MÏTODO ES UNA MODIlCACIØN DEL MÏTODO DE INTERCAMBIO DIRECTO ANALIZADO EN LA SECCIØNANTERIOR,AIDEACENTRALDEESTEALGORITMOCONSISTEENUTILIZARUNAMARCAOSE×AL PARA INDICAR QUE NO SE HA PRODUCIDO NINGÞN INTERCAMBIO EN UNA PASADA %S DECIR SE COMPRUEBASIELARREGLOESTÈTOTALMENTEORDENADODESPUÏSDECADAPASADA TERMINANDO SUEJECUCIØNENCASOAlRMATIVO%LALGORITMODEORDENACIØNPORELMÏTODODELABURBUJA CONSE×ALES !LGORITMO "URBUJA?SE×AL "URBUJA?SE×AL! . [%LALGORITMOORDENALOSELEMENTOSDELARREGLOUTILIZANDOELMÏTODODELABURBUJACONSE×AL! ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) *Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO] (ACER)←Y"!.$←&!,3/ -IENTRAS)≤.n Y"!.$&!,3/ 2EPETIR (ACER"!.$←6%2$!$%2/ 2EPETIRCON*DESDEHASTA.n 3I!;*=!;*= ENTONCES (ACER!58←!;*= !;*=←!;*= !;*=←!58 Y"!.$←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] (ACER)←) [&INDELCICLODELPASO]
! CONTINUACIØN PRESENTAMOS LA SEGUNDA VARIANTE DEL MÏTODO DE INTERCAMBIO DI RECTO
03%&/"$*Î/*/5&3/"
337
/RDENACIØNPORELMÏTODODELASACUDIDASHAKERSORT %LMÏTODODESHAKERSORT MÈSCONOCIDOCOMOELMÏTODODELASACUDIDA ESUNAOPTIMI ZACIØNDELMÏTODODEINTERCAMBIODIRECTO,AIDEABÈSICADEESTEALGORITMOCONSISTEEN MEZCLARLASDOSFORMASENQUESEPUEDEREALIZARELMÏTODODELABURBUJA %NESTEALGORITMOCADAPASADATIENEDOSETAPAS%NLAPRIMERAETAPA DEDERECHAA IZQUIERDA SETRASLADANLOSELEMENTOSMÈSPEQUE×OSHACIALAPARTEIZQUIERDADELARRE GLO ALMACENANDOENUNAVARIABLELAPOSICIØNDELÞLTIMOELEMENTOINTERCAMBIADO%N LASEGUNDAETAPA DEIZQUIERDAADERECHA SETRASLADANLOSELEMENTOSMÈSGRANDESHACIA LAPARTEDERECHADELARREGLO ALMACENANDOENOTRAVARIABLELAPOSICIØNDELÞLTIMOELE MENTOINTERCAMBIADO,ASSUCESIVASPASADASTRABAJANCONLOSCOMPONENTESDELARREGLO COMPRENDIDOSENTRELASPOSICIONESALMACENADASENLASVARIABLESAUXILIARES%LALGORITMO TERMINACUANDOENUNAETAPANOSEPRODUCENINTERCAMBIOS OBIENCUANDOELCONTENIDO DELAVARIABLEQUEGUARDAELEXTREMOIZQUIERDODELARREGLOESMAYORQUEELCONTENIDODE LAVARIABLEQUEALMACENAELEXTREMODERECHO
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODELASACUDIDA ! 02)-%2!0!3!$! 0RIMERAETAPADEDERECHAAIZQUIERDA !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
ÁLTIMAPOSICIØNDEINTERCAMBIODEDERECHAAIZQUIERDA ,UEGODELAPRIMERAETAPADELAPRIMERAPASADA ELARREGLOQUEDAASÓ ! 3EGUNDAETAPADEIZQUIERDAADERECHA !;=!;= !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
ÁLTIMAPOSICIØNDEINTERCAMBIODEIZQUIERDAADERECHA
338 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ,UEGODELASEGUNDAETAPADELAPRIMERAPASADA ELARREGLOQUEDAASÓ ! 3%'5.$!0!3!$! 0RIMERAETAPADEDERECHAAIZQUIERDA !;=!;= !;=!;= !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
ÁLTIMAPOSICIØNDEINTERCAMBIODEDERECHAAIZQUIERDA ! 3EGUNDAETAPADEIZQUIERDAADERECHA !;=!;= !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
ÁLTIMAPOSICIØNDEINTERCAMBIODEIZQUIERDAADERECHA ! !LREALIZARLAPRIMERAETAPADELATERCERAPASADASEOBSERVAQUENOSEREALIZARON INTERCAMBIOSPORLOTANTO LAEJECUCIØNDELALGORITMOSETERMINA%LALGORITMODEORDE NACIØNPORELMÏTODODELASACUDIDAESELSIGUIENTE !LGORITMO 3ACUDIDA 3ACUDIDA! . [%LALGORITMOORDENALOSELEMENTOSDEUNARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODELA SACUDIDA!ESUNARREGLODE.ELEMENTOS] [) ):1 $%2 +Y!58SONVARIABLESDETIPOENTERO] (ACER):1← $%2←.Y+←. -IENTRAS$%2≥):1 2EPETIR 2EPETIRCON)DESDE$%2HASTA):1[#ICLODESCENDENTE]
03%&/"$*Î/*/5&3/"
339
3I!;)n=!;)= ENTONCES (ACER!58←!;)n= !;)n=←!;)= !;)=←!58Y+←) [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] (ACER):1←+ 2EPETIRCON)DESDE):1HASTA$%2[#ICLOASCENDENTE] 3I!;)n=!;)= ENTONCES (ACER!58←!;)n= !;)n=←!;)= !;)=←!58Y+←) [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] (ACER$%2←+n [&INDELCICLO]
!NÉLISISDEElCIENCIADELMÏTODODELASACUDIDA %LANÈLISISDELMÏTODODELASACUDIDA YENGENERALELDELOSMÏTODOSMEJORADOSYLOGA RÓTMICOS ESMUYCOMPLEJO0ARAELANÈLISISDEESTEMÏTODOESNECESARIOTENERENCUENTA TRESFACTORESQUEAFECTANDIRECTAMENTEALTIEMPODEEJECUCIØNDELALGORITMOLASCOM PARACIONESENTRELASCLAVES LOSINTERCAMBIOSENTREELLASYLASPASADASQUESEREALIZAN %NCONTRARFØRMULASQUEPERMITANCALCULARCADAUNODEESTOSFACTORESESUNATAREAMUY DIFÓCILDEREALIZAR ,OSESTUDIOSQUESEHANEFECTUADOSOBREELMÏTODODELASACUDIDADEMUESTRANQUE ENÏLSØLOSEPUEDENREDUCIRLASDOBLESCOMPARACIONESENTRECLAVES PEROSEDEBERECOR DARQUELAOPERACIØNDEINTERCAMBIOESUNATAREAMÈSCOMPLICADAYCOSTOSAQUELADE COMPARACIØN0ORLOTANTO ESPOSIBLEAlRMARQUELASHÈBILESMEJORASREALIZADASSOBRE ELMÏTODODEINTERCAMBIODIRECTOSØLOPRODUCENRESULTADOSAPRECIABLESSIELARREGLOESTÈ PARCIALMENTEORDENADO LOCUALRESULTADIFÓCILSABERDEANTEMANOPEROSIELARREGLOESTÈ DESORDENADOELMÏTODOSECOMPORTA INCLUSO PEORQUEOTROSMÏTODOSDIRECTOS COMOLOS DEINSERCIØNYSELECCIØN
/RDENACIØNPORINSERCIØNDIRECTA %LMÏTODODEORDENACIØNPORINSERCIØNDIRECTAESELQUEUTILIZANGENERALMENTELOSJU GADORESDECARTASCUANDOLASORDENAN DEAHÓQUETAMBIÏNSECONOZCACONELNOMBREDE MÏTODODELABARAJA ,AIDEACENTRALDEESTEALGORITMOCONSISTEENINSERTARUNELEMENTODELARREGLOENSU PARTEIZQUIERDA QUEYASEENCUENTRAORDENADA%STEPROCESOSEREPITEDESDEELSEGUNDO HASTAELN ÏSIMOELEMENTO/BSERVEMOSUNEJEMPLO
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODEINSERCIØNDIRECTA !
340 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;=
NOHAYINTERCAMBIO
! 3%'5.$!0!3!$! !;=!;= !;=!;=
SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
! 4%2#%2!0!3!$! !;=!;= !;=!;=
SÓHAYINTERCAMBIO NOHAYINTERCAMBIO
! /BSERVEQUEUNAVEZQUESEDETERMINALAPOSICIØNCORRECTADELELEMENTOSEINTE RRUMPENLASCOMPARACIONES0OREJEMPLO PARAELCASOANTERIORNOSEREALIZØLACOMPARA CIØN!;=!;=%NLATABLASEPRESENTAELRESULTADODELASPASADASRESTANTES %LALGORITMODEORDENACIØNPORELMÏTODODEINSERCIØNDIRECTAES !LGORITMO )NSERCIØN )NSERCIØN! . [%STEALGORITMOORDENALOSELEMENTOSDELARREGLOUTILIZANDOELMÏTODODEINSERCIØNDIRECTA! ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) !58Y+SONVARIABLESDETIPOENTERO] 2EPETIRCON)DESDEHASTA. (ACER!58←!;)=Y+←)n -IENTRAS+≥ Y!58!;+= 2EPETIR (ACER!;+=←!;+=Y+←+n [&INDELCICLODELPASO] (ACER!;+=←!58 [&INDELCICLODELPASO]
4!",!
APASADA
APASADA
APASADA
APASADA
03%&/"$*Î/*/5&3/"
341
!NÉLISISDEElCIENCIADELMÏTODODEINSERCIØNDIRECTA %LNÞMEROMÓNIMODECOMPARACIONESYMOVIMIENTOSENTRECLAVESSEPRODUCECUANDOLOS ELEMENTOSDELARREGLOYAESTÈNORDENADOS!NALICEELSIGUIENTECASO
%JEMPLO
3EA!UNARREGLOFORMADOPORLOSELEMENTOS ! ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! !;=!;=
NOHAYINTERCAMBIO
3%'5.$!0!3!$! !;=!;=
NOHAYINTERCAMBIO
4%2#%2!0!3!$! !;=!;=
NOHAYINTERCAMBIO
#5!24!0!3!$! !;=!;=
NOHAYINTERCAMBIO
,UEGODELASCOMPARACIONESREALIZADAS ELARREGLOCORRESPONDIENTEQUEDAASÓ ! /BSERVEQUEPARAESTEEJEMPLOSEEFECTUARONCUATROCOMPARACIONES%NGENERAL PODEMOSAlRMARQUESIELARREGLOSEENCUENTRAORDENADOSEEFECTÞANCOMOMÈXIMO NnCOMPARACIONESYMOVIMIENTOSENTREELEMENTOS
#MÓNNn
▼ &ØRMULA
%LNÞMEROMÈXIMODECOMPARACIONESYMOVIMIENTOSENTREELEMENTOSSEPRODUCE CUANDOLOSELEMENTOSDELARREGLOESTÈNENORDENINVERSO
%JEMPLO
3EA!UNARREGLOFORMADOPORLOSSIGUIENTESELEMENTOS ! ,ASCOMPARACIONESQUESEREALIZANSON
342 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 02)-%2!0!3!$! !;=!;=
SÓHAYINTERCAMBIO
3%'5.$!0!3!$! !;=!;= !;=!;=
SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
4%2#%2!0!3!$! !;=!;= !;=!;= !;=!;=
SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
#5!24!0!3!$! !;=!;= !;=!;= !;=!;= !;=!;=
SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO
/BSERVEQUEENLAPRIMERAPASADASEREALIZØUNACOMPARACIØNENLASEGUNDA DOS COMPARACIONESENLATERCERA TRESCOMPARACIONES YASÓSUCESIVAMENTEHASTANnCOM PARACIONESENTREELEMENTOS0ORLOTANTO - MÈX x N
N N
QUEESIGUALA
#MÈX
N
N
▼ &ØRMULA
!HORABIEN ELNÞMERODECOMPARACIONESPROMEDIO QUEESCUANDOLOSELEMENTOS APARECENENELARREGLOENFORMAALEATORIA SEPUEDECALCULARMEDIANTELASUMADELAS COMPARACIONESMÓNIMASYMÈXIMASDIVIDIDAENTRE
#MED
!LHACERLAOPERACIØNQUEDA
N N · ¨ © N ¸ ¹ ª
03%&/"$*Î/*/5&3/"
#MED
N
N
343
▼ &ØRMULA
2ESPECTODELNÞMERODEMOVIMIENTOS SIELARREGLOSEENCUENTRAORDENADONOSE REALIZANINGUNO0ORLOTANTO
▼ &ØRMULA
-MÓN
%L NÞMERO MÈXIMO DE MOVIMIENTOS SE PRESENTA CUANDO EL ARREGLO ESTÈ EN ORDEN INVERSO/BSERVEELEJEMPLOANTERIOR%NLAPRIMERAPASADASEREALIZØUNMOVIMIENTO EN LASEGUNDADOSYASÓSUCESIVAMENTEHASTANnMOVIMIENTOSENTRELOSELEMENTOSENLA ÞLTIMAPASADA0ORLOTANTO - MÈX x N
N N
QUEESIGUALA
- MÈX
N
N
▼ &ØRMULA
%LNÞMERODEMOVIMIENTOSPROMEDIO QUESEDACUANDOLOSELEMENTOSSEENCUEN TRANENELARREGLOENFORMAALEATORIA SECALCULACOMOLASUMADELOSMOVIMIENTOSMÓNI MOSYMÈXIMOSDIVIDIDAENTRE0ORLOTANTO
- MED
N
N
!LHACERLAOPERACIØNQUEDA
- MED
N N
▼ &ØRMULA
!SÓ POREJEMPLO SISETIENEQUEORDENARUNARREGLOQUECONTIENEELEMENTOS A 3IELARREGLOSEENCUENTRAORDENADOSERÈNNECESARIAS ◗ COMPARACIONES ◗ MOVIMIENTOS B 3ILOSELEMENTOSDELARREGLOSEENCUENTRANDISPUESTOSENFORMAALEATORIASEREALIZA RÈN
344 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ ◗ COMPARACIONES ENPROMEDIO ◗ MOVIMIENTOS ENPROMEDIO C 3ILOSELEMENTOSDELARREGLOSEENCUENTRANENORDENINVERSOSERÈNNECESARIAS ◗ COMPARACIONES ◗ MOVIMIENTOS %S IMPORTANTE SE×ALAR QUE EL TIEMPO REQUERIDO PARA EJECUTAR EL ALGORITMO DE IN SERCIØN DIRECTA ES PROPORCIONAL A N /N DONDE N ES EL NÞMERO DE ELEMENTOS DEL ARREGLO !PESARDESERUNMÏTODOINElCIENTEYRECOMENDABLESØLOCUANDONESPEQUE×O EL MÏTODODEINSERCIØNDIRECTASECOMPORTAMEJORQUELOSMÏTODOSDEINTERCAMBIODIRECTO ANALIZADOSANTERIORMENTE
/RDENACIØNPORELMÏTODODEINSERCIØNBINARIA %LMÏTODODEORDENACIØNPORINSERCIØNBINARIAESUNAMEJORADELMÏTODODEINSERCIØN DIRECTAPRESENTADOANTERIORMENTE,AMEJORACONSISTEENREALIZARUNABÞSQUEDABINARIA ENLUGARDEUNABÞSQUEDASECUENCIAL PARAINSERTARUNELEMENTOENLAPARTEIZQUIERDA DEL ARREGLO QUE YA SE ENCUENTRA ORDENADO %L PROCESO AL IGUAL QUE EN EL MÏTODO DE INSERCIØNDIRECTA SEREPITEDESDEELSEGUNDOHASTAELN ÏSIMOELEMENTO!NALICEMOSUN EJEMPLO
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODEINSERCIØNBINARIA ! !CONTINUACIØNSEPRESENTANLASCOMPARACIONESQUESELLEVANACABO 02)-%2!0!3!$! !;=!;=
NOHAYINTERCAMBIO
! 3%'5.$!0!3!$! !;=!;=
SÓHAYINTERCAMBIO
! 4%2#%2!0!3!$! !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
!
03%&/"$*Î/*/5&3/"
345
#5!24!0!3!$! !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
! 15).4!0!3!$! !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
! 3%84!0!3!$! !;=!;= !;=!;= !;=!;=
SÓHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
! 3²04)-!0!3!$! !;=!;= !;=!;= !;=!;=
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO
! %LALGORITMODEORDENACIØNPORELMÏTODODEINSERCIØNBINARIAES !LGORITMO )NSERCIØN?BINARIA )NSERCIØN?BINARIA! . [%STEALGORITMOORDENALOSELEMENTOSDEUNARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODE INSERCIØNBINARIA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) !58 ):1 $%2 -Y*SONVARIABLESDETIPOENTERO] 2EPETIRCON)DESDEHASTA. (ACER!58←!;)= ):1←Y$%2←)n -IENTRAS):1≤$%2 2EPETIR (ACER-←PARTEENTERA):1$%2 ENTRE
346 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 3I!58≤!;-= ENTONCES (ACER$%2←-n SINO (ACER):1←- [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] (ACER*←)n -IENTRAS*≥):1 2EPETIR (ACER!;*=←!;*=Y*←*n [&INDELCICLODELPASO] (ACER!;):1=←!58 [&INDELCICLODELPASO]
!NÉLISISDEElCIENCIADELMÏTODODEINSERCIØNBINARIA !LANALIZARELMÏTODODEORDENACIØNPORINSERCIØNBINARIASEADVIERTELAPRESENCIADE UNCASOANTINATURAL%LMÏTODOEFECTÞAELMENORNÞMERODECOMPARACIONESCUANDOEL ARREGLOESTÈTOTALMENTEDESORDENADOYELMÈXIMOCUANDOSEENCUENTRAORDENADO %SPOSIBLESUPONERQUEMIENTRASENUNABÞSQUEDASECUENCIALSENECESITAN+COM PARACIONES PARA INSERTAR UN ELEMENTO EN UNA BINARIA SE NECESITARÈ LA MITAD DE LAS + COMPARACIONES0ORLOTANTO ELNÞMERODECOMPARACIONESPROMEDIOENELMÏTODODE ORDENACIØNPORINSERCIØNBINARIASEPUEDECALCULARCOMO #
N N N x
QUEESIGUALA
N #
N
▼ &ØRMULA
²STEESUNALGORITMODECOMPORTAMIENTOANTINATURALY PORLOTANTO ESNECESARIO SERMUYCUIDADOSOCUANDOSEHACEUNANÈLISISDEÏL,ASHÈBILESMEJORASINTRODUCIDAS PRODUCENUNEFECTONEGATIVOCUANDOELARREGLOESTÈORDENADOYRESULTADOSAPENASSATIS FACTORIOSCUANDOLASCLAVESESTÈNDESORDENADAS$ETODASMANERAS SEDEBERECORDARQUE NOSEREDUCEELNÞMERODEMOVIMIENTOSQUEESUNAOPERACIØNMÈSCOMPLICADAYCOSTOSA QUELAOPERACIØNDECOMPARACIØN0ORLOTANTO ELTIEMPODEEJECUCIØNDELALGORITMO SIGUESIENDOPROPORCIONALAN /N
/RDENACIØNPORSELECCIØNDIRECTA %LMÏTODODEORDENACIØNPORSELECCIØNDIRECTAESMÈSElCIENTEQUELOSMÏTODOSANALI ZADOSANTERIORMENTE0ERO AUNQUESUCOMPORTAMIENTOESMEJORQUEELDEAQUÏLLOSYSU
03%&/"$*Î/*/5&3/"
347
PROGRAMACIØNESFÈCILYCOMPRENSIBLE NOSERECOMIENDAUTILIZARLOCUANDOELNÞMERODE ELEMENTOSDELARREGLOESMEDIANOOGRANDE,AIDEABÈSICADEESTEALGORITMOCONSISTE ENBUSCARELMENORELEMENTODELARREGLOYCOLOCARLOENLAPRIMERAPOSICIØN,UEGOSE BUSCAELSEGUNDOELEMENTOMÈSPEQUE×ODELARREGLOYSELOCOLOCAENLASEGUNDAPOSICIØN %LPROCESOCONTINÞAHASTAQUETODOSLOSELEMENTOSDELARREGLOHAYANSIDOORDENADOS%L MÏTODOSEBASAENLOSSIGUIENTESPRINCIPIOS 3ELECCIONARELMENORELEMENTODELARREGLO )NTERCAMBIARDICHOELEMENTOCONELPRIMERO 2EPETIRLOSPASOSANTERIORESCONLOSNn Nn ELEMENTOS YASÓSUCESIVAMENTE HASTAQUESØLOQUEDEELELEMENTOMAYOR
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODESELECCIØNDIRECTA ! ,ASCOMPARACIONESQUESEREALIZANSON 02)-%2!0!3!$! 3EREALIZALAASIGNACIØN-%./2←!;= -%./2!;= -%./2!;= -%./2!;= -%./2!;= -%./2!;= -%./2!;= -%./2!;=
SÓSECUMPLELACONDICIØN NOSECUMPLELACONDICIØN -%./2←!;= SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN
,UEGODELAPRIMERAPASADA ELARREGLOQUEDADELASIGUIENTEFORMA ! /BSERVEQUEELMENORELEMENTODELARREGLO!;= SEINTERCAMBIØCONELPRIMER ELEMENTO!;= REALIZANDOSOLAMENTEUNMOVIMIENTO 3%'5.$!0!3!$! 3EREALIZALASIGUIENTEASIGNACIØN-%./2←!;= -%./2!;= -%./2!;= -%./2!;=
NOSECUMPLELACONDICIØN -%./2←!;= SÓSECUMPLELACONDICIØN SÓSECUMPLELACONDICIØN
348 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ -%./2!;= -%./2!;= -%./2!;=
SÓSECUMPLELACONDICIØN NOSECUMPLELACONDICIØN -%./2←!;= SÓSECUMPLELACONDICIØN
! /BSERVEQUEELSEGUNDOELEMENTOMÈSPEQUE×ODELARREGLO!;= SEINTERCAMBIØ CONELSEGUNDOELEMENTO !;= %NLATABLASEOBSERVAELRESULTADODELASPASADASRESTANTES 4!",!
APASADA
APASADA
APASADA
APASADA
APASADA
%LALGORITMODEORDENACIØNPORELMÏTODODESELECCIØNDIRECTAES !LGORITMO 3ELECCIØN 3ELECCIØN! . [%STEALGORITMOORDENALOSELEMENTOSDEUNARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODODE SELECCIØNDIRECTA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) -%./2 +Y*SONVARIABLESDETIPOENTERO] 2EPETIRCON)DESDEHASTA.n (ACER-%./2←!;)=Y+←) 2EPETIRCON*DESDE)HASTA. 3I!;*=-%./2 ENTONCES (ACER-%./2←!;*=Y+←* [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] (ACER!;+=←!;)=Y!;)=←-%./2 [&INDELCICLODELPASO]
!NÉLISISDEElCIENCIADELMÏTODODESELECCIØNDIRECTA %LANÈLISISDELMÏTODODESELECCIØNDIRECTAESRELATIVAMENTESIMPLE3EDEBECONSIDERAR QUEELNÞMERODECOMPARACIONESENTREELEMENTOSESINDEPENDIENTEDELADISPOSICIØNINI CIALDEÏSTOSENELARREGLO%NLAPRIMERAPASADASEREALIZANNn COMPARACIONES ENLA SEGUNDAPASADANn COMPARACIONESYASÓSUCESIVAMENTEHASTAYCOMPARACIONES ENLAPENÞLTIMAYÞLTIMAPASADAS RESPECTIVAMENTE0ORLOTANTO
03%&/"$*Î/*/5&3/"
# N N x
349
N N
QUEESIGUALA
#
▼ &ØRMULA
N N
2ESPECTODELNÞMERODEINTERCAMBIOS SIEMPRESERÈNn AEXCEPCIØNDEQUESE TENGA INCORPORADA EN EL ALGORITMO ALGUNA TÏCNICA PARA PREVENIR EL INTERCAMBIO DE UN ELEMENTOCONSIGOMISMO0ORLOTANTO
▼ &ØRMULA
-Nn
!SÓ POREJEMPLO SISETIENEQUEORDENARUNARREGLOQUECONTIENEELEMENTOS SE EFECTUARÈNCOMPARACIONESYMOVIMIENTOS %LTIEMPODEEJECUCIØNDELALGORITMOESPROPORCIONALAN /N AUNCUANDOESMÈS RÈPIDOQUELOSMÏTODOSPRESENTADOSCONANTERIORIDAD
!NÉLISISDEElCIENCIADELOSMÏTODOSDIRECTOS ,ATABLACONTIENELASFØRMULASNECESARIASPARAOBTENERELNÞMERODECOMPARACIONES YMOVIMIENTOSPARAORDENARUNARREGLOCONLOSTRESMÏTODOSDIRECTOSANALIZADOS,AS COLUMNASINDICANSILOSELEMENTOSDELARREGLOSEENCUENTRANENFORMAORDENADA DESOR DENADAOENORDENINVERSO %NLATABLA POROTRAPARTE SEOBSERVANLOSNÞMEROSDECOMPARACIONESYMO VIMIENTOSNECESARIOSPARAORDENARUNARREGLOCONLOSTRESMÏTODOSDIRECTOSANALIZADOS
4!",! )NTERCAMBIO DIRECTO
)NSERCIØN DIRECTA
3ELECCIØN DIRECTA
/RDENADA
$ESORDENADA
/RDENINVERSO
-
N N
N N N N
N N N N
#
N
-
#
N N N
#
-
N
N N
N N N N
N N N
N N N
N
350 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 4!",! /RDENADA
$ESORDENADA
/RDENINVERSO
)NTERCAMBIO
#
DIRECTO
-
)NSERCIØN
#
DIRECTA
-
3ELECCIØN
#
DIRECTA
-
,ASCOLUMNASINDICANSILOSELEMENTOSDELARREGLOSEENCUENTRANENFORMAORDENADA DESORDENADAOENORDENINVERSO/BSERVEQUEESTASCOLUMNASSEENCUENTRANDIVIDIDASEN DOS,ASUBCOLUMNAIZQUIERDAREPRESENTAUNARREGLODEELEMENTOSYLASUBCOLUMNA DERECHAREPRESENTAUNARREGLODEELEMENTOS %SFÈCILOBSERVARQUEELMÏTODODESELECCIØNDIRECTAESELMEJORYSØLOESSUPERADO PORELMÏTODODEINSERCIØNDIRECTACUANDOLOSELEMENTOSDELARREGLOYASEENCUENTRAN ORDENADOS%LPEORMÏTODO SINDUDA ESELDEINTERCAMBIODIRECTO %NLOSSIGUIENTESINCISOSSEANALIZARÈNLOSMÏTODOSLOGARÓTMICOSMÈSIMPORTANTES
/RDENACIØNPORELMÏTODODE3HELL %LMÏTODODE3HELLESUNAVERSIØNMEJORADADELMÏTODODEINSERCIØNDIRECTA2ECIBEESE NOMBREENHONORDESUAUTOR $ONALD,3HELL QUIENLOPROPUSOEN%STEMÏTODO TAMBIÏNSECONOCECOMOINSERCIØNCONINCREMENTOSDECRECIENTES %NELMÏTODODEORDENACIØNPORINSERCIØNDIRECTACADAELEMENTOSECOMPARAPARA SU UBICACIØN CORRECTA EN EL ARREGLO CON LOS ELEMENTOS QUE SE ENCUENTRAN EN SU PARTE IZQUIERDA3IELELEMENTOAINSERTARESMÈSPEQUE×OQUEELGRUPODEELEMENTOSQUESE ENCUENTRAN A SU IZQUIERDA SERÈ NECESARIO EFECTUAR VARIAS COMPARACIONES ANTES DE SU UBICACIØN 3HELL PROPONE QUE LAS COMPARACIONES ENTRE ELEMENTOS SE EFECTÞEN CON SALTOS DE MAYORTAMA×O PEROCONINCREMENTOSDECRECIENTESASÓ LOSELEMENTOSQUEDARÈNORDE NADOSENELARREGLOMÈSRÈPIDAMENTE0ARACOMPRENDERMEJORESTEALGORITMOANALICEEL SIGUIENTECASO #ONSIDEREMOSUNARREGLOQUECONTENGAELEMENTOS%NPRIMERLUGAR SEDIVIDIRÈN LOSELEMENTOSDELARREGLOENOCHOGRUPOS TENIENDOENCUENTALOSELEMENTOSQUESEEN CUENTRANAOCHOPOSICIONESDEDISTANCIAENTRESÓYSEORDENARÈNPORSEPARADO1UEDARÈN ENELPRIMERGRUPOLOSELEMENTOS!;= !;= ENELSEGUNDO !;= !;= ENELTER CERO !;= !;= YASÓSUCESIVAMENTE$ESPUÏSDEESTEPRIMERPASOSEDIVIDIRÈNLOS ELEMENTOSDELARREGLOENCUATROGRUPOS TENIENDOENCUENTAAHORALOSELEMENTOSQUESE ENCUENTRENACUATROPOSICIONESDEDISTANCIAENTRESÓYSELESORDENARÈPORSEPARADO1UE
03%&/"$*Î/*/5&3/"
351
DARÈNENELPRIMERGRUPOLOSELEMENTOS!;= !;= !;= !;= ENELSEGUNDO!;= !;= !;= !;= YASÓSUCESIVAMENTE%NELTERCERPASOSEDIVIDIRÈNLOSELEMENTOS DELARREGLOENGRUPOS TOMANDOENCUENTALOSELEMENTOSQUESEENCUENTRANAHORAADOS POSICIONESDEDISTANCIAENTRESÓYNUEVAMENTESELESORDENARÈPORSEPARADO%NELPRIMER GRUPOQUEDARÈN!;= !;= !;= !;= !;= !;= !;= !;= YENELSEGUNDO!;= !;= !;= !;= !;= !;= !;= !;= &INALMENTESEAGRUPARÈNYORDENARÈNLOSELEMENTOSDEMANERANORMALESDECIR DE UNOENUNO3EPRESENTAACONTINUACIØNUNEJEMPLO
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLOSELEMENTOSQUESEENCUENTRANENELARREGLOUNIDI MENSIONAL!UTILIZANDOELMÏTODODE3HELL ! 02)-%2!0!3!$! 3EDIVIDENLOSELEMENTOSENGRUPOS
352 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/
,AORDENACIØNPRODUCE ! !CONTINUACIØNSEPRESENTAELALGORITMODEORDENACIØNPORELMÏTODODE3HELL !LGORITMO 3HELL 3HELL! . [%STE ALGORITMO PERMITE ORDENAR LOS ELEMENTOS DE UN ARREGLO UNIDIMENSIONAL UTILIZANDO EL MÏTODODE3HELL!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [).4 )Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO] (ACER).4←. -IENTRAS).4 2EPETIR (ACER).4←PARTEENTERA).4 Y"!.$←6%2$!$%2/ -IENTRAS"!.$6%2$!$%2/ 2EPETIR (ACER"!.$←&!,3/E)← -IENTRAS)).4 ≤. 2EPETIR 3I!;)=!;)).4=ENTONCES (ACER!58←!;)= !;)=←!;)).4= !;)).4=←!58 Y"!.$←6%2$!$%2/ [&INDELCONDICIONALDELPASO] (ACER)←) [&INDELCICLODELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
03%&/"$*Î/*/5&3/"
353
!NÉLISISDEElCIENCIADELMÏTODODE3HELL %LANÈLISISDEElCIENCIADELMÏTODODE3HELLESUNPROBLEMAMUYCOMPLICADOYAÞNNO RESUELTO(ASTAELMOMENTONOSEHAPODIDOESTABLECERLAMEJORSECUENCIADEINCREMEN TOSCUANDONESGRANDE#ABERECORDARQUECADAVEZQUESEPROPONEUNASECUENCIADE INTERVALOS ESNECESARIOCORRERELALGORITMOPARAANALIZARSUTIEMPODEEJECUCIØN %N 0RATTDESCUBRIØQUEELTIEMPODEEJECUCIØNDELALGORITMOESDELORDEN DEN LOGN 5NASPRUEBASEXHAUSTIVASREALIZADASPARAOBTENERLAMEJORSECUENCIA DEINTERVALOSCUANDOELNÞMERODEELEMENTOSDELARREGLOESIGUALAARROJARONCOMO RESULTADOQUELAMEJORSECUENCIACORRESPONDEAUNINTERVALODE QUENOESMÈSQUEEL MÏTODODEINSERCIØNDIRECTAESTUDIADOPREVIAMENTE%STASPRUEBASTAMBIÏNDETERMINA RONQUEELMENORNÞMERODEMOVIMIENTOSSEREGISTRABACONLASECUENCIA #ABE ACLARAR QUE LAS PRUEBAS EXHAUSTIVAS CORRESPONDEN AL ANÈLISIS DE POSIBILIDADES ES DECIR CASOSDIFERENTES %N LA TABLA SE MUESTRAN LAS DIEZ MEJORES SECUENCIAS OBTENIDAS AL EVALUAR LAS POSIBILIDADESDESECUENCIASQUESEPRESENTANCUANDOSETIENEUNARREGLODE ELEMENTOS 0ARACONCLUIRCONELANÈLISISDEElCIENCIADEMÏTODODE3HELL SEMENCIONAQUEES TUDIOSDE0ETERSONY2USSELL ENLA5NIVERSIDADDE3TANFORD EN MUESTRANQUELAS MEJORESSECUENCIASPARAVALORESDE.COMPRENDIDOSENTREYSONLASQUESE PRESENTANENLATABLA DONDEK 0ORÞLTIMO YPARAACLARARAÞNMÈSLOSCONCEPTOSVERTIDOSSOBREELMÏTODODE3HELL SEINCLUYEUNSEGUNDOEJEMPLO
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASSIGUIENTESCLAVESDELARREGLOUNIDIMENSIONAL! UTILIZANDOELMÏTODODE3HELL,ASECUENCIADEINTERVALOSQUESEUTILIZARÈCORRESPONDEA LAFØRMULAKn PRESENTADAPOR0ETERSONY2USSELL !
4!",!
0OSICIØN
3ECUENCIA
354 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ K
4!",!
Kn
3ECUENCIAS
K K
,OSRESULTADOSPARCIALESDECADAPASADA ASÓCOMOELRESULTADOlNAL SEOBSERVANEN LATABLA DONDE0!3REPRESENTAELNÞMERODEPASADAE).4REPRESENTAELINTERVALO ENELCUALSEESTÈTRABAJANDO
/RDENACIØNPORELMÏTODOQUICKSORT %LMÏTODODEORDENACIØNQUICKSORTESACTUALMENTEELMÈSElCIENTEYVELOZDELOSMÏTO DOSDEORDENACIØNINTERNA%STAMBIÏNCONOCIDOCOMOMÏTODORÈPIDOYDEORDENACIØN PORPARTICIØN%STEMÏTODOESUNAMEJORASUSTANCIALDELMÏTODODEINTERCAMBIODIRECTO YSEDENOMINAQUICKSORTRÈPIDOPORLAVELOCIDADCONQUEORDENALOSELEMENTOSDEL ARREGLO3UAUTOR #!(OARE LOLLAMØASÓ,AIDEACENTRALDEESTEALGORITMOCONSISTE ENLOSIGUIENTE 3ETOMAUNELEMENTO8DEUNAPOSICIØNCUALQUIERADELARREGLO 3ETRATADEUBICARA8ENLAPOSICIØNCORRECTADELARREGLO DETALFORMAQUETODOSLOS ELEMENTOSQUESEENCUENTRENASUIZQUIERDASEANMENORESOIGUALESA8YTODOSLOSQUE SEENCUENTRENASUDERECHASEANMAYORESOIGUALESA8 3EREPITENLOSPASOSANTERIORES PEROAHORAPARALOSCONJUNTOSDEDATOSQUESEEN CUENTRANALAIZQUIERDAYALADERECHADELAPOSICIØNDE8ENELARREGLO %LPROCESOTERMINACUANDOTODOSLOSELEMENTOSSEENCUENTRANENSUPOSICIØNCO RRECTAENELARREGLO 3EDEBESELECCIONAR ENTONCES UNELEMENTO8CUALQUIERA%NESTECASOSESELECCIO NARÈ!;=3EEMPIEZAARECORRERELARREGLODEDERECHAAIZQUIERDACOMPARANDOSILOS ELEMENTOSSONMAYORESOIGUALESA83IUNELEMENTONOCUMPLECONESTACONDICIØN SE INTERCAMBIANAQUÏLLOSYSEALMACENAENUNAVARIABLELAPOSICIØNDELELEMENTOINTERCAM BIADOSEACOTAELARREGLOPORLADERECHA3EINICIANUEVAMENTEELRECORRIDO PERO AHORADEIZQUIERDAADERECHA COMPARANDOSILOSELEMENTOSSONMENORESOIGUALESA8 4!",! 0!3
).4
!RREGLO!
03%&/"$*Î/*/5&3/"
355
3IUNELEMENTONOCUMPLECONESTACONDICIØN ENTONCESSEINTERCAMBIANAQUÏLLOSYSE ALMACENAENOTRAVARIABLELAPOSICIØNDELELEMENTOINTERCAMBIADOSEACOTAELARREGLO PORLAIZQUIERDA3EREPITENLOSPASOSANTERIORESHASTAQUEELELEMENTO8ENCUENTRASU POSICIØNCORRECTAENELARREGLO!NALICEMOSACONTINUACIØNELSIGUIENTEEJEMPLO
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLOSELEMENTOSQUESEENCUENTRANENELARREGLO!UTI LIZANDOELMÏTODO ! 3ESELECCIONA!;= PORLOTANTO 8← 3ELLEVANACABOLASCOMPARACIONESQUESEMUESTRANACONTINUACIØN 02)-%2!0!3!$! 2ECORRIDODEDERECHAAIZQUIERDA !;=≥8 !;=≥8
≥ ≥
NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
! ↑ ↑ 2ECORRIDODEIZQUIERDAADERECHA !;=≤8
≤
SÓHAYINTERCAMBIO
! ↑ ↑ 3%'5.$!0!3!$! 2ECORRIDODEDERECHAAIZQUIERDA !;=≥8 !;=≥8 !;=≥8 !;=≥8
≥ ≥ ≥ ≥
NOHAYINTERCAMBIO NOHAYINTERCAMBIO NOHAYINTERCAMBIO SÓHAYINTERCAMBIO
! ↑ ↑ #OMOELRECORRIDODEIZQUIERDAADERECHASEDEBERÓAINICIARENLAMISMAPOSICIØN DONDESEENCUENTRAELELEMENTO8 ELPROCESOTERMINAYAQUESEDETECTAQUEELELEMENTO 8SEENCUENTRAENLAPOSICIØNCORRECTA/BSERVEQUELOSELEMENTOSQUEFORMANPARTEDEL PRIMERCONJUNTOSONMENORESOIGUALESA8 YLOSDELSEGUNDOCONJUNTOSONMAYORESO IGUALESA8
356 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ !
ERCONJUNTO
OCONJUNTO
%STEPROCESODEPARTICIONAMIENTOAPLICADOPARALOCALIZARLAPOSICIØNCORRECTADEUN ELEMENTO8ENELARREGLOSEREPITECADAVEZQUEQUEDENCONJUNTOSFORMADOSPORDOSO MÈSELEMENTOS%LMÏTODOSEPUEDEAPLICARDEMANERAITERATIVAORECURSIVA%NLATABLA SEPRESENTALAUBICACIØNDELRESTODELOSELEMENTOSENELARREGLO 4!",!
!
!
!
!
%LALGORITMODEORDENACIØNPORELMÏTODOQUICKSORTENSUVERSIØNRECURSIVAES !LGORITMO 2ÈPIDO?RECURSIVO 2ÈPIDO?RECURSIVO! . [%STEALGORITMOORDENALOSELEMENTOSDELARREGLOUNIDIMENSIONALUTILIZANDOELMÏTODORÈPIDO DEMANERARECURSIVA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] ,LAMARALALGORITMO2EDUCE?RECURSIVOCONY.
/BSERVE QUE EL ALGORITMO 2ÈPIDO?RECURSIVO REQUIERE PARA SU FUNCIONAMIENTO DE OTROALGORITMO ELCUALSEPRESENTAENLATABLA !LGORITMO 2EDUCE?RECURSIVO 2EDUCE?RECURSIVO).) &). [).)Y&).REPRESENTANLASPOSICIONESDELEXTREMOIZQUIERDOYDERECHO RESPECTIVAMENTE DEL CONJUNTODEELEMENTOSAORDENAR] [):1 $%2 0/3 Y !58 SON VARIABLES DE TIPO ENTERO "!.$ ES UNA VARIABLE DE TIPO BOOLEANO] (ACER):1←).) $%2←&). 0/3←).)Y"!.$←6%2$!$%2/ -IENTRAS"!.$6%2$!$%2/ 2EPETIR (ACER"!.$←&!,3/ -IENTRAS!;0/3=≤!;$%2= Y0/3≠$%2 2EPETIR (ACER$%2←$%2n [&INDELCICLODELPASO] 3I0/3≠$%2 ENTONCES (ACER!58←!;0/3= !;0/3=←!;$%2= !;$%2=←!58Y0/3←$%2
03%&/"$*Î/*/5&3/"
357
-IENTRAS!;0/3=≥!;):1= Y0/3≠):1 2EPETIR (ACER):1←):1 [&INDELCICLODELPASO] 3I0/3≠):1 ENTONCES (ACER"!.$←6%2$!$%2/ !58←!;0/3= !;0/3=←!;):1= !;):1=←!58Y0/3←):1 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I0/3n ).) ENTONCES 2EGRESARA2EDUCE?RECURSIVOCON).)Y0/3n [,LAMADARECURSIVA] [&INDELCONDICIONALDELPASO] 3I&).0/3 ENTONCES 2EGRESARA2EDUCE?RECURSIVOCON0/3 Y&).[,LAMADARECURSIVA] [&INDELCONDICIONALDELPASO]
!UNCUANDOELALGORITMODELQUICKSORTPRESENTADORESULTECLARO ESPOSIBLEAUMENTAR SUVELOCIDADDEEJECUCIØNELIMINANDOLASLLAMADASRECURSIVAS,ARECURSIVIDADESUNINS TRUMENTOMUYPODEROSO PEROLAElCIENCIADEEJECUCIØNESUNFACTORMUYIMPORTANTEEN UNPROCESODEORDENACIØNQUEESNECESARIOCUIDARYADMINISTRARMUYBIEN%STASLLAMADAS RECURSIVASSEPUEDENSUSTITUIRUTILIZANDOPILAS DANDOLUGARENTONCESALAITERATIVIDAD #ONSIDEREMOSELARREGLOUNIDIMENSIONAL!DELEJEMPLO,UEGODELAPRIMERA PARTICIØN !QUEDADELASIGUIENTEMANERA !
ERCONJUNTO
OCONJUNTO
!LUTILIZARLAITERATIVIDAD SEDEBENALMACENARENLASPILASLOSÓNDICESDELOSDOSCON JUNTOSDEDATOSQUEFALTATRATAR3EUTILIZARÈNDOSPILAS 0),!-%./2Y0),!-!9/2 %NLAPRIMERASEALMACENARÈELEXTREMOIZQUIERDOYENLAOTRASEALMACENARÈELEXTREMO DERECHODELOSCONJUNTOSDEDATOSQUEFALTATRATAR%NLAlGURASEOBSERVAELESTADO DELASPILAS LUEGODECARGARLOSEXTREMOSDELOSCONJUNTOSQUEFALTATRATAR ,OSÓNDICESDELPRIMERCONJUNTOQUEDARONALMACENADOSENLAPRIMERAPOSICIØNDE 0),!-%./2 Y 0),!-!9/2 RESPECTIVAMENTE ,A POSICIØN DEL EXTREMO IZQUIERDO DELPRIMERCONJUNTO EN0),!-%./2YLADELEXTREMODERECHODELMISMOCONJUNTO EN0),!-!9/2,ASPOSICIONESDELOSEXTREMOSIZQUIERDOYDERECHODELSEGUNDO CONJUNTO Y FUERON ALMACENADOS EN LA CIMA DE 0),!-%./2 Y 0),!-!9/2 RESPECTIVAMENTE
&)'52! 0ILASPARASUSTITUIR LARECURSIVIDAD
358 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ !CONTINUACIØNSEPRESENTAELALGORITMODEORDENACIØNPORELMÏTODODELQUICKSORT UTILIZANDOITERATIVIDADENLUGARDERECURSIVIDAD !LGORITMO 2ÈPIDO?ITERATIVO 2ÈPIDO?ITERATIVO! . [%STE ALGORITMO ORDENA LOS ELEMENTOS DE UN ARREGLO UNIDIMENSIONAL UTILIZANDO EL MÏTODO RÈPIDO DEMANERAITERATIVA!ESUNARREGLOUNIDIMENSIONALDE.ELEMENTOS] [4/0% ).) &). Y 0/3 SON VARIABLES DE TIPO ENTERO 0),!-%./2 Y 0),!-!9/2 SON ARREGLOSUNIDIMENSIONALES QUEFUNCIONANCOMOPILAS] (ACER4/0%← 0),!-%./2;4/0%=←Y0),!-!9/2;4/0%=←. -IENTRAS4/0% 2EPETIR (ACER).)←0),!-%./2;4/0%= &).←0),!-!9/2;4/0%=Y 4/0%←4/0%n ,LAMARALALGORITMO2EDUCE?ITERATIVOCON).) &).Y0/3 3I).)0/3n ENTONCES (ACER4/0%←4/0% 0),!-%./2;4/0%=←).)Y 0),!-!9/2;4/0%=←0/3n [&INDELCONDICIONALDELPASO] 3I&).0/3 ENTONCES (ACER4/0%←4/0% 0),!-%./2;4/0%=←0/3Y 0),!-!9/2;4/0%=←&). [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
.OTEQUEELALGORITMO2ÈPIDO?ITERATIVONECESITAPARASUFUNCIONAMIENTODEOTRO ALGORITMO ELCUALSEPRESENTAACONTINUACIØN !LGORITMO 2EDUCE?ITERATIVO 2EDUCE?ITERATIVO).) &). 0/3 [).)Y&).REPRESENTANLASPOSICIONESDELOSEXTREMOSIZQUIERDOYDERECHO RESPECTIVAMENTE DELCONJUNTODEELEMENTOSAEVALUAR0/3ESUNAVARIABLEDONDESEALMACENARÈELRESULTADODE ESTEALGORITMO] [):1 $%2Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO] (ACER):1←).) $%2←&). 0/3←).)Y"!.$←6%2$!$%2/ -IENTRAS"!.$6%2$!$%2/ 2EPETIR -IENTRAS!;0/3=≤!;$%2= Y0/3≠$%2 2EPETIR (ACER$%2←$%2n [&INDELCICLODELPASO] 3I0/3$%2 ENTONCES
03%&/"$*Î/*/5&3/"
359
(ACER"!.$←&!,3/ SINO (ACER!58←!;0/3= !;0/3=←!;$%2= !;$%2=←!58Y 0/3←$%2 -IENTRAS!;0/3=≥!;):1= Y0/3≠):1 2EPETIR (ACER):1←):1 [&INDELCICLODELPASO] 3I0/3):1 ENTONCES (ACER"!.$←&!,3/ SINO (ACER!58←!;0/3= !;0/3=←!;):1= !;):1=←!58Y0/3←):1 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
%JEMPLO
%N LA TABLA SE EXPONEN LOS PASOS NECESARIOS PARA ORDENAR LAS CLAVES DEL ARREGLO UNIDIMENSIONAL! ! ,ACOLUMNA%842%-/CONTIENELOSEXTREMOSIZQUIERDOYDERECHODELCONJUNTO DEELEMENTOSAEVALUAR%N0),!-%./2SEALMACENAELEXTREMOIZQUIERDOYEN0),! -!9/2ELEXTREMODERECHODELOSCONJUNTOSPENDIENTESDETRATAR 5NALEVEMEJORAENELFUNCIONAMIENTODELMÏTODORÈPIDOSEPUEDEPRODUCIRSIEL PRIMERELEMENTOPOSICIONADOENELARREGLOSEENCUENTRAENLAMITADOMUYPRØXIMOASU MITAD0ARALOGRARESTOÞLTIMOSENECESITAPERMUTARLOSCOMPONENTESDELARREGLODETAL FORMAQUEPARAELVALOR8TODOSLOSELEMENTOSQUESEENCUENTRENASUIZQUIERDADESDE !;=HASTA!;I= DONDEIESIGUALAN n SEANMENORESOIGUALESAÏLYTODOSLOSQUE SEENCUENTRENASUDERECHADESDE!;I=HASTA!;.=SEANMAYORESOIGUALESAÏL0OR EJEMPLO ENELSIGUIENTEARREGLOUNIDIMENSIONAL! ! ESELELEMENTOQUEOCUPALAPOSICIØNCENTRALDELARREGLOORDENADOYDIVIDEAÏSTEEN DOSMITADESIGUALES1UEDALATAREADECONSTRUIRELALGORITMOQUEENCUENTRAALELEMENTO 8QUEOCUPALAPOSICIØNCENTRALDELARREGLO
!NÉLISISDEElCIENCIADELMÏTODOQUICKSORT %LMÏTODOQUICKSORTESELMÈSRÈPIDODEORDENACIØNINTERNAQUEEXISTEENLAACTUALIDAD %STOESSORPRENDENTE PORQUEELMÏTODOTIENESUORIGENENELMÏTODODEINTERCAMBIO DIRECTO EL PEOR DE TODOS LOS MÏTODOS DIRECTOS $IVERSOS ESTUDIOS REALIZADOS SOBRE SU COMPORTAMIENTODEMUESTRANQUESISEESCOGEENCADAPASADAELELEMENTOQUEOCUPALA
360 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 4!",!
0/3)#)/.%3
%842%-/
0),! -%./2
0),! -!9/2
.),
.),
.),
.),
.),
.),
.),
.),
.),
POSICIØNCENTRALDELCONJUNTODEDATOSAANALIZAR ELNÞMERODEPASADASNECESARIASPARA ORDENARLOESDELORDENDELOGN2ESPECTODELNÞMERODECOMPARACIONES SIELTAMA×O DELARREGLOESUNAPOTENCIADE ENLAPRIMERAPASADAREALIZARÈNn COMPARACIONES ENLASEGUNDANn COMPARACIONES PEROENDOSCONJUNTOSDIFERENTES ENLATERCERA REALIZARÈNn COMPARACIONES PEROENCUATROCONJUNTOSDIFERENTESYASÓSUCESIVA MENTE0ORLOTANTO # N
N
N
x N
N N
03%&/"$*Î/*/5&3/"
361
LOCUALESLOMISMOQUE #Nn Nn Nn Nn 3ISECONSIDERAACADAUNODELOSCOMPONENTESDELASUMATORIACOMOUNTÏRMINOY ELNÞMERODETÏRMINOSDELASUMATORIAESIGUALAM ENTONCESSETIENEQUE #Nn M #ONSIDERANDOQUEELNÞMERODETÏRMINOSDELASUMATORIAM ESIGUALALNÞMERODE PASADAS YQUEÏSTEESIGUALALOGN LAEXPRESIØNANTERIORQUEDA
▼ &ØRMULA
#Nn LOGN
3IN EMBARGO ENCONTRAR EL ELEMENTO QUE OCUPE LA POSICIØN CENTRAL DEL CONJUNTO DEDATOSQUESEVANAANALIZARESUNATAREADIFÓCIL YAQUEEXISTENNPOSIBILIDADESDE LOGRARLO!DEMÈS EL RENDIMIENTO MEDIO DEL MÏTODO ES APROXIMADAMENTE LN INFERIORALCASOØPTIMO PORLOQUE(OARE ELAUTORDELMÏTODO PROPONECOMOSOLUCIØN QUEELELEMENTO8SESELECCIONEARBITRARIAMENTEOBIENENTREUNAMUESTRARELATIVAMENTE PEQUE×ADEELEMENTOSDELARREGLO %LPEORCASOOCURRECUANDOLOSELEMENTOSDELARREGLOYASEENCUENTRANORDENADOS OBIENCUANDOSEENCUENTRANENORDENINVERSO3UPONGAMOS POREJEMPLO QUESEDEBE ORDENARELSIGUIENTEARREGLOUNIDIMENSIONALQUEYASEENCUENTRAORDENADO ! 3ISEESCOGEARBITRARIAMENTEELPRIMERELEMENTO ENTONCESSEPARTICIONARÈEL ARREGLOENDOSMITADES UNADEYOTRADENn ELEMENTOS
3ISECONTINÞACONELPROCESODEORDENACIØNYSEESCOGENUEVAMENTEELPRIMERELE MENTO DELCONJUNTODEDATOSQUESEANALIZARÈN ENTONCESSEDIVIDIRÈELARREGLOEN DOSNUEVOSCONJUNTOS NUEVAMENTEUNODEYOTRODENn ELEMENTOS0ORLOTANTO EL NÞMERODECOMPARACIONESQUESEREALIZARÈNSERÈ #MÈX N N N x
N N
QUEESIGUALA
#MÈX
N N
▼ &ØRMULA
362 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ #OMOCONCLUSIØN SEPUEDEAlRMARQUEELTIEMPOPROMEDIODEEJECUCIØNDELALGO RITMOESPROPORCIONALAN LOGN /N LOGN %NELPEORCASO ELTIEMPODEEJECUCIØN ESPROPORCIONALAN /N
/RDENACIØNPORELMÏTODOHEAPSORTMONTÓCULO %LMÏTODODEORDENACIØNHEAPSORTSECONOCETAMBIÏNCOMOMONTÓCULO3UNOMBRESE DEBEASUAUTOR *77ILLIAMS QUIENLOLLAMØASÓ%SELMÈSElCIENTEDELOSMÏTODOS DEORDENACIØNQUETRABAJANCONÈRBOLES,AIDEACENTRALDEESTEALGORITMOSEBASAENDOS OPERACIONES #ONSTRUIRUNMONTÓCULO %LIMINARLARAÓZDELMONTÓCULOENFORMAREPETIDA %SIMPORTANTESE×ALARQUEUNMONTÓCULOSEDElNECOMO0ARATODONODODELÈRBOLSE DEBECUMPLIRQUESUVALORSEAMAYOROIGUALQUEELVALORDECUALQUIERADESUSHIJOS
%JEMPLO
%NLAlGURASEMUESTRAUNMONTÓCULO!LLÓSEPUEDEOBSERVARQUEPARACADANODO+ DELÈRBOL SUVALORESMAYOROIGUALQUEELVALORDECUALQUIERADESUSHIJOS !HORA BIEN PARA REPRESENTAR UN MONTÓCULO EN UN ARREGLO LINEAL SE DEBE TENER EN CUENTAPARATODONODO+LOSIGUIENTE %LNODO+SEALMACENAENLAPOSICIØN+CORRESPONDIENTEDELARREGLO %LHIJOIZQUIERDODELNODO+SEALMACENAENLAPOSICIØN + %LHIJODERECHODELNODO+SEALMACENAENLAPOSICIØN + ,AlGURACONTIENELAREPRESENTACIØNDELMONTÓCULODELAlGURAENUNARREGLO UNIDIMENSIONAL! /BSERVEQUESISEDESEAOBTENERELHIJOIZQUIERDODELNODO!;= CUYOVALORES SEHACE!; =!;=YSUCONTENIDOES3IDESEAMOSOBTENERENCAMBIOELHIJO DERECHODE!;= HACEMOS!; =!;=YSUCONTENIDOES
&)'52! -ONTÓCULOCON ELEMENTOS
03%&/"$*Î/*/5&3/"
363
&)'52! 2EPRESENTACIØNDEUN MONTÓCULOENUNARREGLO LINEAL
!SUVEZ ESPOSIBLECALCULARELPADREDEUNNODONORAÓZ+CUALQUIERA TOMANDOLA PARTEENTERADE+ENTRE !SÓ POREJEMPLO SISEDESEAOBTENERELPADREDELNODO!;= CUYOVALORES SEHACE!;PARTEENTERAENTRE =!;=YSUCONTENIDOES
)NSERCIØNDEUNELEMENTOENUNMONTÓCULO ,AINSERCIØNDEUNELEMENTOENUNMONTÓCULOSELLEVAACABOPORMEDIODELOSSIGUIENTES PASOS 3EINSERTAELELEMENTOENLAPRIMERAPOSICIØNDISPONIBLE 3EVERIlCASISUVALORESMAYORQUEELDESUPADRE3ISECUMPLEESTACONDICIØN ENTONCES SE EFECTÞA EL INTERCAMBIO 3I NO SE CUMPLE ESTA CONDICIØN ENTONCES ELALGORITMOSEDETIENEYELELEMENTOQUEDAUBICADOENSUPOSICIØNCORRECTAENEL MONTÓCULO #ABEACLARARQUEELPASOSEAPLICADEMANERARECURSIVAYDESDEABAJOHACIAARRIBA
%JEMPLO
3UPONGAMOSQUESEQUIEREINCORPORARALMONTÓCULODELAlGURAELELEMENTO,AS COMPARACIONESQUEREALIZAMOSSON
SÓHAYINTERCAMBIO SÓHAYINTERCAMBIO NOHAYINTERCAMBIO
,UEGODEHABERINSERTADOELELEMENTO ELMONTÓCULOQUEDACOMOSEMUESTRAEN LAlGURA
&)'52! -ONTÓCULOCON ELEMENTOS .OTA3EUTILIZAmECHADISCON TINUAPARAINDICARLAPOSICIØN INICIALDONDESEINSERTAEL ELEMENTO
364 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ &)'52! -ONTÓCULOLUEGODEHABER INSERTADOLACLAVE
%JEMPLO
3UPONGAMOSQUESEDESEAINSERTARLASSIGUIENTESCLAVESENUNMONTÓCULOQUESEENCUEN TRAVACÓO ,OSRESULTADOSPARCIALESQUEILUSTRANCØMOFUNCIONAELPROCEDIMIENTOSEOBSERVAN ENLAlGURA%LMONTÓCULOSEREPRESENTACOMOÈRBOLYTAMBIÏNCOMOARREGLO,AS mECHASDISCONTINUASINDICANLAPOSICIØNINICIALDONDESEINSERTAELOLOSELEMENTOS
%JEMPLO
$ADOELMONTÓCULODELAlGURAF VERIlQUESIÏSTEQUEDAIGUALALMONTÓCULO REPRESEN TADOCOMOARREGLO DELAlGURA LUEGODEINSERTARLASSIGUIENTESCLAVES
&)'52! )NSERCIONESENUN MONTÓCULO .OTA3EUTILIZALAmECHA DISCONTINUAPARAINDICARLAPO SICIØNINICIALDONDESEINSERTA ELOLOSELEMENTOS
03%&/"$*Î/*/5&3/"
&)'52! CONTINUACIØN )NSERCIONESENUNMONTÓCULO .OTA3EUTILIZALAmECHADISCONTINUAPARAINDICARLAPOSICIØNINICIALDONDESEINSERTA ELOLOSELEMENTOS
365
366 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/
&)'52! CONTINUACIØN )NSERCIONESENUNMON TÓCULO .OTA3EUTILIZALAmECHA DISCONTINUAPARAINDICARLAPO SICIØNINICIALDONDESEINSERTA ELOLOSELEMENTOS
%LALGORITMOPARAINSERTARELEMENTOSENUNMONTÓCULOES !LGORITMO )NSERTA?MONTÓCULO )NSERTA?MONTÓCULO! . [%L ALGORITMO INSERTA LOS ELEMENTOS EN UN MONTÓCULO REPRESENTADO COMO ARREGLO ! ES UN ARREGLOUNIDIMENSIONALDE.ELEMENTOS] [) +Y!58SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO] 2EPETIRCON)DESDEHASTA. (ACER+←)Y"!.$←6%2$!$%2/ -IENTRAS+ Y"!.$6%2$!$%2/ 2EPETIR (ACER"!.$←&!,3/ 3I!;+=!;PARTEENTERA+ENTRE =ENTONCES (ACER!58←!;PARTEENTERA+ENTRE = !;PARTEENTERA+ENTRE =←!;+= !;+=←!58 +←PARTEENTERA+ENTRE Y"!.$←6%2$!$%2/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO]
03%&/"$*Î/*/5&3/"
367
&)'52! -ONTÓCULOREPRESENTADO COMOARREGLO UNIDIMENSIONAL
%LIMINACIØNDEUNMONTÓCULO %LPROCESOPARAOBTENERLOSELEMENTOSORDENADOSSEEFECTÞAELIMINANDOLARAÓZDELMON TÓCULOENFORMAREPETIDA!HORABIEN LOSPASOSNECESARIOSPARALOGRARLAELIMINACIØNDE LARAÓZDELMONTÓCULOSON 3EREEMPLAZALARAÓZCONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO 3EVERIlCASIELVALORDELARAÓZESMENORQUEELVALORMÈSGRANDEDESUSHIJOS3ISE CUMPLELACONDICIØN ENTONCESSEEFECTÞAELINTERCAMBIO3INOSECUMPLELACONDI CIØN ENTONCESELALGORITMOSEDETIENEYELELEMENTOQUEDAUBICADOENSUPOSICIØN CORRECTAENELMONTÓCULO #ABEACLARARQUEELPASOSEAPLICADEMANERARECURSIVAYDESDEARRIBAHACIAABAJO
%JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLARAÓZDELMONTÓCULO DELAlGURA 2EEMPLAZAMOSLARAÓZ PORELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCU LO !CONTINUACIØNEFECTUAMOSLASSIGUIENTESCOMPARACIONES
SÓHAYINTERCAMBIO
ESELMAYORDELOSHIJOSDE
SÓHAYINTERCAMBIO
ESELMAYORDELOSHIJOSDE
%LMONTÓCULO LUEGODEHABERSEELIMINADOLARAÓZ QUEDACOMOELQUESEPRESENTAEN LAlGURA
&)'52! -ONTÓCULOREPRESENTADO COMOÉRBOL
368 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ &)'52! -ONTÓCULOREPRESENTADO COMOÉRBOL
%JEMPLO
3UPONGAMOSQUESEDESEAELIMINARLARAÓZDELMONTÓCULO PRESENTADOCOMOARREGLO DE LAlGURA ENFORMAREPETIDA #ABEACLARARQUEALREEMPLAZARLARAÓZPORELÞLTIMOELEMENTODELMONTÓCULO ÏSTA SECOLOCAENLAPOSICIØNDELÞLTIMOELEMENTO%SDECIR LAPRIMERAVEZLARAÓZSERÈCOLO CADAENLAPOSICIØNN LASEGUNDAVEZENLAPOSICIØNNn LATERCERAVEZENLAPOSICIØN Nn YASÓSUCESIVAMENTEHASTAQUEQUEDECOLOCADAENLASPOSICIONESY ENFORMA RESPECTIVA,OSPASOSAREALIZARSON 02)-%2!%,)-).!#)».$%,!2!¶: 3EINTERCAMBIALARAÓZ CONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO ,ASCOMPARACIONESQUESEREALIZANSON !;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
!;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
!;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
,UEGODEELIMINARLAPRIMERARAÓZ ELMONTÓCULOQUEDAASÓ &)'52! -ONTÓCULOREPRESENTADO COMOARREGLOUNIDIMEN SIONAL
03%&/"$*Î/*/5&3/"
369
/BSERVEQUEELELEMENTOMÈSGRANDESEUBICØENLAÞLTIMAPOSICIØNDELARREGLO
3%'5.$!%,)-).!#)».$%,!2!¶: 3EINTERCAMBIALARAÓZ CONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO ,ASCOMPARACIONESQUESEREALIZANSON !;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
!;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
!;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
,UEGODEELIMINARLASEGUNDARAÓZ ELMONTÓCULOQUEDAASÓ
4%2#%2!%,)-).!#)».$%,!2!¶: 3EINTERCAMBIALARAÓZ CONELELEMENTOQUEOCUPALAÞLTIMAPOSICIØNDELMONTÓCULO ,ASCOMPARACIONESQUESEREALIZANSON !;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
!;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
!;=!;=
SÓHAYINTERCAMBIO
!;=ESELMAYORDELOSHIJOSDE!;=
,UEGODEELIMINARLATERCERARAÓZ ELMONTÓCULOQUEDAASÓ %NLATABLASEPRESENTAELRESULTADODELASRESTANTESELIMINACIONES/BSERVEQUE LUEGODEELIMINARLARAÓZDELMONTÓCULO ENFORMAREPETIDA ELARREGLOQUEDAORDENADO !CONTINUACIØNSEPRESENTAELALGORITMOQUEELIMINASUCESIVAMENTELARAÓZDELMON TÓCULO#ABEACLARARQUEPARAEFECTODEAUMENTARLAElCIENCIADELALGORITMOSEELIMINAN LOS INTERCAMBIOS PARCIALES UTILIZANDO UNA VARIABLE AUXILIAR EN LA QUE SE ALMACENA EL ÞLTIMOELEMENTODELMONTÓCULO
370 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ 4!",! %LIMINACIØN
-ONTÓCULO
!LGORITMO %LIMINA?MONTÓCULO %LIMINA?MONTÓCULO! . [%LALGORITMOELIMINALARAÓZDELMONTÓCULOENFORMAREPETIDA!ESUNARREGLOUNIDIMENSIONAL DE.ELEMENTOS] [) !58 ):1 $%2 + Y!0 SON VARIABLES DE TIPO ENTERO "//, ES UNA VARIABLE DE TIPO BOOLEANO] 2EPETIRCON)DESDE.HASTA[#ICLODESCENDENTE] (ACER!58←!;)= !;)=←!;= ):1← $%2← +←Y "//,←6%2$!$%2/ -IENTRAS):1) Y"//,6%2$!$%2/ 2EPETIR (ACER-!9/2←!;):1=Y!0←):1 3I-!9/2!;$%2= Y$%2≠) ENTONCES (ACER-!9/2←!;$%2=Y!0←$%2 [&INDELCONDICIONALDELPASO] 3I!58-!9/2 ENTONCES (ACER!;+=←!;!0=Y+←!0 SINO (ACER"//,←&!,3/ [&INDELCONDICIONALDELPASO] (ACER):1←+ Y$%2←):1 [&INDELCICLODELPASO] (ACER!;+=←!58 [&INDELCICLODELPASO]
03%&/"$*Î/&95&3/"
371
%LPROCESODEORDENACIØNPORELMÏTODODELMONTÓCULOCONSTADEDOSPARTES #ONSTRUIRELMONTÓCULO%STAOPERACIØNSEBASAENLADEINSERCIØNPRESENTADAENEL ALGORITMO %LIMINARREPETIDAMENTELARAÓZDELMONTÓCULO%STAOPERACIØNSEBASAENLADEELIMI NACIØNPRESENTADAENELALGORITMO %LALGORITMODEORDENACIØN RESULTAENTONCESDELASIGUIENTEMANERA !LGORITMO -ONTÓCULO -ONTÓCULO! . [%LALGORITMOORDENALOSELEMENTOSDELARREGLOUTILIZANDOELMÏTODODELMONTÓCULO!ESUN ARREGLOUNIDIMENSIONALDE.ELEMENTOS] ,LAMARALALGORITMO)NSERTA?MONTÓCULOCON!Y. ,LAMARALALGORITMO%LIMINA?MONTÓCULOCON!Y.
!NÉLISISDEElCIENCIADELMÏTODODELMONTÓCULO %LANÈLISISDELMÏTODODELMONTÓCULO COMOELDELOSMÏTODOSLOGARÓTMICOS ESCOMPLEJO %SIMPORTANTETENERENCUENTATANTOLAFASEDECONSTRUCCIØNDELMONTÓCULOCOMOLAFASE DONDESEELIMINAREPETIDAMENTESURAÓZ PARAlNALMENTEOBTENERELARREGLOORDENADO !DIFERENCIADELOQUESEPUDIERAPENSAR YAQUEENLAFASEDECONSTRUCCIØNDELMON TÓCULOLOSELEMENTOSMAYORESSECARGANHACIALAIZQUIERDAYENLAFASEDEELIMINACIØNDE LARAÓZLOSELEMENTOSMAYORESSECARGANHACIALADERECHA ÏSTEESUNMÏTODOMUYRÈPIDO SOBRETODOPARAVALORESGRANDESDE.,OSESTUDIOSREALIZADOSALRESPECTODEMUESTRAN QUEELTIEMPODEEJECUCIØNDELALGORITMOENAMBASFASESESDE/N LOGN !UNQUEELMÏTODODELMONTÓCULOPUEDESERUNPOCOMÈSLENTOQUEELQUICKSORTSE ESTIMAEN ESELÞNICOQUEGARANTIZAQUEAUNENELPEORCASOSUTIEMPODEEJECU CIØNESPROPORCIONALAN LOGN /N LOGN 2ECUERDEQUEELTIEMPODEEJECUCIØNDEL MÏTODOQUICKSORT ENELPEORCASO ESPROPORCIONALAN /N
/2$%.!#)¼.%84%2.! %NLAACTUALIDADESMUYCOMÞNPROCESARTALESVOLÞMENESDEINFORMACIØNQUELOSDATOS NOSEPUEDENALMACENARENLAMEMORIAPRINCIPALDELACOMPUTADORA%STOSDATOS ORGA NIZADOSENARCHIVOS SEGUARDANENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO COMO CINTAS DISCOS ETCÏTERA %LPROCESODEORDENARLOSDATOSALMACENADOSENVARIOSARCHIVOSSECONOCECOMO FUSIØNOMEZCLASEENTIENDEPORESTECONCEPTOALACOMBINACIØNOINTERCALACIØNDEDOS OMÈSSECUENCIASORDENADASENUNAÞNICASECUENCIAORDENADA3EDEBEHACERHINCAPIÏEN
372 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ QUESØLOSECOLOCANENLAMEMORIAPRINCIPALDELACOMPUTADORALOSDATOSQUESEPUEDEN ACCEDERENFORMADIRECTA
)NTERCALACIØNDEARCHIVOS 0OR INTERCALACIØN DE ARCHIVOS SE ENTIENDE LA UNIØN O FUSIØN DE DOS O MÈS ARCHIVOS ORDENADOSDEACUERDOCONUNDETERMINADOCAMPOCLAVE ENUNSOLOARCHIVO!NALICEMOS ELSIGUIENTEEJEMPLO
%JEMPLO
3UPONGAQUESETIENENDOSARCHIVOS &Y& CUYAINFORMACIØNESTÈORDENADADEACUER DOCONUNCAMPOCLAVE & & 3EDEBEPRODUCIR ENTONCES UNARCHIVO&ORDENADO COMORESULTADODELAMEZCLA DE&Y&3ØLOSEPUEDENACCEDERENFORMADIRECTADOSCLAVES LAPRIMERADELARCHIVO & Y LA SEGUNDA DEL ARCHIVO & ,AS COMPARACIONES QUE SE REALIZAN PARA PRODUCIR EL ARCHIVO&SON
SÓSECUMPLELACONDICIØN 3EESCRIBEENELARCHIVODESALIDA&YSEVUELVEALEEROTRACLAVE DE&
SÓSECUMPLELACONDICIØN 3EESCRIBEENELARCHIVODESALIDA&YSEVUELVEALEEROTRACLAVE DE&
NOSECUMPLELACONDICIØN 3EESCRIBEENELARCHIVODESALIDA&YSEVUELVEALEEROTRACLAVE DE&
%LESTADODELOSARCHIVOS& &Y& HASTAELMOMENTO ESCOMOSEMUESTRAMÈS ABAJO,AmECHASE×ALAELÞLTIMOELEMENTOLEÓDODELOSARCHIVOSQUESEESTÈNINTERCA LANDO ↓ & ↓ & & %LPROCESOCONTINÞAHASTAQUEENUNOUOTROARCHIVOSEDETECTESUlNALENTALCASO SØLOSETENDRÈQUECOPIARLAINFORMACIØNDELARCHIVONOVACÓOALARCHIVODESALIDA&%L RESULTADOlNALDELAINTERCALACIØNENTRELOSARCHIVOS&Y&ES
03%&/"$*Î/&95&3/"
373
& !CONTINUACIØNSEMUESTRAELALGORITMODEINTERCALACIØNDEARCHIVOS !LGORITMO )NTERCALACIØN
)NTERCALACIØN& & & [%LALGORITMOINTERCALALOSELEMENTOSDEDOSARCHIVOSYAORDENADOS&Y&YALMACENAEL RESULTADOENELARCHIVO&] [2Y2SONVARIABLESDETIPOENTERO"!.Y"!.SONVARIABLESDETIPOBOOLEANO]
!BRIRLOSARCHIVOS&Y&PARALECTURA !BRIRELARCHIVO&PARAESCRITURA (ACER"!.←6%2$!$%2/Y"!.←6%2$!$%2/ -IENTRAS NO SEA EL lN DE ARCHIVO DE & O "!. &!,3/ Y NO SEA EL lN DE ARCHIVODE& O"!.&!,3/ 2EPETIR 3I"!.6%2$!$%2/ ENTONCES[3EDEBELEER2DE&] ,EER2DE& (ACER"!.←&!,3/ [&INDELCONDICIONALDELPASO] 3I"!.6%2$!$%2/ ENTONCES[3EDEBELEER2DE&] ,EER2DE& (ACER"!.←&!,3/ [&INDELCONDICIONALDELPASO] 3I22 ENTONCES %SCRIBIR2EN& (ACER"!.←6%2$!$%2/ SINO %SCRIBIR2EN& (ACER"!.←6%2$!$%2/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [6ERIlCASISELEYØUNELEMENTODE&YNOSECOPIØEN&] 3I"!.&!,3/ ENTONCES %SCRIBIR2EN& -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN& [&INDELCICLODELPASO] [&INDELCONDICIONALDELPASO] [6ERIlCASISELEYØUNELEMENTODE&YNOSECOPIØEN&] 3I"!.&!,3/ ENTONCES %SCRIBIR2EN& -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR
374 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/
,EER2DE& %SCRIBIR2EN& [&INDELCICLODELPASO] [&INDELCONDICIONALDELPASO] [#ERRARLOSARCHIVOS& &Y&]
/RDENACIØNDEARCHIVOS ,A ORDENACIØN DE ARCHIVOS SE EFECTÞA CUANDO EL VOLUMEN DE LOS DATOS ES DEMASIADO GRANDE Y ÏSTOS NO CABEN EN LA MEMORIA PRINCIPAL DE LA COMPUTADORA!L OCURRIR ESTA SITUACIØNNOSEPUEDENAPLICARLOSMÏTODOSDEORDENACIØNINTERNAESTUDIADOSENLAPRI MERAPARTEDEESTECAPÓTULO DEMODOQUESEDEBEPENSARENOTROTIPODEALGORITMOSPARA ORDENARDATOSALMACENADOSENARCHIVOS 0ORORDENACIØNDEARCHIVOSSEENTIENDE ENTONCES LAORDENACIØNOCLASIlCACIØNDE ÏSTOS ASCENDENTEODESCENDENTEMENTE DEACUERDOCONUNCAMPODETERMINADOALQUE SEDENOMINARÈCAMPOCLAVE,APRINCIPALDESVENTAJADEESTAORDENACIØNESELTIEMPODE EJECUCIØN DEBIDOALASSUCESIVASOPERACIONESDELECTURAYESCRITURAADEARCHIVO ,OS DOS MÏTODOS DE ORDENACIØN EXTERNA MÈS IMPORTANTES SON LOS BASADOS EN LA MEZCLADIRECTAYENLAMEZCLAEQUILIBRADA
/RDENACIØNPORMEZCLADIRECTA %LMÏTODODEORDENACIØNPORMEZCLADIRECTAESPROBABLEMENTEELMÈSUTILIZADOPORSU FÈCILCOMPRENSIØN,AIDEACENTRALDEESTEALGORITMOCONSISTEENLAREALIZACIØNSUCESIVA DEUNAPARTICIØNYUNAFUSIØNQUEPRODUCESECUENCIASORDENADASDELONGITUDCADAVEZ MAYOR%NLAPRIMERAPASADA LAPARTICIØNESDELONGITUDYLAFUSIØNOMEZCLAPRODUCE SECUENCIASORDENADASDELONGITUD%NLASEGUNDAPASADA LAPARTICIØNESDELONGITUD YLAFUSIØNOMEZCLAPRODUCESECUENCIASORDENADASDELONGITUD%STEPROCESOSEREPITE HASTAQUELALONGITUDDELASECUENCIAPARALAPARTICIØNSEA 0ARTEENTERAN $ONDENREPRESENTAELNÞMERODEELEMENTOSDELARCHIVOORIGINAL
%JEMPLO
3UPONGAMOSQUESEDESEAORDENARLASCLAVESDELARCHIVO&0ARAREALIZARTALACTIVIDADSE UTILIZANDOSARCHIVOSAUXILIARESALOSQUESELESDENOMINARÈ&Y& & 02)-%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD
03%&/"$*Î/&95&3/"
375
& ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ & ʹ ʹ ʹ ʹ ʹ ʹ ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ 3%'5.$!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ & ʹ ʹ ʹ ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ 4%2#%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ & ʹ ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ #5!24!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ & ʹ &USIØNENSECUENCIASDELONGITUD & !CONTINUACIØNSEPRESENTAELALGORITMODEORDENACIØNDEARCHIVOSPORELMÏTODO DEMEZCLADIRECTA
376 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ !LGORITMO -EZCLA?DIRECTA -EZCLA?DIRECTA& & & . [%LALGORITMOORDENALOSELEMENTOSDELARCHIVO&PORELMÏTODODEMEZCLADIRECTA5TILIZADOS ARCHIVOSAUXILIARES&Y&.ESELNÞMERODEELEMENTOSDELARCHIVO&] [0!24ESUNAVARIABLEDETIPOENTERO] (ACER0!24← -IENTRAS0!24PARTEENTERA. 2EPETIR ,LAMARALALGORITMO0ARTICIONACON& & &Y0!24 ,LAMARALALGORITMO&USIONACON& & &Y0!24 (ACER0!24←0!24 [&INDELCICLODELPASO]
/BSERVEQUEELALGORITMOREQUIEREPARASUFUNCIONAMIENTODEDOSALGORITMOSAUXI LIARES LOSCUALESSEPRESENTANACONTINUACIØN
!LGORITMO 0ARTICIONA
0ARTICIONA& & & 0!24 [%L ALGORITMO GENERA DOS ARCHIVOS AUXILIARES & Y & A PARTIR DEL ARCHIVO & 0!24 ES LA LONGITUDDELAPARTICIØNQUESEVAAREALIZAR] [+ ,Y2SONVARIABLESDETIPOENTERO] !BRIRELARCHIVO&PARALECTURA !BRIRLOSARCHIVOS&Y&PARAESCRITURA -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR (ACER+← -IENTRAS+0!24 YNOSEAELlNDEARCHIVODE& GZeZi^g ,EER2DE& %SCRIBIR2EN& (ACER+←+ [&INDELCICLODELPASO] (ACER,← -IENTRAS,0!24 YNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN& (ACER,←, [&INDELCICLODELPASO] [&INDELCICLODELPASO]
03%&/"$*Î/&95&3/"
377
!LGORITMO &USIONA &USIONA& & & 0!24 [%LALGORITMOFUSIONALOSARCHIVOS&Y&ENELARCHIVO&0!24ESLALONGITUDDELAPARTICIØN QUESEREALIZØPREVIAMENTE] [2 2 +Y,SONVARIABLESDETIPOENTERO"Y"SONVARIABLESDETIPOBOOLEANO] !BRIRELARCHIVO&PARAESCRITURA !BRIRLOSARCHIVOS&Y&PARALECTURA (ACER"←6%2$!$%2/Y"←6%2$!$%2/ 3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/ [&INDELCONDICIONALDELPASO] 3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/ [&INDELCONDICIONALDELPASO] -IENTRASNOSEAELlNDEARCHIVODE& O"&!,3/ YNOSEAEL lNDEARCHIVODE& O"&!,3/ 2EPETIR (ACER+←Y,← -IENTRAS+0!24 Y"&!,3/ Y,0!24 Y"&!,3/ 2EPETIR 3I2≤2 ENTONCES %SCRIBIR2EN& (ACER"←6%2$!$%2/Y+←+ 3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/ [&INDELCONDICIONALDELPASO] SINO %SCRIBIR2EN& (ACER"←6%2$!$%2/Y,←, 3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] -IENTRAS+0!24 Y"&!,3/ 2EPETIR %SCRIBIR2EN& (ACER"←6%2$!$%2/Y+←+ 3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
378 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ -IENTRAS,0!24 Y"&!,3/ 2EPETIR %SCRIBIR2EN& (ACER"←6%2$!$%2/Y,←, 3INOESELlNDEARCHIVODE& ENTONCES ,EER2DE& (ACER"←&!,3/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [&INDELCICLODELPASO] 3I"&!,3/ ENTONCES %SCRIBIR2EN& [&INDELCONDICIONALDELPASO] 3I"&!,3/ ENTONCES %SCRIBIR2EN& [&INDELCONDICIONALDELPASO] -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN& [&INDELCONDICIONALDELPASO] -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& %SCRIBIR2EN& [&INDELCICLODELPASO] [#ERRARLOSARCHIVOS& &Y&]
%JEMPLO
3UPONGAMOS QUE SE DESEA ORDENAR LAS CLAVES DEL ARCHIVO & UTILIZANDO EL MÏTODO DE MEZCLADIRECTO & ,OSPASOSQUESEREALIZANSON 02)-%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ & ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ ʹ
03%&/"$*Î/&95&3/"
379
3%'5.$!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ ʹ & ʹ ʹ ʹ ʹ ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ ʹ 4%2#%2!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ & ʹ ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ ʹ ʹ #5!24!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ ʹ & ʹ &USIØNENSECUENCIASDELONGITUD & ʹ ʹ 15).4!0!3!$! 0ARTICIØNENSECUENCIASDELONGITUD & ʹ & ʹ &USIØNENSECUENCIASDELONGITUD &
380 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/
/RDENACIØNPORELMÏTODODEMEZCLAEQUILIBRADA %L MÏTODO DE ORDENACIØN POR MEZCLA EQUILIBRADA CONOCIDO TAMBIÏN CØMO MEZCLA NATURAL ESUNAOPTIMIZACIØNDELMÏTODODEMEZCLADIRECTA ,AIDEACENTRALDEESTEALGORITMOCONSISTEENREALIZARLASPARTICIONESTOMANDOSE CUENCIASORDENADASDEMÈXIMALONGITUDENLUGARDESECUENCIASDETAMA×OlJOPREVIA MENTEDETERMINADAS,UEGOSEREALIZALAFUSIØNDELASSECUENCIASORDENADAS ENFORMA ALTERNADA SOBREDOSARCHIVOS!PLICANDOESTASACCIONESENFORMAREPETIDASELOGRARÈQUE ELARCHIVOORIGINALQUEDEORDENADO0ARALAREALIZACIØNDEESTEPROCESODEORDENACIØN SENECESITARÈNCUATROARCHIVOS%LARCHIVOORIGINAL&YTRESARCHIVOSAUXILIARESALOS QUESEDENOMINARÈ& &Y&$EESTOSARCHIVOS DOSSERÈNCONSIDERADOSDEENTRADA YDOSDESALIDAESTO DEMANERAALTERNADA CONELOBJETODEREALIZARLAFUSIØN PARTICIØN %LPROCESOTERMINACUANDOENLAREALIZACIØNDEUNAFUSIØN PARTICIØNELSEGUNDOARCHIVO QUEDEVACÓO
%JEMPLO
3UPONGAMOS QUE SE DESEA ORDENAR LAS CLAVES DEL ARCHIVO & UTILIZANDO EL MÏTODO DE MEZCLAEQUILIBRADA & ,OSPASOSQUESEREALIZANSON 0!24)#)».).)#)!, & ʹ ʹ ʹ ʹ & ʹ ʹ ʹ 02)-%2!&53)». 0!24)#)». & ʹ ʹ & ʹ 3%'5.$!&53)». 0!24)#)». & ʹ & ʹ 4%2#%2!&53)». 0!24)#)». & & /BSERVEQUEALREALIZARLATERCERAFUSIØN PARTICIØNELSEGUNDOARCHIVOQUEDAVACÓO PORLOTANTO SEPUEDEAlRMARQUEELARCHIVOYASEENCUENTRAORDENADO!CONTINUACIØN SEPRESENTALADESCRIPCIØNFORMALDELALGORITMODEMEZCLAEQUILIBRADA
03%&/"$*Î/&95&3/"
381
!LGORITMO -EZCLA?EQUILIBRADA -EZCLA?EQUILIBRADA& & & & [%LALGORITMOORDENALOSELEMENTOSDELARCHIVO&PORELMÏTODODEMEZCLAEQUILIBRADA5TILIZA TRESARCHIVOSAUXILIARES& &Y&] ["!.$ESUNAVARIABLEDETIPOBOOLEANO] ,LAMARALALGORITMO0ARTICIØN?INICIALCON& &Y& ,LAMARALALGORITMO0ARTICIØN?FUSIØNCON& & &Y& (ACER"!.$←&!,3/ -IENTRAS&≠6!#¶/ O&≠6!#¶/ 2EPETIR 3I"!.$6%2$!$%2/ ENTONCES ,LAMARALALGORITMO0ARTICIØN?FUSIØNCON& & &Y& (ACER"!.$←&!,3/ SINO ,LAMARALALGORITMO0ARTICIØN?FUSIØNCON& & &Y& (ACER"!.$←6%2$!$%2/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO]
%L ALGORITMO REQUIERE PARA SU FUNCIONAMIENTO DE DOS ALGORITMOS AUXILIARES 0ARTICIØN?INICIALY0ARTICIØN?FUSIØN LOSCUALESSEPRESENTANACONTINUACIØN !LGORITMO 0ARTICIØN?INICIAL 0ARTICIØN?INICIAL& & & [%LALGORITMOPRODUCELAPARTICIØNINICIALDELARCHIVO&ENDOSARCHIVOSAUXILIARES &Y&] [!58Y2SONVARIABLESDETIPOENTERO"!.$ESUNAVARIABLEDETIPOBOOLEANO] !BRIRELARCHIVO&PARALECTURA !BRIRLOSARCHIVOS&Y&PARAESCRITURA ,EER2DE& %SCRIBIR2EN& (ACER"!.$←6%2$!$%2/Y!58←2 -IENTRASNOSEAELlNDEARCHIVODE& 2EPETIR ,EER2DE& 3I2≥!58 ENTONCES (ACER!58←2 3I"!.$6%2$!$%2/ ENTONCES %SCRIBIR2EN& SINO
382 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ %SCRIBIR2EN& [&INDELCONDICIONALDELPASO] SINO (ACER!58←2 3I"!.$6%2$!$%2/ ENTONCES %SCRIBIR2EN& (ACER"!.$←&!,3/ SINO %SCRIBIR2EN& (ACER"!.$←6%2$!$%2/ [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] [#ERRARLOSARCHIVOS& &Y&]
!LGORITMO 0ARTICIØN?FUSIØN 0ARTICIØN?FUSIØN&! &" &$ [%LALGORITMOPRODUCELAPARTICIØNYLAFUSIØNDELOSARCHIVOS&!Y&" ENLOSARCHIVOSY &$] [2 2 Y!58 SON VARIABLES DE TIPO ENTERO "!. "!. Y "!. SON VARIABLES DE TIPO BOOLEANO] !BRIRLOSARCHIVOS&!Y&"PARALECTURA !BRIRLOSARCHIVOSY&$PARAESCRITURA (ACER"!.←6%2$!$%2/ "!.←6%2$!$%2/ "!.←6%2$!$%2/Y !58←n[!58SEINICIALIZACONUNVALORNEGATIVOALTO] -IENTRASNOSEAELlNDEARCHIVODE&! O"!.&!,3/ YNO SEAELlNDEARCHIVODE&" O"!.&!,3/ 2EPETIR 3I"!.6%2$!$%2/ ENTONCES ,EER2DE&! (ACER"!.←&!,3/ [&INDELCONDICIONALDELPASO] 3I"!.6%2$!$%2/ ENTONCES ,EER2DE&" (ACER"!.←&!,3/ [&INDELCONDICIONALDELPASO] 3I22 ENTONCES 3I2≥!58 ENTONCES 3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN SINO
03%&/"$*Î/&95&3/"
%SCRIBIR2EN&$ [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←2 SINO 3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN (ACER"!.←&!,3/ SINO %SCRIBIR2EN&$ (ACER"!.←6%2$!$%2/ [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←n [&INDELCONDICIONALDELPASO] SINO 3I2≥!58 ENTONCES 3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN SINO %SCRIBIR2EN&$ [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←2 SINO 3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN (ACER"!.←&!,3/ SINO %SCRIBIR2EN&$ (ACER"!.←6%2$!$%2/ [&INDELCONDICIONALDELPASO] (ACER"!.←6%2$!$%2/Y!58←n [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.&!,3/ ENTONCES 3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN -IENTRASNOSEAELlNDEARCHIVODE&! 2EPETIR ,EER2DE&! %SCRIBIR2EN [&INDELCICLODELPASO] SINO %SCRIBIR2EN&$ -IENTRASNOSEAELlNDEARCHIVODE&! 2EPETIR ,EER2DE&! %SCRIBIR2EN&$
383
384 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ [&INDELCICLODELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] 3I"!.&!,3/ ENTONCES 3I"!.6%2$!$%2/ ENTONCES %SCRIBIR2EN -IENTRASNOSEAELlNDEARCHIVODE&" 2EPETIR ,EER2DE&" %SCRIBIR2EN [&INDELCICLODELPASO] SINO %SCRIBIR2EN&$ -IENTRASNOSEAELlNDEARCHIVODE&" 2EPETIR ,EER2DE&" %SCRIBIR2EN&$ [&INDELCICLODELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [#ERRARLOSARCHIVOS&! &" Y&$]
%JEMPLO
3UPONGAMOS QUE SE DESEA ORDENAR LAS CLAVES DEL ARCHIVO & UTILIZANDO EL MÏTODO DE MEZCLAEQUILIBRADA & ,OSPASOSQUESEREALIZANSON 0!24)#)».).)#)!, & ʹ ʹ ʹ ʹ & ʹ ʹ ʹ 02)-%2!&53)». 0!24)#)». & ʹ ʹ & ʹʹ 3%'5.$!&53)». 0!24)#)». & ʹ & ʹ
03%&/"$*Î/&95&3/"
385
4%2#%2!&53)». 0!24)#)». & &
386 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/
▼ %*%2#)#)/3 /RDENACIØNINTERNA Ê £° %NUNARREGLOSEGUARDANLOSAPELLIDOSDE.ALUMNOS!PLIQUEELMÏTODODELABUR BUJAORDENACIØNPORELMÏTODODEINTERCAMBIODIRECTOPARAORDENARELARREGLO ENFORMAASCENDENTE DEMANERAQUE !P≤!P≤≤!PN Ê Ó° 2ESUELVAELPROBLEMAAPLICANDOELMÏTODODELABURBUJACONSE×AL Ê Î° 2ESUELVAELPROBLEMAAPLICANDOELMÏTODOSHAKERSORT Ê {° #OMPAREELTIEMPODEEJECUCIØNDELASSOLUCIONES YPARADISTINTOSVALORESDE . Ê x° $ADOUNARREGLOUNIDIMENSIONALDE.NÞMEROSENTEROS ORDÏNELOENFORMADESCEN DENTEAPLICANDO A )NSERCIØNDIRECTA B )NSERCIØNBINARIA C 3ELECCIØNDIRECTA #OMPAREELTIEMPODEEJECUCIØNDELASSOLUCIONESA BYCPARADISTINTOSVALORES DE. Ê È° 3ETIENENTRESARREGLOSPARALELOS%LPRIMERODEELLOSALMACENALASMATRÓCULASDE. ALUMNOSELSEGUNDO LASCALIlCACIONESDELOS.ALUMNOSOBTENIDASENUNEXAMEN lNAL YELTERCERO ELNÞMEROTOTALDEMATERIASAPROBADASPORCADAALUMNO,OSELE MENTOSDELOSARREGLOSSECORRESPONDEN A !PLIQUEELMÏTODODEINSERCIØNDIRECTAPARAORDENARLOSARREGLOS DEMANERAQUE QUEDENORDENADOSENFORMAASCENDENTEPORMATRÓCULA B !PLIQUEELMÏTODOQUICKSORTPARAORDENARLOSARREGLOS DEMANERAQUEQUEDENORDE NADOSENFORMADESCENDENTEPORELNÞMEROTOTALDEMATERIASAPROBADAS Ê Ç° %NCIERTAEMPRESASEMANEJAUNALISTADEPRECIOSDELOS.ARTÓCULOSQUESEVENDEN $ECADAARTÓCULOSETIENELASIGUIENTEINFORMACIØN ◗ ◗ ◗
#LAVEDELARTÓCULO .OMBREDELARTÓCULO 0RECIODELARTÓCULO
A /RDENEELARREGLOENFORMAASCENDENTESEGÞNELCAMPOhCLAVEv!PLIQUEELMÏTODO QUICKSORT
&+&3$*$*04
387
B /RDENEELARREGLOENFORMADESCENDENTESEGÞNELCAMPOhPRECIOv!PLIQUEELMÏTO DODELMONTÓCULO Ê n° 2ESUELVA EL INCISO A DEL PROBLEMA APLICANDO EL MÏTODO DE SELECCIØN DIRECTA #OMPAREELTIEMPODEEJECUCIØNDEESTASOLUCIØNCONLAOBTENIDAENELEJERCICIO ANTERIOR PARADISTINTOSVALORESDE. Ê ° 5NACOMPA×ÓAPROPIETARIADEUNACADENADEHOTELESQUIEREQUESEORDENESUINFOR MACIØN$ECADAHOTELSETIENENLOSSIGUIENTESDATOS ◗ ◗ ◗ ◗
.OMBREDELHOTEL #IUDADENLAQUESEENCUENTRAELHOTEL .ÞMERODEESTRELLAS .ÞMERODECUARTOS %NUNAMISMACIUDADPUEDEHABERVARIOSHOTELESDELACOMPA×ÓA %SCRIBAUNPROGRAMAQUEORDENEELARREGLOSEGÞNELCAMPOhCIUDADv ENPRIMER TÏRMINO YLUEGO SEGÞNELCAMPO hNOMBREv%SDECIR ELARREGLODEBEQUEDAR .OMBRE .OMBRE .OMBREI .OMBREN
#IUDAD #IUDAD
.ÞMESTRELLAS .ÞMESTRELLAS
.ÞMCUARTOS .ÞMCUARTOS
#IUDAD
.ÞMESTRELLASI
.ÞMCUARTOSI
#IUDADK
.ÞMESTRELLASK
.ÞMCUARTOSN
$ONDE ◗ ◗ ◗ ◗
#IUDAD#IUDAD#IUDADK .OMBRE.OMBRE.OMBREIn .OMBREI.OMBREI.OMBREJn .OMBRET.OMBRET.OMBREN
£ä°2ETOMEELPROBLEMADELCAPÓTULO/RDENELOSARREGLOS352 #%.42/Y./2 4% APLICANDO A )NSERCIØNDIRECTA B )NSERCIØNBINARIA C 3HELL ££°5NAESCUELATIENEALMACENADOSLOSPRINCIPALESDATOSDECADAALUMNO²STOSSON ◗ ◗ ◗ ◗
.OMBREDELALUMNO -ATRÓCULA .ÞMERODEMATERIASAPROBADAS 0ROMEDIO
388 >«ÌÕÊnÊ Ê Ê .c50%04%&03%&/"$*Î/ A !PLIQUEELMÏTODODESELECCIØNDIRECTAPARAORDENARELARREGLODE.ALUMNOSEN FORMAASCENDENTE SEGÞNELCAMPOhNOMBREv B !PLIQUEELMÏTODOQUICKSORTPARAORDENARELARREGLODE.ALUMNOSENFORMAASCEN DENTE SEGÞNELCAMPOhNÞMERODEMATERIASAPROBADASv £Ó°3ETIENEUNARREGLODE.NÞMEROSENTEROS A z#UÈNTASCOMPARACIONESYCUÈNTOSINTERCAMBIOSSEDEBENREALIZARSISEORDENAEL ARREGLOCONELMÏTODODELABURBUJA B z#UÈNTASCOMPARACIONESYCUÈNTOSINTERCAMBIOSSEDEBENREALIZARSISEORDENAEL ARREGLOCONELMÏTODODESELECCIØNDIRECTA £Î°$ADOUNARREGLOUNIDIMENSIONALDE.NÞMEROSENTEROSQUEDEBESERORDENADOEN FORMAASCENDENTE CONTESTELASSIGUIENTESPREGUNTAS A #UÈNTASCOMPARACIONESEINTERCAMBIOSSEDEBENREALIZAR APLICANDOELMÏTODODE INSERCIØNDIRECTA SI ◗ %LARREGLOYAESTÈORDENADO ◗ %LARREGLOESTÈORDENADOENFORMADESCENDENTE B #ONTESTELAPREGUNTADELINCISOANTERIOR PARAELMÏTODOQUICKSORT C #ONTESTELAPREGUNTADELINCISOANTERIOR PARAELMÏTODODELMONTÓCULO £{°2ETOMEELPROBLEMA CONSIDERANDOQUESEDElNIØLACLASE!RTÓCULOYSETIENEUN ARREGLODEOBJETOSDEESTETIPO%SCRIBAUNAFUNCIØNQUEORDENEELARREGLODEOBJE TOS UTILIZANDOELALGORITMODEQUICKSORT £x°$ElNAUNACLASE!RREGLO SEGÞNLOVISTOENELCAPÓTULO%NLACLASEDEBEINCLUIRPOR LOMENOSMÏTODOSDELOSESTUDIADOSENESTECAPÓTULOPARAORDENARLOSELEMENTOS DELARREGLO £È°%SCRIBAUNAFUNCIØNQUEANIMEELPROCESODEORDENACIØNUSANDOELALGORITMODE QUICKSORT%SDECIR ENLAMEDIDAENQUESEVAORDENANDOELARREGLO ENLAPANTALLA SEDEBEIRREmEJANDOGRÈlCAMENTESUCAMBIODEESTADO
/RDENACIØNEXTERNA £Ç°$ADOUNARCHIVODENÞMEROSENTEROS ORDÏNELOEIMPRÓMALO £n°%NELARCHIVO%-0,%!$/3SETIENEINFORMACIØNSOBRELOSEMPLEADOSDEUNAEM PRESA,OSDATOSALMACENADOSPORCADAEMPLEADOSON ◗ ◗ ◗
.OMBRE %STADOCIVIL !NTIGàEDAD
&+&3$*$*04 ◗ ◗
389
#ATEGORÓA 3UELDO /RDENEELARCHIVOSEGÞNELCAMPOhNOMBREv
A !PLIQUEMEZCLADIRECTA B !PLIQUEMEZCLAEQUILIBRADA £°3ETIENEUNARCHIVOCONINFORMACIØNSOBREHUÏSPEDESDEUNHOTEL ◗ ◗ ◗
.ÞMERODEHABITACIØN .OMBREDELHUÏSPED &ECHADELLEGADA /RDENEELARCHIVOAPLICANDOELMÏTODODEMEZCLADIRECTA
A 3EGÞNELCAMPOhNÞMERODEHABITACIØNv B 3EGÞNELCAMPOhNOMBREv Óä°$ADOUNARCHIVODECADENASDECARACTERES ORDÏNELOENFORMADESCENDENTEAPLICAN DOELMÏTODODEMEZCLAEQUILIBRADA Ó£°3ETIENENDOSARCHIVOSORDENADOSCONLOSNOMBRESDELOSESTUDIANTESDEUNAESCUE LA.OSEHANACTUALIZADODELAMISMAMANERALOSDOSARCHIVOS HABIÏNDOSEDADODE ALTAAALGUNOSALUMNOSENUNARCHIVOPERONOENELOTRO%SCRIBAUNPROGRAMAQUE OBTENGAUNTERCERARCHIVO TAMBIÏNORDENADO INTERCALANDOLAINFORMACIØNDELOS DOSARCHIVOSEXISTENTES.ODEBENQUEDARELEMENTOSREPETIDOS ÓÓ°3ETIENENTRESARCHIVOS! !Y!CONINFORMACIØNSOBRERECITALESEFECTUADOSEN UNTEATRO ALOLARGODELOSTRESÞLTIMOSA×OS#ADAREGISTRODELOSARCHIVOSTIENELOS SIGUIENTESCAMPOS ◗ ◗ ◗
.OMBREDELCANTANTEUORQUESTAQUEOFRECIØELRECITAL .ÞMERODEPRESENTACIONES &ECHASDELASPRESENTACIONES ,OSTRESARCHIVOSESTÈNORDENADOSENFORMAASCENDENTESEGÞNELPRIMERCAMPO %SCRIBAUNPROGRAMAQUEINTERCALELOSTRESARCHIVOS FORMANDOELARCHIVO2% #)4!,%3
#APÓTULO
-³4/$/3 $%"Â315%$! ).42/$5##)¼. %STECAPÓTULOSEDEDICAALESTUDIODEUNADELASOPERACIONESMÈSIMPORTANTESENELPRO CESAMIENTODEINFORMACIØNLABÞSQUEDA%STAOPERACIØNSEUTILIZABÈSICAMENTEPARA RECUPERARDATOSQUESEHABÓANALMACENADOCONANTICIPACIØN%LRESULTADOPUEDESERDE ÏXITOSISEENCUENTRALAINFORMACIØNDESEADA ODEFRACASO ENCASOCONTRARIO ,A BÞSQUEDA OCUPA UNA PARTE IMPORTANTE DE NUESTRA VIDA 0RÈCTICAMENTE TODO EL TIEMPOESTAMOSBUSCANDOALGO%LMUNDOENQUESEVIVEHOYDÓAESDESARROLLADO AUTO MATIZADO YLAINFORMACIØNREPRESENTAUNELEMENTODEVITALIMPORTANCIA%SFUNDAMENTAL ESTARINFORMADOSY PORLOTANTO BUSCARYRECUPERARINFORMACIØN0OREJEMPLO SEBUSCAN NÞMEROSTELEFØNICOSENUNDIRECTORIO OFERTASLABORALESENUNPERIØDICO LIBROSENUNA BIBLIOTECA ETCÏTERA
&)'52! %JEMPLOPRÉCTICO DEBÞSQUEDA
392 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" &)'52! %JEMPLOPRÉCTICO DEBÞSQUEDA
%NLOSEJEMPLOSMENCIONADOS LABÞSQUEDASEREALIZA GENERALMENTE SOBREELEMEN TOSQUEESTÈNORDENADOS,OSDIRECTORIOSTELEFØNICOSESTÈNORGANIZADOSALFABÏTICAMENTE LASOFERTASLABORALESESTÈNORDENADASPORTIPODETRABAJOYLOSLIBROSDEUNABIBLIOTECAES TÈNCLASIlCADOSPORTEMA3INEMBARGO PUEDESUCEDERQUELABÞSQUEDASEREALICESOBRE UNACOLECCIØNDEELEMENTOSNOORDENADOS0OREJEMPLO CUANDOSEBUSCALALOCALIZACIØN DEUNACIUDADDENTRODEUNMAPA 3ECONCLUYEQUELAOPERACIØNDEBÞSQUEDASEPUEDELLEVARACABOSOBREELEMENTOS ORDENADOSODESORDENADOS#ABEDESTACARQUELABÞSQUEDAESMÈSFÈCILYOCUPAMENOS TIEMPOCUANDOLOSDATOSSEENCUENTRANORDENADOS ,OS MÏTODOS DE BÞSQUEDA SE PUEDEN CLASIlCAR EN INTERNOS Y EXTERNOS SEGÞN LA UBICACIØNDELOSDATOSSOBRELOSCUALESSEREALIZARÈLABÞSQUEDA3EDENOMINABÞSQUEDA INTERNACUANDOTODOSLOSELEMENTOSSEENCUENTRANENLAMEMORIAPRINCIPALDELACOMPU TADORA POR EJEMPLO ALMACENADOS EN ARREGLOS LISTAS LIGADAS O ÈRBOLES %S BÞSQUEDA EXTERNASILOSELEMENTOSESTÈNENMEMORIASECUNDARIAESDECIR SIHUBIERAARCHIVOSEN DISPOSITIVOSCOMOCINTASYDISCOSMAGNÏTICOS %N LA SIGUIENTE SECCIØN SE ESTUDIARÈN LOS MÏTODOS INTERNOS POSTERIORMENTE EN LA SECCIØNSEHARÈLOPROPIOCONLOSEXTERNOS
"Â315%$!).4%2.! ,A BÞSQUEDA INTERNA TRABAJA CON ELEMENTOS QUE SE ENCUENTRAN ALMACENADOS EN LA MEMORIAPRINCIPALDELAMÈQUINA²STOSPUEDENESTARENESTRUCTURASESTÈTICASARRE GLOSODINÈMICASLISTASLIGADASYÈRBOLES,OSMÏTODOSDEBÞSQUEDAINTERNAMÈS IMPORTANTESSON ◗ ◗
3ECUENCIALOLINEAL "INARIA
#Ò426&%"*/5&3/" ◗ ◗
393
0ORTRANSFORMACIØNDECLAVES «RBOLESDEBÞSQUEDA
"ÞSQUEDASECUENCIAL ,ABÞSQUEDASECUENCIALCONSISTEENREVISARELEMENTOTRASELEMENTOHASTAENCONTRAREL DATOBUSCADO OLLEGARALlNALDELCONJUNTODEDATOSDISPONIBLE 0RIMEROSETRATARÈSOBRELABÞSQUEDASECUENCIALENARREGLOS YLUEGOENLISTASENLA ZADAS%NELPRIMERCASO SEDEBEDISTINGUIRENTREARREGLOSORDENADOSYDESORDENADOS %STAÞLTIMACONSISTE BÈSICAMENTE ENRECORRERELARREGLODEIZQUIERDAADERECHA HASTAQUESEENCUENTREELELEMENTOBUSCADOOSETERMINEELARREGLO LOQUEOCURRAPRIME RO.ORMALMENTECUANDOUNAFUNCIØNDEBÞSQUEDACONCLUYECONÏXITO INTERESACONOCER EN QUÏ POSICIØN FUE HALLADO EL ELEMENTO QUE SE ESTABA BUSCANDO %STA IDEA SE PUEDE GENERALIZARPARATODOSLOSMÏTODOSDEBÞSQUEDA !CONTINUACIØNSEPRESENTAELALGORITMODEBÞSQUEDASECUENCIALENARREGLOSDESOR DENADOS !LGORITMO 3ECUENCIAL?DESORDENADO
3ECUENCIAL?DESORDENADO6 . 8 [%STE ALGORITMO BUSCA SECUENCIALMENTE EL ELEMENTO 8 EN UN ARREGLO UNIDIMENSIONAL DESOR DENADO6 DE.COMPONENTES] [)ESUNAVARIABLEDETIPOENTERO] (ACER)← -IENTRAS)≤. Y6;)=≠8 2EPETIR (ACER)←) [&INDELCICLODELPASO] 3I). ENTONCES %SCRIBIRh,AINFORMACIØNNOESTÈENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv ) [&INDELCONDICIONALDELPASO]
3ONDOSLOSPOSIBLESRESULTADOSQUESEPUEDENOBTENERALAPLICARESTEALGORITMOLA POSICIØNENLAQUEENCONTRØELELEMENTO OUNMENSAJEDEFRACASOSIELELEMENTONOSE HALLAENELARREGLO3IHUBIERADOSOMÈSOCURRENCIASDELMISMOVALOR SEENCUENTRALA PRIMERADEELLAS3INEMBARGO ESPOSIBLEMODIlCARELALGORITMOPARAOBTENERTODASLAS OCURRENCIASDELDATOBUSCADO !CONTINUACIØNSEPRESENTAUNAVARIANTEDEESTEALGORITMO PEROUTILIZANDORECURSI VIDAD ENLUGARDEITERATIVIDAD
394 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" !LGORITMO 3ECUENCIAL?DESORDENADO?RECURSIVO 3ECUENCIAL?DESORDENADO?RECURSIVO6 . 8 ) [%STE ALGORITMO BUSCA SECUENCIALMENTE Y DE FORMA RECURSIVA AL ELEMENTO 8 EN EL ARREGLO UNIDIMENSIONALDESORDENADO6 DE.COMPONENTES] [)ESUNPARÈMETRODETIPOENTEROQUEINICIALMENTESEENCUENTRAEN] 3I). ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO 3I6;)=8 ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv ) SINO 2EGRESARA3ECUENCIAL?DESORDENADO?RECURSIVOCON6 . 8E) [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
,ABÞSQUEDASECUENCIALENARREGLOSORDENADOSESSIMILARALCASOANTERIOR3INEM BARGO ELORDENENTRELOSELEMENTOSDELARREGLOPERMITEINCLUIRUNANUEVACONDICIØNQUE HACE MÈS ElCIENTE AL PROCESO! CONTINUACIØN ANALICEMOS EL ALGORITMO DE BÞSQUEDA SECUENCIALENARREGLOSORDENADOS !LGORITMO 3ECUENCIAL?ORDENADO 3ECUENCIAL?ORDENADO6 . 8 [%STEALGORITMOBUSCASECUENCIALMENTEALELEMENTO8ENUNARREGLOUNIDIMENSIONALORDENADO 6 DE.COMPONENTES6SEENCUENTRAORDENADOCRECIENTEMENTE6;=≤6;=≤≤6;.=] [)ESUNAVARIABLEDETIPOENTERO] (ACER)← -IENTRAS)≤. Y86;)= 2EPETIR (ACER)←) [&INDELCICLODELPASO 3I). O86;)= ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv ) [&INDELCONDICIONALDELPASO]
#Ò426&%"*/5&3/"
395
#OMOELARREGLOESTÈORDENADO SEESTABLECEUNANUEVACONDICIØNELELEMENTOBUS CADOTIENEQUESERMAYORQUEELDELARREGLO#UANDOELCICLOSEINTERRUMPE SEEVALÞA CUÈLDELASCONDICIONESESFALSA3I). OSISECOMPARØELELEMENTOCONUNVALOR MAYORASÓMISMO86;)= SEESTÈANTEUNCASODEFRACASOELELEMENTONOESTÈENEL ARREGLO3I86;)=ENTONCESSEENCONTRØALELEMENTOENELARREGLO !CONTINUACIØNSEPRESENTAELALGORITMODEBÞSQUEDAENARREGLOSORDENADOS PERO ENFORMARECURSIVA !LGORITMO 3ECUENCIAL?ORDENADO?RECURSIVO 3ECUENCIAL?ORDENADO?RECURSIVO6 . 8 ) [%STE ALGORITMO BUSCA EN FORMA SECUENCIAL Y RECURSIVA AL ELEMENTO 8 EN UN ARREGLO UNIDI MENSIONALORDENADO6 DE.COMPONENTES6SEENCUENTRAORDENADODEMANERACRECIENTE6;= ≤6;=≤≤6;.=)INICIALMENTETIENEELVALORDE] 3I)≤. Y86;)= ENTONCES ,LAMARA3ECUENCIAL?ORDENADO?RECURSIVOCON6 . 8E) SINO 3I). O86;)= ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv ) [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%LMÏTODODEBÞSQUEDASECUENCIALTAMBIÏNSEPUEDEAPLICARALISTASLIGADAS#ON SISTEENRECORRERLALISTANODOTRASNODO HASTAENCONTRARALELEMENTOBUSCADOÏXITO OHASTAQUELLEGUEMOSALlNALDELALISTAFRACASO,ALISTA COMOENELCASODEARRE GLOS SEPUEDEENCONTRARORDENADAODESORDENADA%LORDENENELCUALSEPUEDERECORRER LALISTADEPENDEDESUSCARACTERÓSTICASPUEDESERSIMPLEMENTELIGADA CIRCULARODOBLE MENTELIGADA%NESTECAPÓTULOSEPRESENTARÈELCASODEBÞSQUEDASECUENCIALENLISTAS SIMPLEMENTE LIGADAS DESORDENADAS %L LECTOR CON LOS CONOCIMIENTOS QUE TIENE SOBRE LISTASYBÞSQUEDA PUEDEIMPLEMENTARFÈCILMENTELOSOTROSALGORITMOS !LGORITMO 3ECUENCIAL?LISTA?DESORDENADA 3ECUENCIAL?LISTA?DESORDENADA0 8 [%STEALGORITMOBUSCAENFORMASECUENCIALALELEMENTO8ENUNALISTASIMPLEMENTELIGADA QUE ALMACENA INFORMACIØN QUE ESTÈ DESORDENADA 0 ES UN APUNTADOR AL PRIMER NODO DE LA LISTA ).&/Y,)'!SONLOSCAMPOSDECADANODO] [1ESUNAVARIABLEDETIPOAPUNTADOR]
396 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" (ACER1←0 -IENTRAS1≠.), Y1>).&/≠8 2EPETIR (ACER1←1>,)'! [&INDELCICLODELPASO] 3I1.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENLALISTAv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO]
3ILALISTAESTUVIERAORDENADASEMODIlCARÓAESTEALGORITMO INCLUYENDOUNACON DICIØNSIMILARALAQUESEESCRIBIØENELALGORITMO%STOÞLTIMOCONELOBJETIVODE DISMINUIRELNÞMERODECOMPARACIONES ! CONTINUACIØN SE PRESENTA LA VARIANTE RECURSIVA DE ESTE ALGORITMO DE BÞSQUEDA SECUENCIALENLISTASSIMPLEMENTELIGADASDESORDENADAS !LGORITMO 3ECUENCIAL?LISTA?DESORDENADA?RECURSIVO 3ECUENCIAL?LISTA?DESORDENADA?RECURSIVO0 8 [%STEALGORITMOBUSCADEMANERASECUENCIALYENFORMARECURSIVAALELEMENTO8ENUNALISTA SIMPLEMENTELIGADA QUEALMACENAINFORMACIØNQUEESTÈDESORDENADA0ESUNAPUNTADORAL PRIMERNODODELALISTA).&/Y,)'!SONLOSCAMPOSDECADANODO] 3I0≠.), Y0>).&/≠8 ENTONCES 2EGRESARA3ECUENCIAL?LISTA?DESORDENADA?RECURSIVOCON0>,)'!Y8 SINO 3I0.), ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENLALISTAv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!NÉLISISDELABÞSQUEDASECUENCIAL %LNÞMERODECOMPARACIONESESUNODELOSFACTORESMÈSIMPORTANTESQUESEUTILIZANPARA DETERMINARLACOMPLEJIDADDELOSMÏTODOSDEBÞSQUEDA0ARAANALIZARLACOMPLEJIDADDE LABÞSQUEDASECUENCIAL SEDEBENESTABLECERLOSCASOSMÈSFAVORABLEODESFAVORABLEQUE SEPRESENTEN !LBUSCAR POREJEMPLO UNELEMENTOENUNARREGLOUNIDIMENSIONALDESORDENADODE .COMPONENTES PUEDESUCEDERQUEESEVALORNOSEENCUENTREPORLOTANTO SEHARÈN.
#Ò426&%"*/5&3/"
397
COMPARACIONESALRECORRERTODOELARREGLO0OROTRAPARTE SIELELEMENTOSEENCUENTRAEN ELARREGLO ÏSTEPUEDEESTARENLAPRIMERAPOSICIØN ENLAÞLTIMAOENALGUNAINTERMEDIA3I ESELPRIMERO SEHARÈUNACOMPARACIØNSISETRATADELÞLTIMO SEHARÈN.COMPARACIONES YSISEENCUENTRAENLAPOSICIØNII. ENTONCESSEREALIZARÈNICOMPARACIONES !HORABIEN ELNÞMERODECOMPARACIONESQUESELLEVANACABOSITRABAJAMOSCON ARREGLOSORDENADOSSERÈELMISMOQUEPARADESORDENADOS SIEMPREYCUANDOELELEMENTO SEENCUENTREENELARREGLO3INOFUERAÏSTEELCASO ENTONCESELNÞMERODECOMPARACIO NESDISMINUIRÈSENSIBLEMENTEENARREGLOSORDENADOS SIEMPREQUEELVALORBUSCADOESTÏ COMPRENDIDOENTREELPRIMEROYELÞLTIMOELEMENTOSDELARREGLO 0OR OTRA PARTE EL NÞMERO DE COMPARACIONES EN LA BÞSQUEDA SECUENCIAL EN LISTAS SIMPLEMENTELIGADASESELMISMOQUEPARAARREGLOS%NLAFØRMULASEPRESENTANLOS NÞMEROSMÓNIMO MEDIANOYMÈXIMODECOMPARACIONESQUESEEJECUTANCUANDOSETRA BAJACONLABÞSQUEDASECUENCIAL
#MÓN
#MED
N
#MÈX .
▼ &ØRMULA
,ATABLAPRESENTA PARADISTINTOSVALORESDE. LOSNÞMEROSMÓNIMO MEDIANOY MÈXIMODECOMPARACIONESQUESEREQUIERENPARABUSCARSECUENCIALMENTEUNELEMENTO ENUNARREGLOOLISTALIGADA
"ÞSQUEDABINARIA ,ABÞSQUEDABINARIACONSISTEENDIVIDIRELINTERVALODEBÞSQUEDAENDOSPARTES COM PARANDOELELEMENTOBUSCADOCONELQUEOCUPALAPOSICIØNCENTRALENELARREGLO0ARAEL CASODEQUENOFUERANIGUALESSEREDElNENLOSEXTREMOSDELINTERVALO SEGÞNELELEMENTO CENTRAL SEA MAYOR O MENOR QUE EL ELEMENTO BUSCADO DISMINUYENDO DE ESTA FORMA EL ESPACIODEBÞSQUEDA%LPROCESOCONCLUYECUANDOELELEMENTOESENCONTRADO OCUANDO ELINTERVALODEBÞSQUEDASEANULA ESVACÓO %LMÏTODODEBÞSQUEDABINARIAFUNCIONAEXCLUSIVAMENTECONARREGLOSORDENADOS .O SE PUEDE UTILIZAR CON LISTAS SIMPLEMENTE LIGADAS NO PODRÓAMOS RETROCEDER PARA ESTABLECERINTERVALOSDEBÞSQUEDANICONARREGLOSDESORDENADOS#ONCADAITERACIØN DELMÏTODOELESPACIODEBÞSQUEDASEREDUCEALAMITADPORLOTANTO ELNÞMERODECOM
4!",! #OMPLEJIDADDELMÏTODO DEBÞSQUEDASECUENCIAL
.
#MÓN
#MED
#MÈX
398 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" PARACIONES A REALIZAR DISMINUYE NOTABLEMENTE %STA DISMINUCIØN RESULTA SIGNIlCATIVA CUANTOMÈSGRANDESEAELTAMA×ODELARREGLO!CONTINUACIØNSEPRESENTAELALGORITMO DEBÞSQUEDABINARIA !LGORITMO "INARIA "INARIA6 . 8 [%STE ALGORITMO BUSCA AL ELEMENTO 8 EN UN ARREGLO UNIDIMENSIONAL ORDENADO 6 DE . COM PONENTES] [):1 #%.Y$%2SONVARIABLESDETIPOENTERO"!.ESUNAVARIABLEDETIPOBOOLEANO] (ACER):1← $%2←.Y"!.←&!,3/ -IENTRAS):1≤$%2 Y"!.&!,3/ 2EPETIR 3I86;#%.= ENTONCES (ACER"!.←6%2$!$%2/ SINO[3EREDElNEELINTERVALODEBÞSQUEDA] 3I86;#%.= ENTONCES (ACER):1←#%. SINO (ACER$%2←#%.n [&INDELCONDICIONALDELPASO [&INDELCONDICIONALDELPASO [&INDELCICLODELPASO 3I"!.6%2$!$%2/ ENTONCES %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv #%. SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv [&INDELCONDICIONALDELPASO]
!NALICEMOSAHORAUNEJEMPLOPARAILUSTRARELFUNCIONAMIENTODEESTEALGORITMO
%JEMPLO
&)'52!
3EA6UNARREGLOUNIDIMENSIONALDENÞMEROSENTEROS ORDENADODEMANERACRECIENTE COMOSEMUESTRAENLAlGURA %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOCUANDO8ESIGUALA 8 %NLAlGURASEOBSERVAGRÈlCAMENTE PARAESTECASOENPARTICULAR CØMOSEVA REDUCIENDOELINTERVALODEBÞSQUEDA
#Ò426&%"*/5&3/" 4!",! "ÞSQUEDABINARIA
399
0ASO
"!.
):1
$%2
#%.
86;#%.=
86;#%.=
&ALSO
.O
.O
&ALSO
.O
3Ó
&ALSO
3Ó
6ERDADERO
,ATABLA POROTRAPARTE MUESTRANUEVAMENTEELSEGUIMIENTODELALGORITMO PARA8 VALORQUENOSEENCUENTRAENELARREGLO ,AlGURAREPRESENTAGRÈlCAMENTECØMOSEVAREDUCIENDOELINTERVALODEBÞS QUEDAHASTAANULARSE$%2):1 !CONTINUACIØNSEPRESENTAUNAVARIANTEDELALGORITMODEBÞSQUEDABINARIAQUENO UTILIZABANDERA"!.
4!",! "ÞSQUEDABINARIA
&)'52! 2EDUCCIØNDELINTERVALO DEBÞSQUEDAA 0ASO B 0ASOC 0ASODELA TABLA
0ASO
"!.
):1
$%2
#%.
86;#%.=
86;#%.=
&ALSO
.O
3Ó
&ALSO
.O
3Ó
&ALSO
.O
3Ó
&ALSO
.O
.O
&ALSO
400 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" &)'52! 2EDUCCIØNDELINTERVALO DEBÞSQUEDAA 0ASO B 0ASOC 0ASO D 0ASOE 0ASODE LATABLA
!LGORITMO "INARIA?SIN?BANDERA "INARIA?SIN?BANDERA6 . 8 [%STE ALGORITMO BUSCA AL ELEMENTO 8 EN EL ARREGLO UNIDIMENSIONAL ORDENADO 6 DE . COM PONENTES] [):1 $%2Y#%.SONVARIABLESDETIPOENTERO] (ACER):1← $%2←.Y#%.←0!24%%.4%2!):1$%2 -IENTRAS):1≤$%2 Y8≠6;#%.= 2EPETIR 3I86;#%.= ENTONCES (ACER):1←#%. SINO (ACER$%2←#%.n [&INDELCONDICIONALDELPASO] (ACER#%.←0!24%%.4%2!):1$%2 [&INDELCICLODELPASO] 3I):1$%2
#Ò426&%"*/5&3/"
401
ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv #%. [&INDELCONDICIONALDELPASO]
&INALMENTE SEPRESENTAUNAVERSIØNRECURSIVADEESTEALGORITMODEBÞSQUEDABINARIA !LGORITMO "INARIA?RECURSIVO
"INARIA?RECURSIVO6 ):1 $%2 8 [%STEALGORITMOBUSCAALELEMENTO8ENELARREGLOUNIDIMENSIONALORDENADO6DE.COMPO NENTES):1INGRESAINICIALMENTEALALGORITMOCONELVALORDE$%2 POROTRAPARTE INGRESA CONELVALORDE.] [#%.ESUNAVARIABLEDETIPOENTERO] 3I):1≥$%2 ENTONCES %SCRIBIR8 h.OSEENCUENTRAENELARREGLOv SINO (ACER#%.←0!24%%.4%2!$%2):1 3I86;#%.= ENTONCES %SCRIBIRh%LDATOBUSCADOSEENCUENTRAENLAPOSICIØNv #%. SINO 3I86;#%.= ENTONCES 2EGRESARA"INARIA?RECURSIVOCON6 #%. $%2 8 SINO 2EGRESARA"INARIA?RECURSIVOCON6 ):1 #%.n 8 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!NÉLISISDELABÞSQUEDABINARIA 0ARA ANALIZAR LA COMPLEJIDAD DEL MÏTODO DE BÞSQUEDA BINARIA ES NECESARIO ESTABLECER LOS CASOS MÈS FAVORABLES Y DESFAVORABLES QUE SE PUDIERAN PRESENTAR EN EL PROCESO DE BÞSQUEDA%LPRIMEROSUCEDECUANDOELELEMENTOBUSCADOESELCENTRAL ENDICHOCASO SEHARÈUNASOLACOMPARACIØNELSEGUNDOSUCEDECUANDOELELEMENTONOSEENCUENTRA ENELARREGLOENTONCESSEHARÈNAPROXIMADAMENTELOGN COMPARACIONES YAQUECON CADACOMPARACIØNELNÞMERODEELEMENTOSENLOSCUALESSEDEBEBUSCARSEREDUCEENUN FACTORDE$EESTAFORMA SEDETERMINANLOSNÞMEROSMÓNIMO MEDIANOYMÈXIMODE COMPARACIONESQUESEDEBENREALIZARCUANDOSEUTILIZAESTETIPODEBÞSQUEDA
402 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
#MÓN
#MED
LOG .
#MÈX LOG .
▼ &ØRMULA
%NLATABLASEPRESENTAN PARADISTINTOSVALORESDE. LOSNÞMEROSMÓNIMO ME DIANOYMÈXIMODECOMPARACIONESREQUERIDASPARABUSCARUNELEMENTOENUNARREGLO APLICANDOELMÏTODODEBÞSQUEDABINARIA 3ISECOMPARANLOSVALORESDELATABLACONLOSDELATABLARESULTACLAROQUE ELMÏTODODEBÞSQUEDABINARIAESMÈSElCIENTEQUEELMÏTODODEBÞSQUEDASECUENCIAL !DEMÈS LADIFERENCIASEHACEMÈSSIGNIlCATIVACONFORMEMÈSGRANDESEAELTAMA×ODEL ARREGLO 3IN EMBARGO NO HAY QUE OLVIDAR QUE EL MÏTODO DE BÞSQUEDA BINARIA TRABAJA SOLAMENTECONARREGLOSORDENADOSPORLOTANTO SIELARREGLOESTUVIERADESORDENADOANTES DEEMPLEARESTEMÏTODO AQUÏLDEBERÓAORDENARSE #ABEDESTACAR SINEMBARGO QUELAORDENACIØNDEUNARREGLOTAMBIÏNIMPLICACOM PARACIONESYMOVIMIENTOSDEELEMENTOS ASÓQUESISEVAAREALIZARSØLOUNABÞSQUEDA SOBREUNARREGLODESORDENADOCONVIENEUTILIZARELMÏTODOSECUENCIAL%NCAMBIO SISE REALIZANBÞSQUEDASENFORMACONTINUA CONVENDRÓAORDENARLOPARAPODERAPLICARELMÏ TODODEBÞSQUEDABINARIA
"ÞSQUEDAPORTRANSFORMACIØNDECLAVES ,OSDOSMÏTODOSANALIZADOSANTERIORMENTEPERMITENENCONTRARUNELEMENTOENUNARRE GLO%NAMBOSCASOSELTIEMPODEBÞSQUEDAESPROPORCIONALASUNÞMERODECOMPONEN TES%SDECIR AMAYORNÞMERODEELEMENTOSSEDEBEREALIZARMAYORNÞMERODECOMPARA CIONES3EMENCIONØADEMÈSQUESIBIENELMÏTODODEBÞSQUEDABINARIAESMÈSElCIENTE QUEELSECUENCIAL EXISTELARESTRICCIØNDEQUEELARREGLOSEDEBEENCONTRARORDENADO %STA SECCIØN SE DEDICA A UN NUEVO MÏTODO DE BÞSQUEDA %STE MÏTODO CONOCIDO COMOTRANSFORMACIØNDECLAVESOHASH PERMITEAUMENTARLAVELOCIDADDEBÞSQUEDASIN NECESIDADDETENERLOSELEMENTOSORDENADOS#UENTACONLAVENTAJADEQUEELTIEMPODE BÞSQUEDAESINDEPENDIENTEDELNÞMERODECOMPONENTESDELARREGLO 3UPONGAMOSQUESETIENEUNACOLECCIØNDEDATOS CADAUNODEELLOSIDENTIlCADOPOR UNACLAVE%SCLAROQUERESULTAATRACTIVOTENERACCESOAELLOSDEMANERADIRECTAESDECIR SINRECORRERALGUNOSDATOSANTESDELOCALIZARALBUSCADO%LMÏTODOPORTRANSFORMACIØN DECLAVESPERMITEREALIZARJUSTAMENTEESTAACTIVIDADESDECIR LOCALIZARELDATOENFORMA
4!",! #OMPLEJIDADDELMÏTODODE BÞSQUEDABINARIA
.
#MÓN
#MED
#MÈX
#Ò426&%"*/5&3/"
403
DIRECTA%LMÏTODOTRABAJAUTILIZANDOUNAFUNCIØNQUECONVIERTEUNACLAVEDADAENUNA DIRECCIØNÓNDICEDENTRODELARREGLO DIRECCIØN←(CLAVE ,AFUNCIØNHASH( APLICADAALACLAVEGENERAUNÓNDICEDELARREGLOQUEPERMITE ACCEDERDIRECTAMENTEALELEMENTO%LCASOMÈSTRIVIALSEPRESENTACUANDOLASCLAVESSON NÞMEROSENTEROSCONSECUTIVOS 3UPONGAMOSQUESEDESEAALMACENARLAINFORMACIØNRELACIONADACONALUMNOS CUYASMATRÓCULASSONNÞMEROSDELAL%NESTECASOCONVIENEDElNIRUNARREGLODE ELEMENTOSCONÓNDICESNUMÏRICOSCOMPRENDIDOSENTRELOSVALORESY,OSDATOSDE CADAALUMNOOCUPARÈNLAPOSICIØNDELARREGLOQUESECORRESPONDACONELNÞMERODELAMA TRÓCULADEESTAMANERASEPODRÈACCEDERDIRECTAMENTEALAINFORMACIØNDECADAALUMNO #ONSIDEREMOSAHORAQUESEDESEAALMACENARLAINFORMACIØNDEEMPLEADOS,A CLAVEDECADAEMPLEADOCORRESPONDEALNÞMERODESUSEGUROSOCIAL3ILACLAVEESTÈFORMA DAPORDÓGITOS RESULTAPORCOMPLETOINElCIENTEDElNIRUNARREGLOCON ELEMENTOSPARAALMACENARSOLAMENTELOSDATOSDELOSEMPLEADOS5TILIZARUNARREGLO TANGRANDEASEGURALAPOSIBILIDADDEACCEDERDIRECTAMENTEASUSELEMENTOSSINEMBARGO ELCOSTOENMEMORIARESULTATANTORIDÓCULOCOMOEXCESIVO3IEMPREESIMPORTANTEEQUILI BRARELCOSTODELESPACIODEMEMORIACONELCOSTOPORTIEMPODEBÞSQUEDA #UANDOSETIENENCLAVESQUENOSECORRESPONDENCONÓNDICESPOREJEMPLO POR SERALFANUMÏRICAS OCUANDOLASCLAVESREPRESENTENVALORESNUMÏRICOSMUYGRANDES ONOSECORRESPONDENCONLOSÓNDICESDELOSARREGLOS SEUTILIZARÈUNAFUNCIØNHASHQUE PERMITATRANSFORMARLACLAVEPARAOBTENERUNADIRECCIØNAPROPIADA%STAFUNCIØNHASH DEBESERSIMPLEDECALCULARYASIGNARDIRECCIONESDELAMANERAMÈSUNIFORMEPOSIBLE%S DECIR DEBEGENERARPOSICIONESDIFERENTESDADASDOSCLAVESTAMBIÏNDIFERENTES3IESTO ÞLTIMONOOCURRE(+ D (+ DY+≠+ HAYUNACOLISIØN QUESEDElNECOMO LAASIGNACIØNDEUNAMISMADIRECCIØNADOSOMÈSCLAVESDISTINTAS %NESTECONTEXTO PARATRABAJARCONESTEMÏTODODEBÞSQUEDASEDEBESELECCIONAR PREVIAMENTE ◗ ◗
5NAFUNCIØNHASHQUESEAFÈCILDECALCULARYDISTRIBUYAUNIFORMEMENTELASCLAVES 5N MÏTODO PARA RESOLVER COLISIONES 3I ÏSTAS SE PRESENTAN SE CONTARÈ CON ALGÞN MÏTODOQUEGENEREPOSICIONESALTERNATIVAS
%STOSDOSCASOSSETRATARÈNENFORMASEPARADA#OMOYASEMENCIONØ SELECCIONARUNA BUENAFUNCIØNHASHESMUYIMPORTANTE PEROESDIFÓCILENCONTRARLA"ÈSICAMENTEPORQUENO EXISTENREGLASQUEPERMITANDETERMINARCUÈLSERÈLAFUNCIØNMÈSAPROPIADAPARAUNCONJUN TODECLAVESQUEASEGURELAMÈXIMAUNIFORMIDADENSUDISTRIBUCIØN2EALIZARUNANÈLISISDE LASPRINCIPALESCARACTERÓSTICASDELASCLAVESSIEMPREAYUDAENLAELECCIØNDEUNAFUNCIØN DEESTETIPO!CONTINUACIØNSEEXPLICANALGUNASDELASFUNCIONESHASHMÈSUTILIZADAS
&UNCIØNHASHPORMØDULODIVISIØN ,AFUNCIØNHASHPORMØDULOODIVISIØNCONSISTEENTOMARELRESIDUODELADIVISIØNDE LACLAVEENTREELNÞMERODECOMPONENTESDELARREGLO3UPONGAMOS POREJEMPLO QUESE
404 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" TIENEUNARREGLODE.ELEMENTOS Y+ESLACLAVEDELDATOABUSCAR,AFUNCIØNHASHQUEDA DElNIDAPORLASIGUIENTEFØRMULA
(+ +MOD.
▼ &ØRMULA
%NLAFØRMULASEOBSERVAQUEALRESIDUODELADIVISIØNSELESUMA ESTOÞLTIMO CONELOBJETIVODEOBTENERUNVALORCOMPRENDIDOENTREY. 0ARALOGRARMAYORUNIFORMIDADENLADISTRIBUCIØN ESIMPORTANTEQUE.SEAUNNÞ MEROPRIMOODIVISIBLEENTREMUYPOCOSNÞMEROS0ORLOTANTO SI.NOESUNNÞMERO PRIMO SEDEBECONSIDERARELVALORPRIMOMÈSCERCANO %NELEJEMPLOSEPRESENTAUNCASODEFUNCIØNHASHPORMØDULO
%JEMPLO
3UPONGAMOS QUE . ES EL TAMA×O DEL ARREGLO Y LAS DIRECCIONES QUE SE DEBEN ASIGNAR A LOS ELEMENTOS AL GUARDARLOS O RECUPERARLOS SON LOS NÞMEROS DEL AL #ONSIDEREMOSADEMÈSQUE+Y+SONLASDOSCLAVESALASQUESEDEBEN ASIGNARPOSICIONESENELARREGLO3IAPLICAMOSLAFØRMULACON. PARACALCULAR LASDIRECCIONESCORRESPONDIENTESA+Y+ OBTENEMOS (+ MOD (+ MOD #OMO(+ ESIGUALA(+ Y+ESDISTINTODE+ SEESTÈANTEUNACOLISIØNQUESE DEBERESOLVERPORQUEALOSDOSELEMENTOSLECORRESPONDERÓALAMISMADIRECCIØN /BSERVEMOS SINEMBARGO QUESIAPLICÈRAMOSLAFØRMULACONUNNÞMEROPRIMO CERCANOA. ELRESULTADOCAMBIARÓA (+ MOD (+ MOD #ON.SEHAELIMINADOLACOLISIØN
&UNCIØNHASHCUADRADO ,AFUNCIØNHASHCUADRADOCONSISTEENELEVARALCUADRADOLACLAVEYTOMARLOSDÓGITOS CENTRALES COMO DIRECCIØN %L NÞMERO DE DÓGITOS QUE SE DEBE CONSIDERAR SE ENCUENTRA DETERMINADOPORELRANGODELÓNDICE3EA+LACLAVEDELDATOABUSCAR LAFUNCIØNHASH CUADRADOQUEDADElNIDA ENTONCES PORLASIGUIENTEFØRMULA
(+ DÓGITOS?CENTRALES+
▼ &ØRMULA
,ASUMADEUNAUNIDADALOSDÓGITOSCENTRALESESÞTILPARAOBTENERUNVALORCOM PRENDIDOENTREY. %NELEJEMPLOSEPRESENTAUNCASODEFUNCIØNHASHCUADRADO
#Ò426&%"*/5&3/"
%JEMPLO
405
3EA.ELTAMA×ODELARREGLO YSUSDIRECCIONESLOSNÞMEROSCOMPRENDIDOSENTRE Y3EAN+Y+DOSCLAVESALASQUESEDEBENASIGNARPOSICIONES ENELARREGLO3EAPLICALAFØRMULAPARACALCULARLASDIRECCIONESCORRESPONDIENTESA +Y+ + + (+ DÓGITOS?CENTRALES (+ DÓGITOS?CENTRALES #OMOELRANGODEÓNDICESENNUESTROEJEMPLOVARÓADEA SETOMANSOLAMENTE LOSDOSDÓGITOSCENTRALESDELCUADRADODELASCLAVES
&UNCIØNHASHPORPLEGAMIENTO ,AFUNCIØNHASHPORPLEGAMIENTOCONSISTEENDIVIDIRLACLAVEENPARTES TOMANDOIGUAL NÞMERODEDÓGITOSAUNQUELAÞLTIMAPUEDETENERMENOS YOPERARCONELLAS ASIGNANDO COMODIRECCIØNLOSDÓGITOSMENOSSIGNIlCATIVOS,AOPERACIØNENTRELASPARTESSEPUEDE REALIZARPORMEDIODESUMASOMULTIPLICACIONES3EA+LACLAVEDELDATOABUSCAR+ESTÈ FORMADAPORLOSDÓGITOSD D DN,AFUNCIØNHASHPORPLEGAMIENTOQUEDADElNIDA PORLASIGUIENTEFØRMULA
(+ DÓGMENSIGDDI DIDJ DDN
▼ &ØRMULA
%LOPERADORQUEAPARECEENLAFØRMULAOPERANDOLASPARTESDELACLAVEESELDESUMA PERO COMOYASEACLARØ PUEDESERELDELAMULTIPLICACIØN%NESTECONTEXTO LASUMADE UNAUNIDADALOSDÓGITOSMENOSSIGNIlCATIVOSDÓGMENSIGESPARAOBTENERUNVALOR COMPRENDIDOENTREY. %NELEJEMPLOSEPRESENTAUNCASODEFUNCIØNHASHPORPLEGAMIENTO
%JEMPLO
3EA.ELTAMA×ODELARREGLO YLASDIRECCIONESQUEDEBENTOMARSUSELEMENTOSLOS NÞMEROSCOMPRENDIDOSENTREY3EAN+Y+DOSCLAVESALASQUE SEDEBENASIGNARPOSICIONESENELARREGLO3EAPLICALAFØRMULAPARACALCULARLASDI RECCIONESCORRESPONDIENTESA+Y+ (+ DÓGMENSIG DÓGMENSIG (+ DÓGMENSIG DÓGMENSIG $E LA SUMA DE LAS PARTES SE TOMAN SOLAMENTE DOS DÓGITOS PORQUE LOS ÓNDICES DEL ARREGLOVARÓANDEA
406 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
&UNCIØNHASHPORTRUNCAMIENTO ,A FUNCIØN HASH POR TRUNCAMIENTO CONSISTE EN TOMAR ALGUNOS DÓGITOS DE LA CLAVE Y FORMARCONELLOSUNADIRECCIØN%STEMÏTODOESDELOSMÈSSENCILLOS PEROESTAMBIÏNDE LOSQUEOFRECENMENOSUNIFORMIDADENLADISTRIBUCIØNDELASCLAVES 3EA+LACLAVEDELDATOABUSCAR+ESTÈFORMADAPORLOSDÓGITOSD D DN,A FUNCIØNHASHPORTRUNCAMIENTOSEREPRESENTACONLASIGUIENTEFØRMULA
(+ ELEGIRDÓGITOSD DDN
▼ &ØRMULA
,A ELECCIØN DE LOS DÓGITOS ES ARBITRARIA 3E PODRÓAN TOMAR LOS DE LAS POSICIONES IMPARESODELASPARES,UEGOSEPODRÓANUNIRDEIZQUIERDAADERECHAODEDERECHAA IZQUIERDA,ASUMADEUNAUNIDADALOSDÓGITOSSELECCIONADOSESÞTILPARAOBTENERUN VALORENTREY %NELEJEMPLOSEMUESTRAUNCASODEFUNCIØNHASHPORTRUNCAMIENTO
%JEMPLO
3EA.ELTAMA×ODELARREGLO YLASDIRECCIONESDESUSELEMENTOSLOSNÞMEROSENTRE Y3EAN+Y+DOSCLAVESALASQUESEDEBENASIGNARPOSICIONESENEL ARREGLO3EAPLICALAFØRMULAPARACALCULARLASDIRECCIONESCORRESPONDIENTESA+Y+ (+ ELEGIRDÓGITOS (+ ELEGIRDÓGITOS %N ESTE EJEMPLO SE TOMAN EL PRIMERO Y TERCER NÞMEROS DE LA CLAVE Y SE UNEN DE IZQUIERDAADERECHA %SIMPORTANTEDESTACARQUEENTODOSLOSCASOSANTERIORESSEPRESENTARONEJEMPLOS DE CLAVES NUMÏRICAS 3IN EMBARGO EN LA PRÈCTICA LAS CLAVES PUEDEN SER ALFABÏTICAS O ALFANUMÏRICAS%NGENERAL CUANDOAPARECENLETRASENLASCLAVESSESUELEASOCIARACADA UNAUNENTEROCONELPROPØSITODECONVERTIRLASENNUMÏRICAS !
"
#
$
:
3I POREJEMPLO LACLAVEFUERA!$! SUEQUIVALENTENUMÏRICASERÓA3IHU BIERACOMBINACIØNDELETRASYNÞMEROS SEPROCEDERÓADELAMISMAMANERA0OREJEMPLO DADAUNACLAVE:& SUEQUIVALENTENUMÏRICASERÓA/TRAALTERNATIVASERÓA TOMARELVALORDECIMALASOCIADOPARACADACARÈCTERSEGÞNELCØDIGO!3#))5NAVEZOB TENIDALACLAVEENSUFORMANUMÏRICA SEPUEDEUTILIZARNORMALMENTECUALESQUIERADELAS FUNCIONESANTESMENCIONADAS%LEJEMPLOILUSTRAUNCASODECLAVEALFABÏTICA
3OLUCIØNDECOLISIONES ,AELECCIØNDEUNMÏTODOADECUADOPARARESOLVERCOLISIONESESTANIMPORTANTECOMOLA ELECCIØNDEUNABUENAFUNCIØNHASH#UANDOÏSTAOBTIENEUNAMISMADIRECCIØNPARADOS CLAVESDIFERENTES SEESTÈANTEUNACOLISIØN.ORMALMENTE CUALQUIERAQUESEAELMÏTODO
#Ò426&%"*/5&3/"
407
ELEGIDORESULTACOSTOSOTRATARLASCOLISIONES%SPORELLOQUESEDEBEHACERUNESFUERZO IMPORTANTEPARAENCONTRARLAFUNCIØNQUEOFREZCALAMAYORUNIFORMIDADENLADISTRIBU CIØNDELASCLAVES ,AMANERAMÈSNATURALDERESOLVERELPROBLEMADELASCOLISIONESESRESERVARUNA CASILLAPORCLAVEESDECIR AQUELLASQUESECORRESPONDANUNAAUNACONLASPOSICIONESDEL ARREGLO0ERO COMOYASEMENCIONØ ESTASOLUCIØNPUEDETENERUNALTOCOSTOENMEMO RIAPORLOTANTO SEDEBENANALIZAROTRASALTERNATIVASQUEPERMITANEQUILIBRARELUSODE MEMORIACONELTIEMPODEBÞSQUEDA %NADELANTESEESTUDIARÈNALGUNOSDELOSMÏTODOSMÈSUTILIZADOSPARARESOLVERCOLI SIONES QUESEPUEDENCLASIlCAREN ◗ ◗ ◗
2EASIGNACIØN !RREGLOSANIDADOS %NCADENAMIENTO
2EASIGNACIØN %XISTENVARIOSMÏTODOSQUETRABAJANBAJOELPRINCIPIODECOMPARACIØNYREASIGNACIØNDE ELEMENTOS!CONTINUACIØNSEANALIZARÈNTRESDEELLOS ◗ ◗ ◗
0RUEBALINEAL 0RUEBACUADRÈTICA $OBLEDIRECCIØNHASH
0RUEBALINEAL %LMÏTODODEPRUEBALINEALCONSISTEENQUEUNAVEZQUESEDETECTALACOLISIØN SERECORRE ELARREGLOSECUENCIALMENTEAPARTIRDELPUNTODECOLISIØN BUSCANDOALELEMENTO%LPRO CESODEBÞSQUEDACONCLUYECUANDOELELEMENTOESHALLADO OCUANDOSEENCUENTRAUNA POSICIØNVACÓA%LARREGLOSETRATACOMOUNAESTRUCTURACIRCULARELSIGUIENTEELEMENTO DESPUÏSDELÞLTIMOESELPRIMERO !CONTINUACIØNSEEXPONEELALGORITMODESOLUCIØNDECOLISIONESPORMEDIODELA PRUEBALINEAL !LGORITMO 0RUEBA?LINEAL 0RUEBA?LINEAL6 . + [%STEALGORITMOBUSCAALDATOCONCLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVEELPROBLEMADELASCOLISIONESPORMEDIODELMÏTODODEPRUEBALINEAL] [$Y$8SONVARIABLESDETIPOENTERO] (ACER$←(+ ['ENERADIRECCIØN] 3I6;$8=≠6!#¶/ Y6;$=+ ENTONCES
408 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $ SINO (ACER$8←$ -IENTRAS$8≤. Y6;$8=≠6!#¶/ Y6;$8=≠+ Y$8≠$ 2EPETIR (ACER$8←$8 3I$8. ENTONCES (ACER$8← [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I6;$8=6!#¶/ O$8$ ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $8 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
,ACUARTACONDICIØNDELCICLODELPUNTO $8≠8 ESPARAEVITARCAERENUNCICLO INlNITOSIELARREGLOESTUVIERALLENOYELELEMENTOABUSCARNOSEENCONTRARAENÏL ,APRINCIPALDESVENTAJADEESTEMÏTODOESQUEPUEDEHABERUNFUERTEAGRUPAMIENTO ALREDEDOR DE CIERTAS CLAVES MIENTRAS QUE OTRAS ZONAS DEL ARREGLO PODRÓAN PERMANECER VACÓAS3ILASCONCENTRACIONESDECLAVESSONMUYFRECUENTES LABÞSQUEDASERÈPRINCIPAL MENTESECUENCIAL PERDIENDOASÓLASVENTAJASDELMÏTODOHASH%LEJEMPLOILUSTRAEL FUNCIONAMIENTODELALGORITMO
%JEMPLO
3EA6UNARREGLOUNIDIMENSIONALDEELEMENTOS,ASCLAVES YFUERONASIGNADASSEGÞNLAFUNCIØNHASH (+ +MOD %NLAlGURASEAPRECIAELESTADODEARREGLOA YLATABLACON(+ PARACADA CLAVEB %NLATABLASEPRESENTAELSEGUIMIENTODELASVARIABLESIMPORTANTESDELALGORITMO PARAELCASODELEJEMPLOANTERIOR%LDATOABUSCARESIGUALA !LAPLICARLAFUNCIØNHASHALACLAVE SEOBTIENEUNADIRECCIØN$ IGUALA3IN EMBARGO ENESAPOSICIØNNOSEENCUENTRAELELEMENTOBUSCADO PORLOQUESECOMIENZA ARECORRERSECUENCIALMENTEELARREGLOAPARTIRDELAPOSICIØN$8 IGUALA%NESTECASO LABÞSQUEDACONCLUYECUANDOSEENCUENTRAALVALORBUSCADOENLAPOSICIØN
4!",!
$
$8
3OLUCIØNDECOLISIONESPOR LAPRUEBALINEAL+
#Ò426&%"*/5&3/"
409
&)'52! 3OLUCIØNDECOLISIONESPOR LAPRUEBALINEALA !RREGLO B 4ABLACON(+
%NLATABLASEPRESENTAAHORAELSEGUIMIENTODELASVARIABLESIMPORTANTESDEL ALGORITMO PEROAHORAPARAUNCASOMÈSCOMPLEJODELEJEMPLOANTERIOR%LDATOA BUSCARESIGUALA
0RUEBACUADRÉTICA %LMÏTODODELAPRUEBACUADRÈTICAESSIMILARALANTERIOR,ADIFERENCIACONSISTEENQUE ENELDELAPRUEBACUADRÈTICALASDIRECCIONESALTERNATIVASSEGENERARÈNCOMO$ $ $ $IENVEZDE$ $ $I%STAVARIACIØNPERMITEUNAMEJOR DISTRIBUCIØNDELASCLAVESQUECOLISIONAN !CONTINUACIØNSEPRESENTAELALGORITMODESOLUCIØNDECOLISIONESPORMEDIODELA PRUEBACUADRÈTICA
4!",!
$
$8
3OLUCIØNDECOLISIONESPOR LAPRUEBALINEAL+
410 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" !LGORITMO 0RUEBA?CUADRÈTICA 0RUEBA?CUADRÈTICA6 . + [%STEALGORITMOBUSCAALDATOCONCLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVEELPROBLEMADELASCOLISIONESPORMEDIODELAPRUEBACUADRÈTICA] [$ $8E)SONVARIABLESDETIPOENTERO] (ACER$←(+ ['ENERADIRECCIØN] 3I6;$8=≠6!#¶/ Y6;$=+ ENTONCES %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $ SINO (ACER)←Y$8←$) ) -IENTRAS6;$8=≠6!#¶/ Y6;$8=≠+ 2EPETIR (ACER)←)Y$8←$) ) 3I$8. ENTONCES (ACER)← $8←Y$← [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I6;$8=6!#¶/ ENTONCES %SCRIBIRh,AINFORMACIØNNOESTÈENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $8 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
!CONTINUACIØNSEPRESENTAUNEJEMPLOQUEILUSTRAELFUNCIONAMIENTODELALGORITMO
%JEMPLO
3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,ASCLAVES YSEASIGNARONSEGÞNLAFUNCIØNHASH (+ +MOD %NLAlGURASEPRESENTAELESTADODELARREGLOA YLATABLACON(+ PARA CADACLAVEB ,ATABLACONTIENEELSEGUIMIENTODELASVARIABLESIMPORTANTESDELALGORITMO PARAELCASODELEJEMPLOANTERIOR YELDATOABUSCARESIGUALA
4!",! 3OLUCIØNDECOLISIONESPOR LAPRUEBACUADRÉTICA +
$
)
$8
#Ò426&%"*/5&3/"
411
&)'52! 3OLUCIØNDECOLISIONESPOR LAPRUEBACUADRÉTICA A !RREGLOB 4ABLACON (+
!LAPLICARLAFUNCIØNHASHALACLAVE SEOBTIENEUNADIRECCIØN$ IGUALA SINEMBARGO ENESADIRECCIØNNOSEENCUENTRAELELEMENTOBUSCADO3ECALCULAPOSTE RIORMENTE$8 COMOLASUMA$) ) OBTENIÏNDOSEDEESTAFORMALADIRECCIØN%L ALGORITMO DE BÞSQUEDA CONCLUYE CUANDO SE ENCUENTRA EL VALOR DESEADO EN LA DÏCIMA POSICIØNDELARREGLO %NLATABLASEPRESENTAELSEGUIMIENTODELASVARIABLESIMPORTANTESDELALGORITMO PARAUNCASOMÈSCOMPLEJOQUEELANTERIOR%LDATOABUSCARES
$OBLEDIRECCIØNHASH %LMÏTODODEDOBLEDIRECCIØNHASHCONSISTEENQUEUNAVEZQUESEDETECTALACOLISIØN SEGENERAOTRADIRECCIØNAPLICANDOLAMISMAFUNCIØNHASHALADIRECCIØNPREVIAMENTE OBTENIDA%LPROCESOSEDETIENECUANDOELELEMENTOESHALLADO OCUANDOSEENCUENTRA UNAPOSICIØNVACÓA
4!",!
$
)
$8
3OLUCIØNDECOLISIONESPOR LAPRUEBACUADRÉTICA +
412 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" $(+ $ʹ($ $ʹʹ($ʹ ,AFUNCIØNHASHQUESEAPLICANONECESARIAMENTETIENEQUESERLAMISMAQUEORIGI NALMENTESEAPLICØALACLAVEPODRÓASERCUALQUIEROTRA3INEMBARGO NOEXISTENINGÞN ESTUDIOQUEPRECISECUÈLESLAMEJORFUNCIØNQUESEDEBEUTILIZARENELCÈLCULODELAS DIRECCIONESSUCESIVAS !NALICEMOSAHORAELALGORITMODESOLUCIØNDECOLISIONESPORMEDIODELMÏTODODE LADOBLEDIRECCIØNHASH !LGORITMO $OBLE?DIRECCIØN $OBLE?DIRECCIØN6 . + [%STEALGORITMOBUSCAALDATOCONLACLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVEELPROBLEMADELASCOLISIONESPORMEDIODELADOBLEDIRECCIØNHASH] [$Y$8SONVARIABLESDETIPOENTERO] (ACER$←(+ 3I6;$8=≠6!#¶/ Y6;$=+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLAPOSICIØNv $ SINO (ACER$8←(ʹ$ -IENTRAS$8≤. Y6;$8=≠6!#¶/ Y6;$8=≠+ Y$8≠$ 2EPETIR (ACER$8←(ʹ$8 [&INDELCICLODELPASO] 3I6;$8=6!#¶/ O6;$8=≠+ ENTONCES %SCRIBIRh,AINFORMACIØNBUSCADANOESTÈENELARREGLOv SINO %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $8 [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%LSIGUIENTEEJEMPLOILUSTRAELFUNCIONAMIENTODEESTEALGORITMO
%JEMPLO
3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,ASCLAVES YFUERONASIGNADASSEGÞNLAFUNCIØNHASH (+ +MOD !DEMÈSSEDElNIØUNAFUNCIØN(ʹPARACALCULARDIRECCIONESALTERNATIVASENCASODE HABERCOLISIØN
#Ò426&%"*/5&3/"
413
&)'52! 3OLUCIØNDECOLISIONES PORELMÏTODODEDOBLE DIRECCIØNHASHA !RREGLO B 4ABLACON(+ (ʹ$ (ʹ$ʹ (ʹ$ʹʹ
(ʹ$ $L MOD L %NLAlGURASEPRESENTAELESTADODELARREGLOA YLATABLAB CON(+ PARACADACLAVE Y(ʹ$ ENCASODECOLISIØN %NLATABLASEPRESENTAELSEGUIMIENTODELALGORITMOPARAELCASODELEJEM PLOANTERIOR%LDATOABUSCARESIGUALA !LAPLICARLAFUNCIØNHASH( ALACLAVE SEOBTUVOUNADIRECCIØN$ IGUALA #OMOENESAPOSICIØNNOSEENCUENTRAELELEMENTOBUSCADO SEAPLICAREITERADAMENTE (ʹ GENERANDODIRECCIONESHASTALOCALIZARELVALORDESEADO%NESTEEJEMPLOFUEPRECISO APLICARTRESVECESLAFUNCIØN(ʹ OBTENIÏNDOSELASDIRECCIONES Y ENLAQUElNAL MENTESEENCONTRØELDATOBUSCADO
!RREGLOSANIDADOS %LMÏTODODEARREGLOSANIDADOSCONSISTEENQUECADAELEMENTODELARREGLOTENGAOTRO ARREGLO ENELCUALSEALMACENENLOSELEMENTOSQUECOLISIONAN3IBIENLASOLUCIØNPA RECESERSENCILLA ESCLAROQUERESULTAINElCIENTE!LTRABAJARCONARREGLOSSEDEPENDE DELESPACIOQUESEHAYAASIGNADOAÏSTOS LOCUALCONDUCEAUNNUEVOPROBLEMADIFÓCIL
4!",! 3OLUCIØNDECOLISIONESPOR ELMÏTODODEDOBLEDIREC CIØNHASH+
$
$8
414 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" DESOLUCIONARELEGIRUNTAMA×OADECUADODEARREGLOQUEPERMITAUNEQUILIBRIOENTREEL COSTODEMEMORIAYELNÞMERODEVALORESQUECOLISIONANQUEPUDIERAALMACENAR !NALICEMOSUNEJEMPLO
%JEMPLO
3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,OSELEMENTOSCONCLAVES YSEALMACENARONENELARREGLOUNIDIMENSIONAL6UTILIZANDOLA FUNCIØNHASH (+ +MOD %NLAlGURASEPRESENTAELESTADODELARREGLOANIDADOA YLATABLACON(+ PARACADACLAVEB
%NCADENAMIENTO %LMÏTODODEENCADENAMIENTOCONSISTEENQUECADAELEMENTODELARREGLOTENGAUNAPUN TADORAUNALISTALIGADA LACUALSEIRÈGENERANDOYALMACENARÈLOSVALORESQUECOLISIONAN %SELMÏTODOMÈSElCIENTEDEBIDOALDINAMISMOPROPIODELASLISTAS#UALQUIERAQUESEA ELNÞMERODECOLISIONESQUESEPRESENTEN SEPODRÈNRESOLVERSININCONVENIENTES #OMO DESVENTAJAS DEL MÏTODO DE ENCADENAMIENTO SE MENCIONA EL HECHO DE QUE OCUPAESPACIOADICIONALALDELATABLAYQUEEXIGEELMANEJODELISTASLIGADAS!DEMÈS SI LASLISTASCRECENDEMASIADOSEPERDERÈLAFACILIDADDEACCESODIRECTODELMÏTODOHASH ,AlGURAMUESTRALAESTRUCTURADEDATOSNECESARIAPARARESOLVERCOLISIONESPOR MEDIODELMÏTODODEENCADENAMIENTO !CONTINUACIØNSEPRESENTAELALGORITMODESOLUCIØNDECOLISIONESPORENCADENA MIENTO
&)'52! 3OLUCIØNDECOLISIONESCON ARREGLOSANIDADOS A !RREGLOANIDADO B 4ABLACON(+
#Ò426&%"*/5&3/"
415
&)'52! 3OLUCIØNDECOLISIONESPOR ENCADENAMIENTO
!LGORITMO %NCADENAMIENTO %NCADENAMIENTO6 . + [%STEALGORITMOBUSCAALDATOCONCLAVE+ENELARREGLOUNIDIMENSIONAL6DE.ELEMENTOS 2ESUELVELASCOLISIONESPORMEDIODEENCADENAMIENTOENLISTASLIGADAS3)'E).&/SONLOS CAMPOSDECADANODODELALISTA] [$ESUNAVARIABLEDETIPOENTERO1ESUNAVARIABLEDETIPOPUNTERO] (ACER$←(+ ['ENERADIRECCIØN] 3I6;$=≠6!#¶/ Y6;$=+ ENTONCES %SCRIBIRh,AINFORMACIØNESTÈENLAPOSICIØNv $ SINO (ACER1←6;$=3)'[!PUNTADORALALISTA] -IENTRAS1≠6!#¶/ Y1>).&/≠+ (ACER1←1>3)' [&INDELCICLODELPASO] 3I16!#¶/ ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENLALISTAv SINO %SCRIBIRh,AINFORMACIØNSEENCUENTRAENLALISTAv [&INDELCONDICIONALDELPASO] [&INDELCONDICIONALDELPASO]
%LFUNCIONAMIENTODEESTEALGORITMOQUEDAMÈSCLAROCONELSIGUIENTEEJEMPLO
416 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" %JEMPLO
3EA6UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS,OSELEMENTOSCONCLAVES YSEALMACENARONENELARREGLOUNIDIMENSIONAL6UTILIZANDOLA SIGUIENTEFUNCIØNHASH (+ +MOD %NLAlGURASEPRESENTAELESTADODELARREGLOCONENCADENAMIENTOA YLA TABLACON(+ PARACADACLAVEB 5NAVEZDETECTADALACOLISIØNENUNACIERTAPOSICIØNDELARREGLO SEDEBERECORRERLA LISTAASOCIADAAELLAHASTAENCONTRARELELEMENTOBUSCADOOLLEGARASUlNAL %NELEJEMPLOSEPRESENTAOTROCASODESOLUCIØNDECOLISIONESPORENCADENA MIENTODONDELASCLAVESSONALFABÏTICAS
%JEMPLO
3EA0UNARREGLOUNIDIMENSIONALDEDIEZELEMENTOS ENELCUALSEALMACENANLOSDATOSDE ALGUNOSPINOSMEXICANOS3EUTILIZACOMOCLAVEELNOMBREDELOSPINOSPARAASIGNARA CADAUNODEELLOSUNADIRECCIØNENELARREGLO00ARAELLOPRIMEROSEOBTENDRÈUNNÞMERO QUERESULTARÈDESUSTITUIRCADALETRAPORUNDÓGITODELAL YAESTENÞMEROSELE APLICARÈLAFUNCIØNHASH( DElNIDADELASIGUIENTEMANERA (CLAVE CLAVEMOD ,ATABLACONTIENELOSNOMBRESDELOSPINOS ELVALORNUMÏRICOASOCIADOCLAVE YLADIRECCIØNEN0QUELECORRESPONDE #OMOSEPUEDEAPRECIARENLATABLA HAHABIDOCOLISIONES0ARARESOLVERLAS SEAPLICA RÈELMÏTODODEENCADENAMIENTO,AESTRUCTURARESULTANTESEMUESTRAENLAlGURA #ABEDESTACARQUECUALQUIERAQUESEAELMÏTODOSELECCIONADOPARARESOLVERLASCO LISIONES SEDEBETENERENCUENTAENQUÏESTADOQUEDALAESTRUCTURAALINSERTARY SOBRE TODO ALELIMINARELEMENTOS,AELIMINACIØNESLAOPERACIØNQUEMÈSAFECTACUANDOSE
&)'52! 3OLUCIØNDECOLISIONESPOR ENCADENAMIENTO
#Ò426&%"*/5&3/" 4!",!
.OMBRE
6ALORNUMÏRICO
417
$IRECCIØN
#EMBROIDES
%DULIS
#ULMINICOLA
1UADRIFOLIA
0INSEANA
&LEXILIS
!YACAHUITE
4EOCOTE
#OOPERI
0RINGLEI
TIENENCOLISIONES PORLOQUESELEDEBEDEDICARESPECIALATENCIØNPARANOPERDERElCIEN CIAENLABÞSQUEDA
!NÉLISISDELMÏTODOPORTRANSFORMACIØNDECLAVES 0ARAANALIZARLACOMPLEJIDADDEESTEMÏTODOESNECESARIOREALIZARVARIOSCÈLCULOSPRO BABILÓSTICOS QUENOSEESTUDIARÈNENESTAOBRA,ADIlCULTADDELANÈLISISSEDEBEPRIN CIPALMENTEAQUENOSØLOINTERVIENELAFUNCIØNHASHSINOTAMBIÏNELMÏTODOUTILIZADO PARARESOLVERLASCOLISIONES0ORLOTANTO SEDEBERÓAANALIZARCADAUNADELASPOSIBLES COMBINACIONESQUESEPUDIERANPRESENTAR
&)'52! 3OLUCIØNDECOLISIONESPOR ENCADENAMIENTO
418 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" 3EAλELFACTORDEOCUPACIØNDEUNARREGLO DElNIDOCOMO-. DONDE-ESELNÞ MERODEELEMENTOSENELARREGLOY.ESSUTAMA×O3EGÞN,IPSCHUTZ LAPROBABILIDADDE LLEVARACABOUNABÞSQUEDACONÏXITO3 YOTRASINÏXITO: QUEDANDETERMINADASPOR LASSIGUIENTESFØRMULAS ▼ &ØRMULAS
A "ÞSQUEDACONÏXITO B "ÞSQUEDASINÏXITO 3 L
L
L
: L
#ABEACLARARQUEESTASFØRMULASSONVÈLIDASSOLAMENTEENCASODEFUNCIONESHASH CONELMÏTODOLINEALDESOLUCIØNDECOLISIONES
RBOLESDEBÞSQUEDA %NELCAPÓTULOSEPRESENTARONLOSÈRBOLESCOMOUNAESTRUCTURAPODEROSAYElCIENTEPARA ALMACENARYRECUPERARINFORMACIØN$EBIDOALDINAMISMOQUECARACTERIZAALOSÈRBOLES ELBENElCIODEUTILIZARLOSESMAYORCUANTOMÈSVARIABLESEAELNÞMERODEDATOSATRATAR
&)'52! 2EPRESENTACIØNDETRIES
#Ò426&%"*/5&3/"
419
%NESTASECCIØNSØLOSEHABLARÈDELAESTRUCTURATRIE QUEESUNAVARIANTEDELAES TRUCTURATIPOÈRBOL 5NTRIEESUNAESTRUCTURASIMILARAUNÈRBOLCON.RAÓCES CONLAPARTICULARIDADDE QUECADANODODELÈRBOLPUEDESERNUEVAMENTEUNTRIE%NLAlGURASEPRESENTAUN DIAGRAMACORRESPONDIENTEAUNTRIEQUECONTIENELASPROPOSICIONESDELCASTELLANO 5NTRIEPUEDEREPRESENTARUNAESTRUCTURASUMAMENTEÞTILPARABÞSQUEDA,ASRAÓCESDEL ÈRBOLTIENENCOMOOBJETIVODIRIGIRELCAMINODEBÞSQUEDAHACIALAMETA,APROFUNDIDADDE UNAESTRUCTURADEESTETIPODEPENDEDELADISCRIMINACIØNENLACLAVEDEBÞSQUEDAQUEREALI CEELUSUARIO%NLAlGURASEPUEDEOBSERVARUNTRIECUYAPROFUNDIDADESVARIABLEPARA CADARAÓZ$EESTAFORMASELOCALIZALAINFORMACIØNBUSCADADIRECTAMENTEENELNODOTERMI NAL SINTENERQUEREALIZARBÞSQUEDASECUENCIAL%NLAlGURAELLECTORPUEDEOBSERVAR UNTRIECONPROFUNDIDADTRESLADISCRIMINACIØNENLACLAVEDEBÞSQUEDAESIGUALA #ONELPROPØSITODEINSTRUMENTARESTAESTRUCTURAENUNLENGUAJEDEALTONIVEL PODE MOSREPRESENTARUNTRIECOMOUNBOSQUE0OSTERIORMENTE APLICANDOLASREGLASNECESARIAS ANALIZADASENELCAPÓTULO SEDEBECONVERTIRESTAESTRUCTURAENÈRBOLBINARIO%NLA lGURASEMUESTRAELBOSQUEQUEREPRESENTAALTRIEDELAlGURA &INALMENTE ENLAlGURASEMUESTRAALÈRBOLBINARIOQUEREPRESENTAALBOSQUE DELAlGURA
&)'52! 2EPRESENTACIØNDEUNTRIECONDISCRIMINACIØN
420 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" &)'52! 2EPRESENTACIØNDELTRIEDELAlGURACOMOBOSQUE
"Â315%$!%84%2.! %NLASECCIØNANTERIORSEESTUDIARONLASTÏCNICASDEBÞSQUEDAQUESONAPLICABLESCUANDO LAINFORMACIØNRESIDEENLAMEMORIAPRINCIPALDELACOMPUTADORA%NPARTICULAR SEANALI ZØLAOPERACIØNDEBÞSQUEDAENESTRUCTURASESTÈTICASARREGLOSYDINÈMICASLISTASY ÈRBOLESDEINFORMACIØN3INEMBARGO EXISTENCASOSENLOSCUALESNOSEPUEDEMANEJAR TODALAINFORMACIØNENMEMORIAPRINCIPAL SINOQUEESNECESARIOTRABAJARCONINFORMA CIØNALMACENADAENARCHIVOS%STETIPODEBÞSQUEDASEDENOMINABÞSQUEDAEXTERNA ,OS ARCHIVOS SE USAN NORMALMENTE CUANDO EL VOLUMEN DE DATOS ES SIGNIlCATIVO OCUANDOLAAPLICACIØNEXIGELAPERMANENCIADELOSDATOS AUNDESPUÏSDEQUEÏSTASE TERMINEDEEJECUTAR#OMOLOSARCHIVOSSEENCUENTRANALMACENADOSENDISPOSITIVOSPE RIFÏRICOSCINTAS DISCOS ETC LASOPERACIONESDEESCRITURAYLECTURADEDATOSTIENEN UNALTOCOSTOENCUANTOATIEMPO PORLOSACCESOSAESTOSPERIFÏRICOS0ARADISMINUIREL
#Ò426&%"&95&3/"
&)'52! 2EPRESENTACIØNDELBOSQUEDELAlGURACOMOÉRBOLBINARIO
421
422 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" TIEMPODEACCESOESMUYIMPORTANTEOPTIMIZARLASOPERACIONESDEBÞSQUEDA INSERCIØN YELIMINACIØNENARCHIVOS5NAFORMADEHACERLOESTRABAJARCONARCHIVOSORDENADOS! CONTINUACIØNSEDESCRIBENALGUNOSDELOSMÏTODOSMÈSUTILIZADOSENBÞSQUEDAEXTERNA
"ÞSQUEDAENARCHIVOSSECUENCIALES ,OSARCHIVOSSECUENCIALESSONAQUELLOSCUYOSCOMPONENTESOREGISTROSOCUPANPOSI CIONESRELATIVASCONSECUTIVAS4ODOCOMPONENTEOREGISTRODEUNARCHIVOTIENEGENERAL MENTEUNCAMPOQUELOIDENTIlCA LLAMADOCAMPOCLAVE²STESEENCUENTRAFORMADOPOR UNCONJUNTODECARACTERESODÓGITOS!DEMÈS OCUPALAMISMAPOSICIØNRELATIVAENTODOS LOSREGISTROSDEUNMISMOARCHIVO!LGUNOSEJEMPLOSDECAMPOSCLAVESONELNÞMERODE CLIENTEARCHIVODECLIENTES ELNÞMERODECONTRIBUYENTEARCHIVODEHACIENDA LAMATRÓCULADEUNALUMNOARCHIVODEALUMNOS ELNÞMERODEEMPLEADOARCHIVO DEEMPLEADOS ETC0UEDESUCEDERQUELACLAVEDEUNREGISTROESTÏFORMADAPORMÈS DEUNCAMPO0OREJEMPLO ENUNSISTEMADEINVENTARIOSCADAPIEZASEPODRÓAIDENTIlCAR PORUNCAMPOQUEHAGAREFERENCIAALDEPARTAMENTOALCUALPERTENECE YOTROCAMPOPARA LAPIEZAENSÓ %NSEGUIDASEDESCRIBENALGUNOSMÏTODOSDEBÞSQUEDAENARCHIVOSSECUENCIALES
"ÞSQUEDASECUENCIAL %LMÏTODODEBÞSQUEDASECUENCIALCONSISTEENRECORRERELARCHIVOCOMPARANDOLACLAVE BUSCADACONLACLAVEDELREGISTROENCURSO%LRECORRIDOLINEALDELARCHIVOTERMINACUANDO SEENCUENTRAELELEMENTO OCUANDOSEALCANZAELlNALDELARCHIVO3EPUEDENPRESENTAR ALGUNASVARIANTESDENTRODEESTEMÏTODO DEPENDIENDOSOBRETODODESIELARCHIVOESTÈ ORDENADOODESORDENADO !CONTINUACIØNSEDETALLAELALGORITMODEBÞSQUEDALINEALENUNARCHIVOSECUENCIAL DESORDENADO !LGORITMO !RCHIVO?SECUENCIAL?DESORDENADO
!RCHIVO?SECUENCIAL?DESORDENADO&! + [%STEALGORITMOBUSCASECUENCIALMENTEENUNARCHIVODESORDENADO&! UNREGISTROCONCLAVE +] ["!. ES UNA VARIABLE DE TIPO BOOLEANO 2 ES UNA VARIABLE DE TIPO REGISTRO #,!6% ES UN CAMPODELREGISTRO] !BRIRELARCHIVO&!PARALECTURA (ACER"!.←&!,3/ -IENTRASNOSEAELlNDEARCHIVODE&! Y"!.&!,3/ 2EPETIR ,EER2DE&! 3I2#,!6%+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELARCHIVOv
#Ò426&%"&95&3/"
423
(ACER"!.←6%2$!$%2/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.&!,3/ ENTONCES %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARCHIVOv [&INDELCONDICIONALDELPASO]
%STEALGORITMOESSIMILARAL%NGENERAL TIENELASMISMASCARACTERÓSTICASQUEEL MÏTODOSECUENCIALENARREGLOSDESORDENADOS %LALGORITMODEBÞSQUEDAENARCHIVOSORDENADOSSEESTUDIARÈCONSIDERANDO ENPAR TICULAR ARCHIVOSORDENADOSENFORMACRECIENTE !LGORITMO !RCHIVO?SECUENCIAL?ORDENADO !RCHIVO?SECUENCIAL?ORDENADO&! + [%STE ALGORITMO BUSCA SECUENCIALMENTE EN UN ARCHIVO &! ORDENADO EN FORMA CRECIENTE UN REGISTROCONCLAVE+] ["!. ES UNA VARIABLE DE TIPO BOOLEANO 2 ES UNA VARIABLE DE TIPO REGISTRO #,!6% ES UN CAMPODELREGISTRO] !BRIRELARCHIVO&!PARALECTURA (ACER"!.←&!,3/ -IENTRASNOSEAELlNDEARCHIVODE&! Y"!.&!,3/ 2EPETIR ,EER2DE&! 3I2#,!6%≥+ ENTONCES (ACER"!.←6%2$!$%2/ [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I2#,!6%+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELARCHIVOv SINO %SCRIBIRh,AINFORMACIØNNOSEENCUENTRAENELARCHIVOv [&INDELCONDICIONALDELPASO]
,ADIFERENCIAENTREESTEALGORITMOYELANTERIORCONSISTEENQUELABÞSQUEDATAMBIÏN SEDETIENECUANDOLACLAVEDE2ESMAYORQUE+%STOÞLTIMOSEDEBEAQUESIELARCHIVO ESTÈ ORDENADO YA NO SE ENCONTRARÈ EL REGISTRO CON CLAVE + ENTRE LOS REGISTROS AÞN NO VISITADOS
424 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
"ÞSQUEDASECUENCIALMEDIANTEBLOQUES ,ABÞSQUEDASECUENCIALMEDIANTEBLOQUESCONSISTEENTOMARBLOQUESDEREGISTROSEN VEZDEREGISTROSAISLADOS5NBLOQUEESUNCONJUNTODEREGISTROS3UTAMA×OESARBITRARIO YDEPENDEDELNÞMERODEELEMENTOSDELARCHIVO'ENERALMENTESEDElNEELTAMA×ODEL . . BLOQUEIGUALA DONDEESELNÞMERODEREGISTROSDELARCHIVOLADEMOSTRACIØNDE . PORQUÏESSEPRESENTAMÈSADELANTE%LARCHIVODEBEESTARORDENADO,ABÞSQUEDA SEREALIZAALCOMPARARLACLAVEENCUESTIØNCONELÞLTIMOREGISTRODECADABLOQUE3ILA CLAVERESULTAMENOR ENTONCESSEBUSCAENFORMASECUENCIALATRAVÏSDELOSREGISTROSSAL TEADOSENELBLOQUE%NCASOCONTRARIOSECONTINÞACONELSIGUIENTEBLOQUE%NPROMEDIO . ELNÞMERODECOMPARACIONESREQUERIDASPARAENCONTRARUNVALORDADOSERÈIGUALA !CONTINUACIØNSEPRESENTAUNALGORITMODEBÞSQUEDASECUENCIALUSANDOBLOQUES !LGORITMO !RCHIVO?SECUENCIAL?BLOQUES !RCHIVO?SECUENCIAL?BLOQUES&! . + [%STEALGORITMOBUSCASECUENCIALMENTEENUNARCHIVOORDENADO&!DE.ELEMENTOS UNREGISTRO CONCLAVE+] [)Y4"SONVARIABLESDETIPOENTERO"!.ESUNAVARIABLEDETIPOBOOLEANO] !BRIRELARCHIVO&!PARALECTURA (ACER"!.←&!,3/ )←Y4"←0ARTE%NTERASQRT. [#ALCULAELTAMA×ODEL BLOQUECOMOLARAÓZCUADRADADE.] -IENTRAS4" )≤. Y"!.&!,3/ 2EPETIR ,EER2DE&!ENLAPOSICIØN4" ) 3I2#,!6%≥+ ENTONCES (ACER"!.←6%2$!$%2/ SINO (ACER)←) [&INDELCONDICIONALDELPASO] [&INDELCICLODELPASO] 3I"!.6%2$!$%2/ ENTONCES 3I2#,!6%+ ENTONCES %SCRIBIRh,AINFORMACIØNSEENCUENTRAENELARCHIVOv SINO 2EALIZARBÞSQUEDASECUENCIALENLOSREGISTROSSALTEADOSDELREGISTRO 4" )n ALREGISTRO4" )n 2EPOSICIONARELPUNTERODELARCHIVO YAPLICARELALGORITMOPARA EJECUTARLABÞSQUEDAELEMENTOPORELEMENTO [&INDELCONDICIONALDELPASO] SINO[3I4"NOESMÞLTIPLODE. QUEDARONELEMENTOSSINREVISAR] 2EALIZARBÞSQUEDASECUENCIALENLOSREGISTROSCOMPRENDIDOSENTRE 4" )n Y. [&INDELCONDICIONALDELPASO]
#Ò426&%"&95&3/"
425
%NESTEALGORITMOSELEEELÞLTIMOREGISTRODECADABLOQUE YDELACOMPARACIØNDEL ELEMENTOBUSCADOCONÏLSEDECIDECØMOCONTINUARCONLABÞSQUEDA%LSIGUIENTEEJEM PLOILUSTRAMEJORELFUNCIONAMIENTODEESTEALGORITMO
%JEMPLO
3EA&!UNARCHIVOORDENADODEREGISTROS,OSREGISTROSOCUPANPOSICIONESCONSECU TIVASCONDIRECCIONESRELATIVASDELAL,ASCLAVESDELOSREGISTROSALMACENADOSEN &!SON $ADOQUESECONOCE. SECALCULAELTAMA×ODELBLOQUEDELASIGUIENTEMANERA 4"
,ATABLAPRESENTAELSEGUIMIENTODELALGORITMOPARA+ %NLACOLUMNA2EGISTROLEÓDOAPARECEELÞLTIMOREGISTRODELBLOQUE PASOS Y %NELPASO CUANDOSECUMPLELACONDICIØNDEQUE2#,!6%≥+ ENTONCESSECOMIEN ZALABÞSQUEDASECUENCIALAPARTIRDELELEMENTO4" )n ELEMENTO EN ESTECASOEL HASTAQUESEENCUENTRAELVALORDESEADOÏXITOOHASTAELELEMENTO 4" )n ELEMENTO/BSERVEQUEENELPASOSEENCUENTRAELREGISTROBUSCADO
"ÞSQUEDASECUENCIALCONÓNDICES %LMÏTODODEBÞSQUEDASECUENCIALCONÓNDICESTRABAJACONBLOQUESYCONARCHIVOSDE ÓNDICES%NELARCHIVODEÓNDICESSEALMACENANLASCLAVESQUEHACENREFERENCIAACADA BLOQUEYLADIRECCIØNDELOSBLOQUESENELARCHIVO,ABÞSQUEDADEUNELEMENTOCOMIEN ZA RECORRIENDO EL ARCHIVO DE ÓNDICES COMPARANDO LAS CLAVES ALLÓ ALMACENADAS CON LA CLAVEDELELEMENTOENCUESTIØN5NAVEZQUESEDETERMINAELBLOQUEENELCUALSEPUEDE ENCONTRAR EL REGISTRO BUSCADO SE CONTINÞA LA BÞSQUEDA AHORA RECORRIENDO SECUENCIAL MENTEDICHOBLOQUE
4!",! "ÞSQUEDASECUENCIALCON BLOQUE
0ASO
)
2EGISTROLEÓDO
#OMPARA
"ANDERA
≥
&
≥
&
≥
6
426 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" ,ADESVENTAJADEESTEMÏTODOESQUEREQUIEREMÈSESPACIODEMEMORIA YAQUESE TRABAJACONDOSARCHIVOSELPRINCIPAL ENELCUALSEALMACENANLOSREGISTROS YELDEÓN DICES5NAFORMADEACELERARELPROCESODEBÞSQUEDACONSISTEENMANTENERENMEMORIA PRINCIPALELARCHIVODEÓNDICES %N LA lGURA SE PRESENTA UN ESQUEMA DE UN ARCHIVO CON SU CORRESPONDIENTE ARCHIVODEÓNDICES %LARCHIVODEÓNDICESSERECORRESECUENCIALMENTEHASTAENCONTRARLACLAVEQUESEA MAYOROIGUALALACLAVEBUSCADA#UANDOESTOÞLTIMOSUCEDA SETOMARÈLADIRECCIØNDEL BLOQUEAPUNTADOPORDICHACLAVEYSEAPLICARÈBÞSQUEDASECUENCIALALGORITMO EN DICHOBLOQUE
$ETERMINACIØNDELTAMA×ODELBLOQUE %LTAMA×ODELBLOQUESEDEBEELEGIRDETALFORMAQUEPERMITAREDUCIRELNÞMERODECOM PARACIONES3EA.ELNÞMERODEREGISTROSENELARCHIVOY4"ELTAMA×ODELBLOQUE,A PROBABILIDADDEENCONTRARUNREGISTROENUNBLOQUEESIGUALPARATODOSLOSBLOQUESPOR LOTANTO ELNÞMEROMEDIODEBLOQUESEXAMINADOSSERÈ
. 4"
¥
´
¤ ¦§ I . 4" µ¶ I
. 4"
$ONDE.4" REPRESENTALAPROBABILIDADDEENCONTRARUNREGISTROENUNBLOQUE #ONSIDERE ADEMÈS QUETODOSLOSREGISTROSTIENENLAMISMAPROBABILIDADDESERELBUS CADOPORLOTANTO ELNÞMEROMEDIODEREGISTROSEXAMINADOSSERÈ
&)'52! "ÞSQUEDASECUENCIALCON ÓNDICES
#Ò426&%"&95&3/" 4"
¥
¤ § I 4" ´¶ I
4"
427
$ONDE4"ESLAPROBABILIDADDEQUEELREGISTROEXAMINADOSEAELBUSCADO 3ESUMANLASEXPRESIONESYPARAOBTENERELNÞMEROTOTALMEDIODECOMPARACIO NES4# QUESEDEBENHACERPARAENCONTRARUNELEMENTOENELARCHIVO 4#
. 4" 4"
/PERANDOSEOBTIENE 4#
. 4" 4"
!LMINIMIZAR4#SEPODRÈDETERMINARCUÈLESELTAMA×OADECUADOPARADElNIRLOS BLOQUESESDECIR ELPROBLEMASEREDUCEAENCONTRARUNVALORTALPARA4"QUEMINIMICE ELVALORDE4#
. D 4# D 4" 4"
3EIGUALAACEROLAEXPRESIØNYSEHACENLASOPERACIONES
. 4"
. 4"
$ELAEXPRESIØNSEPUEDEAlRMARQUEELVALORDE4"QUEMINIMIZAA4#ES
4" .
▼ &ØRMULA
,OSARCHIVOSDEÓNDICES POROTRAPARTE SEPUEDENDElNIRADISTINTOSNIVELESESDECIR SEPUEDENDElNIRÓNDICESDEÓNDICES3IBIENESTETIPODEORGANIZACIØNOPTIMIZAELTIEMPO DEBÞSQUEDA TIENEELINCONVENIENTEDEQUEOCUPAMUCHOESPACIODEALMACENAMIENTO
"ÞSQUEDABINARIA %LPRINCIPIOQUERIGEELMÏTODODEBÞSQUEDABINARIAENLABÞSQUEDAEXTERNAESELMIS MOQUESEEXPLICØENBÞSQUEDABINARIAINTERNA SECCIØNDEESTECAPÓTULO%LARCHIVO DEBEESTARORDENADOYSEDEBECONOCERSUNÞMERODEELEMENTOS. PARAAPLICARESTE MÏTODO%LLECTORPUEDEDESARROLLARLOFÈCILMENTE YAQUECONOCEELMÏTODODEBÞSQUEDA BINARIAENMEMORIAPRINCIPALINTERNA
428 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" #ABE DESTACAR QUE UN GRAN INCONVENIENTE DE LA BÞSQUEDA BINARIA EXTERNA ES QUE REQUIERE ACCESOS A DIFERENTES POSICIONES DEL DISPOSITIVO PERIFÏRICO EN EL CUAL ESTÈ AL MACENADOELARCHIVOELLOPRODUCEUNALTOCOSTOENTIEMPODEACCESO QUEHACEMUY IMPRÈCTICAESTABÞSQUEDA
"ÞSQUEDAPORTRANSFORMACIØNDECLAVESHASH %LMÏTODODEBÞSQUEDAEXTERNAPORTRANSFORMACIØNDECLAVESTIENEBÈSICAMENTELAS MISMASCARACTERÓSTICASQUEELPRESENTADOENLASECCIØN,OSARCHIVOSNORMALMENTE SE ENCUENTRAN ORGANIZADOS EN ÈREAS LLAMADAS CUBETAS ²STAS SE ENCUENTRAN FORMADAS PORCERO UNOOMÈSBLOQUESDEREGISTROS0ORLOTANTO LAFUNCIØNHASH APLICADAAUNA CLAVE DARÈCOMORESULTADOUNVALORQUEHACEREFERENCIAAUNACUBETAENLACUALSEPUEDE ENCONTRARELREGISTROBUSCADO 4ALCOMOSEMENCIONØENBÞSQUEDAINTERNA LAELECCIØNDEUNAADECUADAFUNCIØN HASHYDEUNMÏTODOPARARESOLVERCOLISIONESESFUNDAMENTALPARALOGRARMAYORElCIEN CIAENLABÞSQUEDA !NTESDEPRESENTARALGUNASFUNCIONESHASHSEHARÈUNCOMENTARIOSOBRELASCOLISIO NES,OSBLOQUESCONTIENENUNNÞMEROlJODEREGISTROS#ONRESPECTOALASCUBETAS NOSE ESTABLECEUNLÓMITEENCUANTOALNÞMERODEBLOQUESQUEPUEDENALMACENAR%STACARAC TERÓSTICAPERMITESOLUCIONAR ALMENOSPARCIALMENTE ELPROBLEMADELASCOLISIONES3IN EMBARGO SIELTAMA×ODELASCUBETASCRECECONSIDERABLEMENTE SEPERDERÈNLASVENTAJAS PROPIASDEESTEMÏTODO%SDECIR SIELNÞMERODEBLOQUESQUESEDEBENRECORRERENUNA CUBETAESGRANDE ELTIEMPONECESARIOPARAELLOSERÈSIGNIlCATIVOPORLOTANTO YANOSE CONTARÈCONLAVENTAJADELACCESODIRECTOQUECARACTERIZAALMÏTODOPORTRANSFORMACIØN DECLAVES%NLAlGURASEPRESENTAUNAESTRUCTURADEARCHIVOORGANIZADOENCUBETAS LASQUEASUVEZESTÈNFORMADASPORBLOQUES #OMO SE MUESTRA EN LA lGURA CADA CUBETA PUEDE TENER UN APUNTADOR A UN BLOQUE3IUNACUBETATIENEDOSOMÈSBLOQUESSEESTABLECENLIGASENTREELLOS$ADALA CLAVEDEUNREGISTROBUSCADO SEAPLICARÈUNAFUNCIØNHASH LACUALDARÈCOMORESULTADO UNNÞMERODECUBETA5NAVEZLOCALIZADAÏSTA HABRÈQUERECORRERSUSBLOQUESHASTAEN CONTRARELREGISTRO OLLEGARAUNBLOQUECONPUNTERONULO LOCUALINDICARÈQUENOEXISTEN OTROSBLOQUES %SIMPORTANTEELEGIRUNAFUNCIØNHASHQUEDISTRIBUYALASCLAVESENFORMAHOMOGÏ NEAATRAVÏSDELASCUBETAS DEMANERAQUESEEVITELACONCENTRACIØNDENUMEROSASCLAVES
&)'52! !RCHIVOORGANIZADOCON CUBETASDEBLOQUES
#Ò426&%"&95&3/"
429
ENUNACUBETAMIENTRASOTRASPERMANECENVACÓAS!CONTINUACIØNSEPRESENTANALGUNAS DELASFUNCIONESHASHMÈSCOMUNES
&UNCIONESHASH 5NAFUNCIØNHASHSEPUEDEDElNIRCOMOUNATRANSFORMACIØNDECLAVEAUNADIRECCIØN!L APLICARUNAFUNCIØNHASHAUNACLAVESEOBTIENEELNÞMERODECUBETAENLACUALSEPUEDE ENCONTRARELREGISTROCONDICHACLAVE ,AFUNCIØNDEBETRANSFORMARLASCLAVESPARAQUELADIRECCIØNRESULTANTESEAUNNÞ MEROCOMPRENDIDOENTRELOSPOSIBLESVALORESDELASCUBETAS0OREJEMPLO SISETIENEN CUBETASNUMERADASDEA LASDIRECCIONESPRODUCIDASPORLAFUNCIØNDEBEN SERVALORESCOMPRENDIDOSENTREY3ILASCLAVESFUERANALFABÏTICASOALFANUMÏ RICAS PRIMERO DEBERÈN CONVERTIRSE EN NUMÏRICAS TRATANDO DE NO PERDER INFORMACIØN PARALUEGOSERTRANSFORMADASENUNADIRECCIØN%SIMPORTANTEQUELAFUNCIØNDISTRIBUYA HOMOGÏNEAMENTELASCLAVESENTRELOSNÞMEROSDECUBETASDISPONIBLES ,ASFUNCIONESMØDULO CUADRADO PLEGAMIENTOYTRUNCAMIENTOPRESENTADASANTERIOR MENTEPARABÞSQUEDAINTERNASONVÈLIDASTAMBIÏNPARABÞSQUEDAEXTERNA/TRAFUNCIØN QUESEPUEDEUTILIZARPARAELCÈLCULODEDIRECCIONESESLADECONVERSIØNDEBASES AUNQUE NOPROPORCIONAMAYORHOMOGENEIDADENLADISTRIBUCIØN$ETODAS LAFUNCIØNMØDULOES SINEMBARGO LAQUEOFRECEMAYORUNIFORMIDAD
#ONVERSIONESDEBASES ,ACONVERSIØNDEBASESCONSISTEENMODIlCARDEMANERAARBITRARIALABASEDELACLAVE OBTENIENDOUNNÞMEROQUECORRESPONDAAUNACUBETA3IELNÞMERODEDÓGITOSDELVALOR RESULTANTEEXCEDEELORDENDELASDIRECCIONES ENTONCESSESUPRIMIRÈNLOSDÓGITOSMÈS SIGNIlCATIVOS
%JEMPLO
3UPONGAMOSQUESETIENENCUBETAS CADAUNADEELLASREFERENCIADAPORUNNÞMERO ENTEROCOMPRENDIDOENTREY3EA+LACLAVEDELREGISTROQUESEBUSCA3E ELIGEELCOMOBASEALACUALSECONVIERTELACLAVE ( DÓGMENSIG ( DÓGMENSIG 3ETOMAENTONCESCOMODIRECCIØNELYLOSDÓGITOSMÈSSIGNIlCATIVOS Y SE DESPRECIAN
3OLUCIØNDECOLISIONES #OMOSEMENCIONØANTERIORMENTECUANDOSETRATØBÞSQUEDAINTERNA UNODELOSASPECTOS QUESIEMPRESEDEBENDECONSIDERARENELMÏTODOPORTRANSFORMACIØNDECLAVESESLASO LUCIØNDECOLISIONES#UANDODOSOMÈSELEMENTOSCONDISTINTASCLAVESTIENENUNAMISMA DIRECCIØN SEORIGINAUNACOLISIØN 0ARAEVITARLASCOLISIONESSEDEBEELEGIRUNTAMA×OADECUADODECUBETASYDEBLO QUES#ONRESPECTOALASCUBETAS SISEDElNENMUYPEQUE×ASELNÞMERODECOLISIONES
430 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" AUMENTA MIENTRASQUESISEDElNENMUYGRANDESSEPIERDEElCIENCIAENCUANTOAESPACIO DEALMACENAMIENTO!DEMÈS SISENECESITARACOPIARUNACUBETAENMEMORIAPRINCIPALY ÏSTAFUERAMUYGRANDE OCASIONARÓAPROBLEMASPORFALTADEESPACIO/TROINCONVENIENTE QUESEPRESENTAENELCASODECUBETASMUYGRANDESESQUESEREQUIEREMUCHOTIEMPO PARARECORRERLAS #ONRESPECTOALTAMA×ODELOSBLOQUES ESIMPORTANTECONSIDERARLACAPACIDADDE ÏSTOSPARAALMACENARREGISTROS5NBLOQUEPUEDEALMACENARUNO DOSOMÈSREGISTROS .ORMALMENTELOSTAMA×OSDELASCUBETASYLOSBLOQUESDEPENDENDELASCAPACIDADESDEL EQUIPOCONELQUESEESTÏTRABAJANDO #ABEDESTACARQUEUTILIZANDOUNAESTRUCTURACOMOLADELAlGURANOSETENDRÓA PROBLEMASDECOLISIONES DEBIDOPRINCIPALMENTEAQUEPORMÈSQUELACUBETAESTÏOCU PADA ESPOSIBLESEGUIRENLAZANDOTANTOSBLOQUESCOMOFUERANNECESARIOS%STEESQUEMA DESOLUCIØNSECORRESPONDECONELPRESENTADOENBÞSQUEDAINTERNA BAJOELNOMBREDE ENCADENAMIENTO3INEMBARGO NOSIEMPREESPOSIBLEDElNIRUNAESTRUCTURADEESTETIPO #ONSIDERE POREJEMPLO UNARCHIVOORGANIZADOENCUBETASCOMOELQUESEMUESTRAEN LAlGURA %NESTEARCHIVOCADACUBETATIENEUNBLOQUEY PORLOTANTO UNACAPACIDADMÈXIMA DETERMINADAPORELTAMA×ODELBLOQUEASOCIADOCONELLA5NAVEZQUESESATURALACAPA CIDADDELACUBETA CUALQUIERREGISTROASIGNADOAELLAPRODUCIRÈUNACOLISIØN!CONTINUA CIØNSEANALIZARÈNDOSMANERASDIFERENTESDEENFRENTARESTASITUACIØN
&)'52! 3OLUCIØNDECOLISIONES
#Ò426&%"&95&3/"
431
5SODEÉREASINDEPENDIENTESPARACOLISIONES %L USO DE ÈREAS INDEPENDIENTES PARA COLISIONES CONSISTE EN DElNIR ÈREAS SEPARADAS SECUNDARIASDELASÈREASPRIMARIASDEALMACENAMIENTO ENLASQUESEALMACENARÈN TODOSLOSREGISTROSQUEHAYANCOLISIONADO%LÈREADECOLISIONESPUEDEESTARORGANIZADA DEDIFERENTESMANERAS5NAALTERNATIVACONSISTEENTENERELÈREACOMÞNATODASLASCU BETAS%NCONSECUENCIA SISEPRODUCEUNACOLISIØNHABRÈQUEBUSCARALOLARGODELÈREA SECUNDARIAHASTAENCONTRARELELEMENTODESEADO SEGÞNLAlGURA /TRAFORMADEORGANIZARELÈREADECOLISIONESCONSISTEENDIVIDIRLAENBLOQUES ASO CIANDOCADAUNODEELLOSAUNODELÈREAPRIMARIA%STAALTERNATIVAOPTIMIZAELTIEMPO DEBÞSQUEDAENELÈREADECOLISIONES PEROTIENEELINCONVENIENTEDEQUEESTOSBLOQUES PODRÓAN ASUVEZ SATURARSE OCASIONANDONUEVAMENTECOLISIONES%LESQUEMACORRESPON DIENTEAESTAESTRUCTURASEMUESTRAENLAlGURA
&)'52! 3OLUCIØNDECOLISIONESMEDIANTEUNÉREACOMÞNDECOLISIONES
432 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
&)'52! 3OLUCIØNDECOLISIONESMEDIANTEUNÉREADECOLISIONESORGANIZADAENBLOQUES
5SODEÉREASDECOLISIONESENTRELOSBLOQUES DEALMACENAMIENTOPRIMARIO %LUSODEÈREASDECOLISIONESENTRELOSBLOQUESDEALMACENAMIENTOPRIMARIOCON SISTEENDElNIRÈREASDECOLISIONESENTRELOSBLOQUESDEALMACENAMIENTOPRIMARIO%STE MÏTODOESSIMILARALPRESENTADOENBÞSQUEDAINTERNABAJOELNOMBREDEREASIGNACIØN 5NAVEZDETECTADAUNACOLISIØNENUNBLOQUESEDEBEBUSCARENELÈREADECOLISIONESIN MEDIATAADICHOBLOQUE3IELELEMENTONOSEENCUENTRAYELÈREADECOLISIONESESTÈLLENA SECONTINUARÈLABÞSQUEDAATRAVÏSDELASOTRASÈREASDECOLISIONES%LPROCESOTERMINA CUANDOELELEMENTOSEENCUENTRAOBIENCUANDOEXISTENESPACIOSVACÓOSENUNBLOQUE ELELEMENTOBUSCADONOSEENCUENTRAENELARCHIVO%LESQUEMACORRESPONDIENTEA ESTEESQUEMASEMUESTRAENLAlGURA
#Ò426&%"&95&3/"
433
&)'52! 3OLUCIØNDECOLISIONES MEDIANTEBLOQUESPARAÊ COLISIONESENTRELOSBLOQUES PRIMARIOS
(ASHINGDINÉMICOBÞSQUEDADINÉMICA PORTRANSFORMACIØNDECLAVES ,APRINCIPALCARACTERÓSTICADELHASHINGDINÈMICOESSUDINAMISMOPARAVARIARELNÞ MERODECUBETASENFUNCIØNDESUDENSIDADDEOCUPACIØN3ECOMIENZAATRABAJARCON UNNÞMERODETERMINADODECUBETAS YAMEDIDAQUEÏSTASSEVANLLENANDOSEASIGNAN NUEVASCUBETASALARCHIVO%XISTENBÈSICAMENTEDOSFORMASDETRABAJARCONELHASHING DINÈMICO ◗ ◗
0ORMEDIODEEXPANSIONESTOTALES 0ORMEDIODEEXPANSIONESPARCIALES
-ÏTODODELASEXPANSIONESTOTALES %LMÏTODODEEXPANSIONESTOTALESESPROBABLEMENTEELMÈSUTILIZADO#ONSISTEENDU PLICARELNÞMERODECUBETASENLAMEDIDAENQUEÏSTASSUPERANLADENSIDADDEOCUPACIØN PREVIAMENTEESTABLECIDA!SÓ POREJEMPLO SIELNÞMEROINICIALDECUBETASES.YSEHACE UNA EXPANSIØNTOTAL ELVALORRESULTANTENUEVONÞMERODECUBETASSERÈ.3ISE HACEUNASEGUNDAEXPANSIØNTOTAL SETENDRÈ. YASÓSUCESIVAMENTE %LDINAMISMODEESTEMÏTODOTAMBIÏNSEDAENSENTIDOCONTRARIOESDECIR QUEA MEDIDAQUELADENSIDADDEOCUPACIØNDELASCUBETASDISMINUYE SEREDUCEELNÞMERODE ÏSTAS!SÓ SEGANAmEXIBILIDADENCUANTOAQUESEPUEDENINCREMENTARLOSESPACIOSDEAL MACENAMIENTO PEROTAMBIÏNSEPUEDENREDUCIRSILADEMANDADEESPACIOASÓLOINDICA
%JEMPLO
3UPONGAMOSQUESETIENEUNARCHIVOORGANIZADOENDOSCUBETAS. YSEHAlJADO UNADENSIDADDEOCUPACIØNDE,ADENSIDADDEOCUPACIØNSECALCULACOMOELCO CIENTEENTREELNÞMERODEREGISTROSOCUPADOSYELDEREGISTROSDISPONIBLES#ADACUBETA TIENEDOSREGISTROS YLAFUNCIØNHASHQUETRANSFORMACLAVESENDIRECCIONESSEDElNEDE LASIGUIENTEMANERA (CLAVE CLAVE-/$.ÞMERODECUBETAS
434 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" &)'52! (ASHDINÉMICO. EXPANSIØNTOTAL
,OSVALORES YSONLASCLAVESDELOSREGISTROSQUESEDESEAALMACENAR )NICIALMENTEELARCHIVOESTÈVACÓO%NLAlGURASEPRESENTAUNESQUEMADECØMO QUEDANLASCUBETAS DESPUÏSDEINSERTARLASTRESPRIMERASCLAVES #UANDOSEQUIEREINSERTARLACLAVE SESUPERALADENSIDADDEOCUPACIØNESTABLECI DA YAQUESEALCANZARÓADELLENADO0ORLOTANTO SEDEBENEXPANDIRYREASIGNARLOS REGISTROSCONSIDERANDOAHORAQUEELNÞMERODECUBETASESIGUALA . lGURA 3UPONGAMOSAHORAQUESEDESEAINCORPORARLOSREGISTROSCONCLAVES YENESTEORDEN%LRESULTADO DESPUÏSDEINSERTARLASDOSPRIMERAS CLAVES SEPUEDEOBSERVARENLAlGURA #UANDOSEINSERTAELREGISTROCONCLAVE LADENSIDADDEOCUPACIØNSUPERAEL lJADO3EVUELVEN ENTONCES AEXPANDIRYAREASIGNARLOSREGISTROSALMACENADOSlGURA A YLUEGOSECONTINÞACONLAINSERCIØNDELRESTODELOSELEMENTOS,AlGURAB PRESENTAELESTADODELASCUBETASLUEGODEREALIZARTODASLASINSERCIONES EXCEPTOLAÞL TIMA #UANDOSEINSERTALAÞLTIMACLAVE SESUPERANUEVAMENTELADENSIDADDEOCUPA CIØNYHAYQUEVOLVERAEXPANDIRLASCUBETAS0ORLOTANTO AHORA.SERÈIGUALAlGURA %SIMPORTANTESE×ALARQUEENESTEMÏTODOTAMBIÏNSEPUEDENPRODUCIRCOLISIONES LASCUALESPODRÓANTRATARSESEGÞNALGUNODELOSESQUEMASPROPUESTOSANTERIORMENTE0OR EJEMPLO SIENELCASOANTERIORlGURA LUEGODEINSERTARLOSREGISTROSCONCLAVES YSETRATARADEAGREGARELREGISTROCONCLAVE SEPRODUCIRÓAUNACOLISIØN YAQUE LACUBETAESTÈLLENA
%JEMPLO
$ADOUNARCHIVOORGANIZADOENDOSCUBETAS. DONDECADAUNADEELLASTIENETRES REGISTROS SEQUIEREALMACENARLASSIGUIENTESCLAVES Y 3EHAESTABLECIDOUNADENSIDADDEOCUPACIØNMAYORAPARAEXPANSIØNYMENOR APARAREDUCCIØN%SIMPORTANTEREMARCARQUEELPORCENTAJEDEOCUPACIØN PARAEL
&)'52! (ASHDINÉMICO. EXPANSIØNTOTAL
#Ò426&%"&95&3/"
435
&)'52! (ASHDINÉMICO. EXPANSIØNTOTAL A ,UEGODEINSERTAR B ,UEGODEINSERTAR
CASODEREDUCCIØN SECALCULACOMOELCOCIENTEENTREELNÞMERODEREGISTROSOCUPADOSY ELNÞMERODECUBETAS !CONTINUACIØNSEPRESENTALAFUNCIØNHASHQUESEUTILIZA (CLAVE CLAVE-/$.ÞMERODECUBETAS ,ASCLAVESSEALMACENANENELORDENENQUESEDAN,AREPRESENTACIØNlNALSEPUEDE OBSERVARENLAlGURA %NELSIGUIENTEEJEMPLOSEACLARAELCONCEPTODEREDUCCIØNDELNÞMERODECUBETAS ENELMÏTODODINÈMICOPORTRANSFORMACIØNDECLAVES CONEXPANSIONESTOTALES
&)'52! (ASHDINÉMICO. EXPANSIØNTOTALA ,UEGODEINSERTAR B ,UEGODEINSERTAR
436 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
&)'52! (ASHDINÉMICO. EXPANSIØNTOTAL
%JEMPLO
3UPONGAMOSQUESETIENEELARCHIVOENELESTADOQUEMUESTRALAlGURA3EDESEAN ELIMINARAHORALOSREGISTROSCONCLAVES Y !L ELIMINAR EL REGISTRO CON CLAVE LA DENSIDAD DE OCUPACIØN DISMINUYE DE TAL MANERAQUEPERMITEREDUCIRELNÞMERODECUBETAS. ,UEGODELAREDUCCIØNYDELA REASIGNACIØNDEREGISTROS LASCUBETASQUEDANCOMOSEMUESTRAENLAlGURA 5NAVEZELIMINADOSLOSOTROSREGISTROS LADENSIDADDEOCUPACIØNPERMITEREDUCIR NUEVAMENTEELNÞMERODECUBETAS%NLAlGURASEPRESENTASUESTADOLUEGODELA REDUCCIØNDE.YDELAREASIGNACIØNDELOSREGISTROS
%JEMPLO
&)'52! (ASHDINÉMICO. EXPANSIØNTOTAL
$ADOELARCHIVODELAlGURAYLASESPECIlCACIONESDADASENELEJEMPLO ELIMI NELASSIGUIENTESCLAVES
#Ò426&%"&95&3/"
437
&)'52! (ASHDINÉMICO. REDUCCIØN
Y YVERIlQUEQUEELESQUEMAlNAL LUEGODEREALIZARLASELIMINACIONES QUEDEIGUALALDE LAlGURA
-ÏTODODELASEXPANSIONESPARCIALES %LMÏTODODELASEXPANSIONESPARCIALESCONSISTEENINCREMENTARENELNÞMERODE CUBETAS HACIENDODEESTAFORMAQUEDOSEXPANSIONESPARCIALESEQUIVALGANAUNATOTAL !SÓ POREJEMPLO SIELNÞMEROINICIALDECUBETASES. YSEHACEUNAEXPANSIØNPARCIAL ELVALORRESULTANTESERÈ.3ISEHACENOTRASEXPANSIONESPARCIALESSETENDRÈ. LUEGO . YASÓSUCESIVAMENTE
!CONTINUACIØNSEPRESENTAUNEJEMPLODEHASHDINÈMICOCONEXPANSIONESPAR CIALES &)'52! (ASHDINÉMICO. REDUCCIØN
438 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" &)'52! (ASHDINÉMICO. REDUCCIØN
%JEMPLO
2ETOME EL EJEMPLO 3UPONGAMOS QUE HASTA EL MOMENTO SE HAN ALMACENADO LOS REGISTROSCONCLAVES Y#UANDOSEQUIEREINSERTARELREGISTROCONCLAVE EL NÞMERODEREGISTROSSUPERAELMÈXIMOPERMITIDOYAQUELADENSIDADDEOCUPACIØNSUPE RAPORTALRAZØNSEREALIZAUNAEXPANSIØNPARCIAL,AlGURAMUESTRAELESTADO DELASCUBETASLUEGODEEXPANDIRYREASIGNARLOSREGISTROS /BSERVEQUEENESTECASOELVALORDE.NOFUEMUYADECUADOPARADISTRIBUIRUNI FORMEMENTELOSREGISTROSATRAVÏSDELASCUBETAS%NLACUBETASETIENEUNACOLISIØN MIENTRASQUELACUBETAPERMANECEVACÓA 3UPONGAMOSAHORAQUESEDESEAINCORPORARLOSREGISTROSCONCLAVES Y !LINSERTARELREGISTROCONCLAVESESUPERALADENSIDADDEOCUPACIØN PORLOQUE SEDEBENEXPANDIRNUEVAMENTELASCUBETASYREASIGNARLOSREGISTROS3EINSERTAACONTI NUACIØNELREGISTROCONCLAVE COMOSEVEENLAlGURA !LINSERTARELREGISTROCONCLAVE OTRAVEZSESUPERAELPORCENTAJEDEOCUPACIØN PERMITIDO3EVUELVENAEXPANDIRLASCUBETASYAREASIGNARLOSREGISTROS%LRESULTADO lNAL LUEGODEINSERTARTODASLASCLAVES SEMUESTRAENLAlGURA
%JEMPLO
$ADOUNARCHIVOORGANIZADOENDOSCUBETAS. DONDECADACUBETATIENETRESREGIS TROS SEQUIEREALMACENARLASSIGUIENTESCLAVES Y 0ARAESTEEJEMPLOSEHAESTABLECIDOUNADENSIDADDEOCUPACIØNMAYORAPARA EXPANSIØNYMENORAPARAREDUCCIØN!CONTINUACIØNSEPRESENTALAFUNCIØNHASH QUESEUTILIZA (CLAVE CLAVE-/$.ÞMERODECUBETAS
&)'52! (ASHDINÉMICO. REDUCCIØN
#Ò426&%"&95&3/"
439
&)'52! (ASHDINÉMICO. EXPANSIØNPARCIAL
/BSERVESILAESTRUCTURAQUEOBTIENEESIGUALALAQUESEPRESENTAENLAlGURA !CONTINUACIØNSEPRESENTAUNEJEMPLOPARAILUSTRARLAREDUCCIØNDELNÞMERODECU BETASENELMÏTODODINÈMICOPORTRANSFORMACIØNDECLAVES CONEXPANSIONESPARCIALES
%JEMPLO
3UPONGAMOSQUESETIENEUNARCHIVOENELESTADOQUEMUESTRALAlGURAB%LIMINE LOSREGISTROSCONCLAVES Y YVERIlQUESILASCUBETASYREGISTROSQUEDANIGUALALAGRÈlCAQUESEMUESTRAENLAlGURA
%JEMPLO
$ADOELARCHIVODELAlGURAYLASESPECIlCACIONESDADASENELEJEMPLO ELIMI NELASSIGUIENTESCLAVES Y 6ERIlQUESIELESQUEMAlNALQUEOBTIENEESIGUALALDELAlGURA &INALMENTE ESIMPORTANTESE×ALARQUEELTAMA×ODELASCUBETASSEDEBEESTABLECER DEACUERDOCONELPROBLEMAQUEESTÏINTENTANDORESOLVER%NLOSEJEMPLOSPRESENTADOS SEHANCONSIDERADOINICIALMENTEDOSREGISTROSPORCUBETA3INEMBARGO ESTENÞMEROES PARAQUEELLECTOROBSERVEELFUNCIONAMIENTODELOSMÏTODOSALREALIZAREXPANSIONESY REDUCCIONES3IELNÞMERODEREGISTROSQUEUTILIZÈRAMOSFUERAGRANDE ENTONCESHABRÓA QUEINGRESARGRANCANTIDADDENÞMEROSPARAOBSERVARLAEXPANSIØNDECUBETAS )NDUDABLEMENTE ENLAPRÈCTICASEDEBECONSIDERARUNNÞMEROMUCHOMÈSGRANDEDE REGISTROSPORCUBETA%LNÞMERODEPENDERÈPRINCIPALMENTEDELTAMA×ODECADAREGISTRO DETALFORMAQUEUNACUBETASEPUEDACARGARENLAMEMORIAPRINCIPAL%NAPLICACIONES GRANDES ELNÞMERODEREGISTROSPORCUBETAPODRÓAVARIARDEA3IELNÞMERODE REGISTROSPORCUBETAESPEQUE×OYENFORMACONTINUASEREALIZANINSERCIONESYELIMI NACIONES ENTONCESPODRÓAOCURRIRQUEFRECUENTEMENTESEDEBANREALIZAREXPANSIONESO REDUCCIONES CONLACONSABIDAPÏRDIDADETIEMPOYALTOCOSTO PORLAREASIGNACIØNDELOS REGISTROS%SELUSUARIOQUIENDEBEDElNIRENTONCESELNÞMERODEREGISTROSPORCUBETA DEPENDIENDODELPROBLEMAYDELASACTUALIZACIONESQUESEREALICEN
440 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
&)'52! (ASHDINÉMICOEXPANSIØN PARCIALA ,UEGODEEXPAN DIREINSERTARLOSREGISTROS CONCLAVES Y B ,UEGODEEXPANDIRE INSERTARLOSREGISTROSCON CLAVES Y
,ISTASINVERTIDAS ,ASLISTASINVERTIDASTRABAJANSOBREALGUNOSDELOSATRIBUTOSCAMPOSDELOSREGIS TROS,OSATRIBUTOSPUEDENESTARONOINVERTIDOSESDECIR PUEDENSERONOCAMPOSCLA VE ,OS ATRIBUTOS INVERTIDOS GENERAN LISTAS ORDENADAS DE REGISTROS LO CUAL FACILITA LAS BÞSQUEDASQUESEHAGANENELLAS,OSATRIBUTOSNOINVERTIDOSGENERANELUNIVERSO OSEA PARAENCONTRARUNDETERMINADOELEMENTOREGISTRO SEDEBERÈREALIZARUNABÞSQUEDA SECUENCIAL
#Ò426&%"&95&3/"
441
&)'52! (ASHDINÉMICO. EXPANSIØNPARCIAL
,ASLISTASINVERTIDASSONMUYRECOMENDABLESCUANDOSETRABAJASOBRECOMBINACIO NESDECAMPOSCLAVE#UANDOSEREQUIEREUNACOMBINACIØNDEATRIBUTOSENLABÞSQUEDA ESTEMÏTODORESULTAMUYCONVENIENTE YAQUECONUNASECUENCIAØPTIMADEOPERADORES !.$Y/2LABÞSQUEDASEPUEDELLEVARACABODEFORMAElCIENTE ,ADESVENTAJADELMÏTODOESQUEREQUIEREDEUNAESTRUCTURAMUYCOMPLICADAPARA OPERAR"ÈSICAMENTETRABAJASOBREÈRBOLES"CONPRElJO!NALICEMOSACONTINUACIØNUN EJEMPLO
%JEMPLO
3UPONGAMOSQUESETIENEUNARCHIVOENELCUALCADAREGISTROALMACENALASIGUIENTEIN FORMACIØN .OMBRE
0ROFESIØN
3ETIENENLOSDATOSDESEISPERSONAS *UAN $ANIEL *OSÏ
&)'52! (ASHDINÉMICO. REDUCCIØN
MATEMÈTICO FÓSICO MATEMÈTICO
%DAD
442 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" &)'52! (ASHDINÉMICO. REDUCCIØN
0ASCUAL -IGUEL &ELIPE
INGENIERO INGENIERO ABOGADO
#ONSIDERANDOQUELOSATRIBUTOSPROFESIØNYEDADESTÈNINVERTIDOS ACONTINUACIØNSE PRESENTANALGUNASOPERACIONESDEBÞSQUEDACONSUSCORRESPONDIENTESRESULTADOS PARA QUEELLECTOROBSERVEELFUNCIONAMIENTODELMÏTODO A ,ISTADEPERSONASPORPROFESIØN MATEMÈTICOS FÓSICOS INGENIEROS ABOGADOS
[*UAN *OSÏ] [$ANIEL] [0ASCUAL -IGUEL] [&ELIPE]
B ,ISTADETODASLASPERSONASCONPROFESIØNMATEMÈTICOOFÓSICO YCONMÈSDEA×OS DEEDAD PROFESIØNMATEMÈTICO /2PROFESIØNFÓSICO !.$EDAD ,ALISTAFORMADASEGÞNELATRIBUTOPROFESIØNES [*UAN *OSÏ $ANIEL] 3OBREESTALISTASEAPLICARÈLASEGUNDACONDICIØNPLANTEADAENLABÞSQUEDA DELO QUERESULTA [*UAN $ANIEL] C ,ISTADETODOSLOSINGENIEROSMENORESDEA×OSYMAYORESDE PROFESIØNINGENIERO !.$EDAD !.$EDAD ,ALISTAFORMADASEGÞNELATRIBUTOPROFESIØNES [0ASCUAL -IGUEL]
#Ò426&%"&95&3/"
443
!PARTIRDEESTALISTA SEBUSCARÈNLOSREGISTROSQUECUMPLANCONLASCONDICIONES IMPUESTASSOBREELATRIBUTOEDAD,ALISTARESULTANTESERÈ [-IGUEL] #ONSIDERANDOQUESOLAMENTEELATRIBUTOPROFESIØNESTÈINVERTIDO SEPRESENTANALGU NASOPERACIONESDEBÞSQUEDACONSUSCORRESPONDIENTESRESULTADOS A ,ISTADETODASLASPERSONASCONPROFESIØNMATEMÈTICOOFÓSICO YCONMÈSDEA×OS DEEDAD
PROFESIØN MATEMÈTICO /2 PROFESIØN FÓSICO Y BÞSQUEDA SECUENCIAL EN LA LISTADELOSREGISTROSMARCADOSPARALOCALIZARAQUELLOSCONEDAD
[*UAN *OSÏ $ANIEL]YSOBREESTALISTAUNABÞSQUEDASECUENCIALPARAENCONTRARALOS INDIVIDUOSMAYORESDEA×OS
B ,ISTADETODOSLOSINGENIEROSMENORESDEA×OSYMAYORESDE PROFESIØNINGENIERO YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOS PARALOCALIZARAQUELLOSCONEDADYEDAD
[0ASCUAL -IGUEL]YBÞSQUEDASECUENCIALSOBREESTALISTAPARAENCONTRARALOSINDI VIDUOSMENORESDEYMAYORESDE
C ,ISTADETODOSLOSABOGADOSMAYORESDEA×OS
%JEMPLO
PROFESIØNABOGADO YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOS PARALOCALIZARAAQUELLOSCONEDAD
[&ELIPE]YBÞSQUEDASECUENCIALSOBREESTALISTAPARAENCONTRARALOSINDIVIDUOSMA YORESDEA×OS
%NESTECASOLASOLUCIØNESLALISTAVACÓA.OHAYNINGÞNREGISTROQUETENGALOSATRI BUTOSPEDIDOS
,A$IRECCIØN'ENERALDE2ECLUSORIOSHADECIDIDOCREARUNABASEDEDATOSCONINFORMA CIØNSOBRESUSPRESOS%LESQUEMAQUESECONSIDERAESELSIGUIENTE NOMBRE?REO
CLAVE?REO
EDAD
,AESCOLARIDADESTÈCODIlCADACOMO !NALFABETO 0RIMARIA 3ECUNDARIA
ESCOLARIDAD
COD?DELITO
NACIONALIDAD
444 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" 0REPARATORIA 5NIVERSIDAD 0OSGRADO ,OSCØDIGOSDEDELITOCOD?DELITO ESTÈNCODIlCADOSCOMO
$ELITOCONTRALASALUD 2OBOCONARMADEFUEGO !COSOSEXUAL /TROS
#ONSIDERANDOQUELOSATRIBUTOSESCOLARIDADYCOD?DELITOESTÈNINVERTIDOS SEPRE SENTANALGUNASOPERACIONESDEBÞSQUEDACONSUSCORRESPONDIENTESRESULTADOS A ,OSRECLUSOSANALFABETOSCONMENOSDEA×OSDEEDAD
ESCOLARIDAD YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOSPARA LOCALIZARAAQUELLOSCONEDAD
B ,OSRECLUSOSCONPOSGRADO CUYAEDADESTÈCOMPRENDIDAENTREYA×OS YQUE COMETIERONELDELITOCALIlCADOCOMOACOSOSEXUAL
ESCOLARIDAD !.$COD?DELITO YBÞSQUEDASECUENCIALENLALISTADELOS REGISTROSMARCADOSPARALOCALIZARAAQUELLOSCUYAEDADESTÈCOMPRENDIDAENTREY A×OSDEEDAD
C ,OSREOSESTADOUNIDENSES
BÞSQUEDASECUENCIALENTODOELARCHIVOPARALOCALIZARALOSREOSDENACIONALIDAD ESTADOUNIDENSE
D ,OSREOSQUECOMETIERONROBOCONARMADEFUEGO MENORESDEA×OS OLOSQUE COMETIERONDELITOCONTRALASALUD MENORESDEA×OS
COD?DELITO YBÞSQUEDASECUENCIALENLALISTADELOSREGISTROSMARCADOSPARA LOCALIZAREDAD /2COD?DELITO YBÞSQUEDASECUENCIALENLALISTADELOS REGISTROSMARCADOSPARALOCALIZAREDAD
3EHAMENCIONADOQUELASLISTASGENERADASPORATRIBUTOSINVERTIDOSESTÈNORDENADAS PORLOTANTO ELTIEMPODEPROCESAMIENTOESTÈDETERMINADOPORLALISTADEMAYORTAMA×O 5NASECUENCIAADECUADADEOPERADORES!.$Y/2PUEDEAYUDARADISMINUIRELTIEMPO DEPROCESAMIENTO!NALICEMOSELSIGUIENTEEJEMPLO
%JEMPLO
3UPONGAMOSQUESETIENENLASLISTAS, ,Y,DE YELEMENTOS RESPECTI VAMENTE3ISENECESITARAUNIRLASTRESLISTAS ELORDENENELCUALSEHICIERALAUNIØNSERÓA DETERMINANTEENCUANTOALNÞMEROTOTALDEELEMENTOSCONLOSCUALESSETRABAJA
#Ò426&%"&95&3/"
445
,∪, ∪, ∪, ,∪, ∪, ∪, ,∪, ∪, ∪, %SFÈCILOBSERVARQUELAMEJORSECUENCIAESLATERCERAYELRESULTADOESYQUE LAPEORSECUENCIAESLASEGUNDAYELRESULTADOES
%JEMPLO
3EAN! " #Y$LISTASDE YELEMENTOS RESPECTIVAMENTE3ISENECESI TARASUUNIØN ALGUNASDELASDISTINTASSECUENCIASQUESETENDRÓANSON
!∪" ∪# ∪$ ∪# ∪$ ∪$
"∪# ∪! ∪$ ∪! ∪" ∪"
!∪$ ∪" ∪# ∪" ∪# ∪#
!∪$ ∪# ∪" ∪# ∪" ∪"
#ON LOS EJEMPLOS QUEDA DEMOSTRADO CØMO INmUYE EL TAMA×O DE LAS LISTAS EN EL NÞMEROTOTALDEELEMENTOSAPROCESAR%SPOSIBLECONCLUIR ENTONCES QUERESULTAMUCHO MÈSElCIENTEDEJARLASLISTASDEMAYORTAMA×OPARAUNIRLASALlNAL
-ULTILISTAS %LMÏTODODEBÞSQUEDAMULTILISTASPERMITEACCEDERALAINFORMACIØNQUESEENCUENTRA ORDENADAUTILIZANDOCAMPOSCLAVE!UNREGISTROSEPUEDELLEGARPORDIFERENTESCAMINOS #ADACAMINOSEESTABLECEENFUNCIØNDELCAMPOCLAVESOBREELCUALSEHAGALABÞSQUEDA
446 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" ,AFORMAMÈSElCIENTEDEREPRESENTARMULTILISTASESUTILIZANDOLISTAS!CONTINUACIØNSE PRESENTAUNEJEMPLODEESTEMÏTODO
%JEMPLO
3UPONGAMOSQUESETIENEUNARCHIVOENELCUALCADAREGISTROALMACENALASIGUIENTEIN FORMACIØN .OMBRE *UAN $ANIEL *OSÏ 0ASCUAL -IGUEL &ELIPE
0ROFESIØN MATEMÈTICO FÓSICO MATEMÈTICO INGENIERO INGENIERO ABOGADO
#ATEGORÓA
,AlGURAREPRESENTALASMULTILISTASCORRESPONDIENTESALOSDATOSDADOS%NESTE CASO LAINFORMACIØNDECADAINDIVIDUOPUEDESERACCESADAPORMEDIODESUPROFESIØNY DESUCATEGORÓA QUESONJUSTAMENTELOSATRIBUTOSQUEPERMITENREALIZARBÞSQUEDADIRECTA ENELARCHIVO#OMOSEPUEDEOBSERVARENLASIGUIENTElGURA SETIENEUNALISTAPORPRO FESIØNYOTRAPORCATEGORÓA %NGENERAL LASMULTILISTASSONRECOMENDABLESCUANDOLABÞSQUEDASEHACESOBRE UNSOLOATRIBUTO%NCASODENECESITARSEUNACOMBINACIØNDEATRIBUTOSESPREFERIBLEUSAR LISTASINVERTIDAS
#Ò426&%"&95&3/"
&)'52! -ULTILISTAS
447
448 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%"
▼ %*%2#)#)/3 "ÞSQUEDAINTERNA Ê £° %SCRIBA UN PROGRAMA PARA BÞSQUEDA SECUENCIAL EN UN ARREGLO DESORDENADO QUE OBTENGATODASLASOCURRENCIASDEUNDATODADO Ê Ó° $ADOUNARREGLOQUECONTIENELOSNOMBRESDE.ALUMNOSORDENADOSALFABÏTICAMEN TE ESCRIBAUNPROGRAMAQUEENCUENTREUNNOMBREDADOENELARREGLO3ILOENCUENTRA DEBEDARCOMORESULTADOLAPOSICIØNENLAQUELOENCONTRØ%NCASOCONTRARIO DEBE ENVIARUNMENSAJEADECUADO Ê Î° $ADOUNARREGLODE.COMPONENTESQUECONTIENENLASIGUIENTEINFORMACIØN ◗ ◗ ◗
.OMBREDELALUMNO 0ROMEDIO .ÞMERODEMATERIASAPROBADAS
%SCRIBAUNPROGRAMAQUELEAELNOMBREDEUNALUMNOYOBTENGACOMORESULTADOEL PROMEDIOYELNÞMERODEMATERIASAPROBADASPORDICHOALUMNO3IELNOMBREDADO NOESTÈENELARREGLO ENVÓEUNMENSAJEADECUADO
A #ONSIDEREQUEELARREGLOESTÈDESORDENADO B #ONSIDEREQUEELARREGLOESTÈORDENADO Ê {° %SCRIBAUNPROGRAMAPARABÞSQUEDASECUENCIALENARREGLOSORDENADOSDEMANERA DESCENDENTE Ê x° %SCRIBAUNPROGRAMAPARABÞSQUEDASECUENCIALENLISTASSIMPLEMENTELIGADASQUESE ENCUENTRANDESORDENADAS3IELELEMENTOSEENCUENTRAENLALISTA INDIQUEELNÞMERO DENODOENELCUALSEENCONTRØ%NCASOCONTRARIO EMITAUNMENSAJEADECUADO Ê È° %SCRIBAUNPROGRAMAPARABÞSQUEDASECUENCIALENLISTASSIMPLEMENTELIGADAS ORDE NADASDEMANERADESCENDENTE Ê Ç° %SCRIBAUNPROGRAMADEBÞSQUEDABINARIAENARREGLOSORDENADOS A $EMANERAASCENDENTE B $EMANERADESCENDENTE Ê n° 2ESUELVAELINCISOBDELPROBLEMAUTILIZANDOELALGORITMODEBÞSQUEDABINARIA Ê ° $ElNAUNACLASE!RREGLO SEGÞNLOVISTOENELCAPÓTULO%NLACLASEDEBEINCLUIRPOR LOMENOSDOSMÏTODOSDELOSESTUDIADOSENESTECAPÓTULOPARABUSCARUNELE MENTOALMACENADOENELARREGLO
&+&3$*$*04
449
£ä°$ADOQUESEREQUIEREALMACENARLOSREGISTROSCONCLAVE Y
ENUNARREGLODEELEMENTOS DElNAUNAFUNCIØNHASHQUEDISTRIBUYALOSREGISTROS ENELARREGLO3IHUBIERACOLISIONES RESUÏLVALASAPLICANDOELMÏTODODEREASIGNA CIØNLINEAL
££°$EUNGRUPODE.ALUMNOSSETIENENLOSSIGUIENTESDATOS ◗ ◗ ◗
-ATRÓCULAVALORENTEROCOMPRENDIDOENTREY .OMBRECADENADECARACTERES $IRECCIØNCADENADECARACTERES %LCAMPOCLAVEESMATRÓCULA,OS.REGISTROSHANSIDOALMACENADOSENUNARRE GLO APLICANDOLASIGUIENTEFUNCIØNHASH (CLAVE DÓGITOS?CENTRALESCLAVE ,ASCOLISIONESHANSIDOTRATADASCONELMÏTODODEDOBLEDIRECCIØNHASH %SCRIBA UN SUBPROGRAMA QUE LEA LA MATRÓCULA DE UN ALUMNO Y REGRESE COMO RESULTADO SU NOMBRE Y DIRECCIØN %N CASO DE NO ENCONTRARLO EMITA UN MENSAJE ADECUADO
£Ó°3EQUIEREALMACENARENUNARREGLOLOSSIGUIENTESDATOSDE.PERSONAS ◗ ◗ ◗ ◗
#LAVEDECONTRIBUYENTEALFANUMÏRICO DELONGITUD .OMBRECADENADECARACTERES $IRECCIØNCADENADECARACTERES 3ALDOREAL $ElNAUNAFUNCIØNHASHQUEPERMITAALMACENARENUNARREGLOLOSDATOSMEN CIONADOS5TILICEELMÏTODODEENCADENAMIENTOPARARESOLVERLASCOLISIONES
£Î°0RESENTEYEXPLIQUEUNAFUNCIØNHASHQUEPERMITAALMACENARENUNARREGLOLOSELEMEN TOSDELATABLAPERIØDICADELOSELEMENTOSDEQUÓMICAYSUSPROPIEDADES DEMANERA UNIFORME,ACLAVEESTÈDADAPORELNOMBREDELOSELEMENTOS £{°5TILICELAFUNCIØNDElNIDAENELEJERCICIOANTERIORPARAINSERTARYELIMINARLOSELE MENTOSQUESEPRESENTANACONTINUACIØN )NSERTARSODIO ORO OSMIO LITIO BORO COBRE PLATA RADIO %LIMINARORO OSMIO BORO COBRE PLATA £x°$ADOSLOSSIGNOSDELZODIACOCAPRICORNIO ACUARIO PISCIS ARIES TAURO GÏMINIS CÈNCER LEO VIRGO LIBRA ESCORPIØN SAGITARIO
450 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" A %SCRIBAUNSUBPROGRAMAPARAALMACENARLOSENUNAESTRUCTURADETRIES B %SCRIBAUNSUBPROGRAMADEBÞSQUEDAPARALOSSIGNOS ALMACENADOSSEGÞNLOESPE CIlCADOENELINCISOANTERIOR
"ÞSQUEDAEXTERNA £È°3EHANALMACENADOENUNARCHIVOSECUENCIALLOSDATOSDELOSEMPLEADOSDEUNSU PERMERCADO ◗ ◗ ◗ ◗
.OMBRE 2EGISTRO&EDERALDE#ONTRIBUYENTES &ECHADEINGRESO 3UELDO %SCRIBAUNPROGRAMAPARABUSCARSECUENCIALMENTELOSDATOSDEUNEMPLEADO DADOSUNOMBRECOMOENTRADA
A #ONSIDEREQUEELARCHIVOESTÈDESORDENADO B #ONSIDEREQUEELARCHIVOESTÈORDENADO £Ç°%SCRIBAUNPROGRAMADEBÞSQUEDABINARIAENARCHIVOSSECUENCIALESORDENADOS £n°$ElNA UNA FUNCIØN HASH QUE PERMITA ALMACENAR Y POSTERIORMENTE RECUPERAR LOS ELEMENTOSDELATABLAPERIØDICADELOSELEMENTOSDEQUÓMICAENUNARCHIVO,ACLAVE ESTÈDADAPORELNOMBREDELOSELEMENTOS2ESUELVALASCOLISIONESUTILIZANDOUNÈREA INDEPENDIENTEPARAALMACENARLOSELEMENTOSCOLISIONADOS £°3EDESEACREARUNARCHIVOCONINFORMACIØNSOBREPINOSMEXICANOS#ADAREGISTRO CONTIENELOSSIGUIENTESDATOS ◗ ◗ ◗
.OMBREDELPINO 4IPODEHOJAS 4IPODECONO %LCAMPOCLAVEES.OMBREDELPINO$ElNAUNAFUNCIØNHASHPARAALMACENAR YPOSTERIORMENTEBUSCAR LOSSIGUIENTESPINOS#EMBROIDES -ONOPHYLLA .ELSONII &LEXILIS ,UMHOLTZII ,EIOPHYLLA $OUGLASIANA 4EOCOTE (ERRERAI -ONTEZUMAE #OOPERI #ONTORTA 0ONDAROSA !RIZONICA #ARIBAEA 0ATULA 2ADIATA -URICATA 2EMORATA 2ESUELVALASCOLISIONESUTILIZANDOUNÈREACOMÞNPARAALMACENARLOSELEMENTOS COLISIONADOS
Óä°5TILICELAFUNCIØNDElNIDAENELEJERCICIOPARAINSERTARYELIMINARLOSELEMENTOS QUESEINDICANACONTINUACIØN
&+&3$*$*04
451
)NSERTARSODIO ORO OSMIO LITIO BORO COBRE PLATA RADIO %LIMINARORO OSMIO BORO COBRE PLATA %LNÞMERODECUBETASESDOS. YCADACUBETATIENEDOSREGISTROS,ADENSI DADDEOCUPACIØNPERMITIDAESENCASODESUPERARESTEPORCENTAJESEAPLICARÈN EXPANSIONESTOTALES A $IBUJEUNESQUEMADELAORGANIZACIØNDESPUÏSDEINSERTARLOSELEMENTOSOSMIOY PLATAYLUEGODEELIMINARORO BOROYPLATA B $IGAQUÏCLAVESORIGINARONQUEELNÞMERODECUBETASSEEXPANDIERAOREDUJERA Ó£°2ESUELVAELPROBLEMAANTERIOR PEROAHORAAPLICANDOEXPANSIONESPARCIALES ENCASO DETENERUNPORCENTAJEDEOCUPACIØNMAYORALPERMITIDO ÓÓ°3EA.ELNÞMERODECUBETAS#ADACUBETATIENEDOSREGISTROSYSEESTABLECEUNA DENSIDADDEOCUPACIØNPERMITIDADE5NAVEZSUPERADAESTADENSIDAD SEAPLI CARÈNEXPANSIONESPARCIALES (CLAVE CLAVE-/$. #LAVESAINSERTAR A $IBUJEUNESQUEMADELAORGANIZACIØNDESPUÏSDEINSERTARLOSELEMENTOS B $IGAQUÏCLAVESORIGINARONQUEELNÞMERODECUBETASSEEXPANDIERA Óΰ#ONSIDEREELARCHIVODELPROBLEMAANTERIOR%LIMINELOSREGISTROSCONCLAVES A $IBUJEUNESQUEMADELAORGANIZACIØNDESPUÏSDEELIMINARLOSELEMENTOS B $IGAQUÏCLAVESORIGINARONQUEELNÞMERODECUBETASSEREDUJERA Ó{°3EA.ELNÞMERODECUBETAS#ADACUBETATIENEDOSREGISTROS YSEESTABLECEUNA DENSIDADDEOCUPACIØNPERMITIDADE$ElNAUNAFUNCIØNHASHPARA )NSERTARLASCLAVES %LIMINARLASCLAVES A !PLIQUEEXPANSIONESTOTALES B !PLIQUEEXPANSIONESPARCIALES Óx°$ETERMINECUÈLESELNÞMERODECUBETASNECESARIOPARAALMACENARENUNARCHIVO NOMBRE APELLIDO EDAD ESCOLARIDADYDELITOCOMETIDOPORREOSDEL2ECLUSORIO.OR TE%LRECLUSORIOTIENEPRESOS .OTA5TILICEELMÏTODODELASEXPANSIONESTOTALES#ADACUBETATIENEREGISTROS !LTENERDELLENADOSEEXPANDE
452 >«ÌÕÊÊ Ê Ê .c50%04%&#Ò426&%" ÓÈ°$ETERMINECUÈLESELNÞMERODECUBETASNECESARIOPARAALMACENARENUNARCHIVOLOS REGISTROSDELOSDECLIENTESQUEMANEJAUNAEMPRESADETARJETASDECRÏDITO .OTA5TILICEELMÏTODODELASEXPANSIONESPARCIALES#ADACUBETATIENEREGIS TROS!LTENERDELLENADOSEEXPANDE ÓÇ°3ETIENEUNARCHIVOCONREGISTROSQUEALMACENANINFORMACIØNSOBRECLIENTESDEDIS TINTASSUCURSALESBANCARIAS,OSDATOSQUESEMANEJANPORCADACLIENTESON ◗ ◗ ◗ ◗ ◗ ◗
#LAVEDELASUCURSAL .OMBREDELTITULAR .ÞMERODECUENTA 3ALDO .ÞMERODEPRÏSTAMO )MPORTE 3ETIENEINVERSIØNSOBREELCAMPOCLAVESUCURSAL
A /BTENGALOSREGISTROSDELOSCLIENTESQUETENGANUNPRÏSTAMOMAYORAENLA SUCURSAL,IMA B /BTENGALOSREGISTROSDELOSCLIENTESQUETENGANUNPRÏSTAMOMAYORAENLA SUCURSAL,IMAYUNSALDOENSUCUENTAMAYORAENLASUCURSAL2ÓO C /BTENGALOSREGISTROSDELOSCLIENTESDELASUCURSAL2ÓOQUETENGANENSUCUENTAUN SALDOMAYORA OLOSREGISTROSDELOSCLIENTESDELASUCURSAL1UITOQUETENGAN UNPRÏSTAMOMENORAYUNSALDOENSUCUENTAMAYORA D /BTENGALOSREGISTROSDELOSCLIENTESDELASUCURSAL#ØRDOBAQUETENGANUNSALDO MAYORAOUNPRÏSTAMOMENORA E 3ISEQUIEREDETERMINAR SUCURSALh,IMAv /2SUCURSALh1UITOv /2 SUCURSALh2ÓOv /2SUCURSALh#ØRDOBAv YLASCORRESPONDIENTESLISTASSONDE YELEMENTOS RESPECTIVAMENTE zCUÈLSERÈLASECUENCIAØPTIMAPARAALCANZARUNCOSTOMÓNIMO Ón°%NUNARCHIVOSEHAALMACENADOLATABLAPERIØDICADELOSELEMENTOSQUÓMICOS JUNTO CONSUSPROPIEDADES ◗ ◗ ◗ ◗ ◗ ◗ ◗ ◗ ◗
.OMBRE .ÞMEROATØMICO 0ESOATØMICO 0UNTODEEBULLICIØN 0UNTODEFUSIØN $ENSIDAD %LECTRONEGATIVIDAD #ONDUCTANCIAELÏCTRICA #ONDUCTANCIATÏRMICA
.! 0! 0% 0& $%. %/ #% #4
&+&3$*$*04
453
3ETIENEINVERSIØNSOBRELOSCAMPOSPUNTODEEBULLICIØNYPUNTODEFUSIØN A /BTENGALOSREGISTROSDELOSELEMENTOSALCALINOTÏRREOS²STOSSEDETERMINANPORLAS SIGUIENTESCARACTERÓSTICAS%/$%.YSU0&ESTÈCOMPRENDIDO ENTRELOSVALORESY B /BTENGALOSREGISTROSDELOSELEMENTOSDELGRUPO"²STOSSEDETERMINANPORLAS SIGUIENTESCARACTERÓSTICAS%/n OSU0%ESTÈCOMPRENDIDOENTRELOSVALORES Y Ó°%NUNARCHIVOSEHANALMACENADOLOSDATOSDE.PROFESIONALES ◗ ◗ ◗ ◗
#LAVEDECONTRIBUYENTE .OMBRE 0ROFESIØN .ACIONALIDAD 3ETIENEINVERSIØNSOBRELOSCAMPOSPROFESIØNYNACIONALIDAD
A /BTENGALOSREGISTROSDETODOSLOSINGENIEROSMEXICANOS B /BTENGA LOS REGISTROS DE TODOS LOS INGENIEROS MEXICANOS DE MÈS DE A×OS DE EDAD C /BTENGALOSREGISTROSDETODOSLOSINGENIEROSMEXICANOSDEMÈSDEA×OSDEEDAD OLOSPINTORESURUGUAYOS D /BTENGALOSREGISTROSDETODOSLOSABOGADOSPERUANOSOLOSMÏDICOSCHILENOSDE MENOSDEA×OS E 3ISEQUIEREDETERMINAR PROFESIØN INGENIERO /2 PROFESIØN PINTOR /2 PROFESIØN MÏDICO Y LAS LISTASSONDE YCLAVES RESPECTIVAMENTE zCUÈLSERÈLASECUENCIAØPTIMA PARAALCANZARUNCOSTOMÓNIMO
")",)/'2!&·! ,ABIBLIOGRAFÓAQUESEPRESENTAACONTINUACIØNESFRAGMENTARIA ENELSENTIDODEQUESØLO SEINCLUYENOBRASQUEHANSERVIDODEBASEPARAESTAEXPOSICIØNOQUEESTÈNDIRECTAMENTE VINCULADASCONELLA !CKERMAN !&1UADRATIC3EARCHFOR(ASH4ABLESOF3IZE0#OMM!#- !DELSON 6ELSKII ' Y ,ANDIS % !N !LGORITHM FOR THE /RGANIZATION OF )NFORMATION $OKL!KAD.AUK3332 -ATHEMAT !HO ! (OPCROFT *Y5LLMAN *4HE$ESIGNAND!NALYSISOF#OMPUTER!LGORITHMS !DDISON 7ESLEY 2EADING -ASS $ATA 3TRUCTURES AND !LGORITMS !DDISON 7ESLEY 0UBLISHING #OMPANY !LBIZURI -%STRUCTURASDEDATOS%DITORIAL,IMUSA !MBLE /Y+NUTH $/RDERED(ASH4ABLES#OMPUTER* !NDERSON -2Y!NDERSON -'#OMMENTSON0ERFECT(ASHING&UNCTIONS!3INGLE 0ROBE2ETRIEVING-ETHODFOR3TATIC3ETS#OMM!#- !UGENSTEIN -Y4ENENBAUM !!,ESSONIN2ECURSIONAND3TRUCTURED0ROGRAMMING 3)'#3%"ULLETIN "AASE 3#OMPUTER!LGORITHMS)NTRODUCTIONTO$ESIGNAND!NALYSIS!DDISON 7ESLEY 2EADING -ASS "AER *Y3CHWAB "!#OMPARISONOF4REE"ALANCING!LGORITHMS#OMM!#- "ARRON $ 2ECURSIVE 4ECHNIQUES IN 0ROGRAMMING !MERICAN %LSEVIER .UEVA9ORK "ATAGELJ 64HE1UADRATICE(ASH-ETHOD7HENTHE4ABLE3IZEISNOTA0RIME.UMBER #OMM!#- "AYER 2"INARY" TREESFOR6IRTUAL-EMORY0ROC!#-3)'&)$%47ORKSHOP !#- .UEVA9ORK 3YMMETRIC "INARY " TREES $ATA 3TRUCTURE AND -AINTENANCE !LGORITHMS !CTA)NFORMÈTICA Y-ETZGER */N%NCIPHERMENTOF3EARCH4REESAND2ANDOM!CCESS&ILES !#-4RANS$ATABASE3YST Y5NTERAUER +0RElX" TREES!#-4RANS$ATABASE3YST Y3CHKOLNICK .#ONCURRENCYOFOPERATIONSON" TREE!CTA)NF
456
L}À>v> "ELL *4HE1UADRATIC1UOTIENT-ETHOD!(ASH#ODE%LIMINATING3ECONDARY#LUSTER ING#OMM!#- Y+AMAN #4HE,INEAR1UOTIENT(ASH#ODE#OMM!#- "ELLMAN 2$YNAMIC0ROGRAMMING0RINCETON5NIVERSITY0RESS 0RINCETON .* "ENTLEY * -ULTIDIMENSIONAL "INARY 3EARCH 4REES 5SED FOR !SSOCIATIVE 3EARCHING #OMM!#- Y&RIEDMAN *!LGORITHMSAND$ATA3TRUCTUREFOR2ANGE3EARCHING!#- #OMPUTING3URVEYS "ERLINER ( 4HE " TREE 3EARCH !LGORITHM ! "EST &IRST 0ROOF 0ROCEDURE 4ECH 2EP #-5 #! #OMPUTER 3CIENCE $EPT #ARNEGIE -ELLON 5NIVERSITY 0ITTS BURGH "ERZTISS !$ATA3TRUCTURES 4HEORYANDPRACTICE AED !CADEMIC0RESS .UEVA9ORK "IRD 2)MPROVING0ROGRAMSBYTHE)NTRODUCTIONOF2ECURSION#OMM!#- .OTESON2ECURSION%LIMINATION#OMM!#- "OOTHROYD *!LGORITHM3HELLSORT #OMM!#- 3ORTOFA3ECTIONOFTHE%LEMENTSOFAN!RRAYBY$ETERMININGTHE2ANKOF %ACH%LEMENT!LGORITHM#OMP* "RILLINGER 0Y#OHEN $)NTRODUCTIONTO$ATA3TRUCTURESAND.ON NUMERIC#OMPUTA TION0RENTICE (ALL %NGLEWOOD#LIFFS .* "ROWN -!3TORAGE3CHEMEFOR(EIGHT "ALANCED4REES)NF0ROC,ETT "RUNO *Y#OFFMAN %.EARLY/PTIMAL"INARY3EARCH4REES0ROC)&)0#ONGRESS .ORTH (OLLAND !MSTERDAM "URKHARD 7(ASHINGAND4RIE!LGORITHMSFOR0ARTIAL-ATCH2ETRIEVAL!#-4RANS 6OL #ARTER *Y7EGMAN -5NIVERSAL#LASSESOF(ASH&UNCTIONS)"-2ESEARCH2EPORT 2# 4HOMAS * 7ATSON 2ESEARCH #ENTER 9ORKTOWN (EIGHTS .UEVA9ORK 5NIVERSAL#LASSESOF(ASH&UNCTIONS0ROC.INTH!NNUAL!#-39-0ON 4HEORYOF#OMPUTING #LAMPETT ( 2ANDOMIZED "INARY 3EARCHING 7ITH 4REE 3TRUCTURES #OMM !#- #OMER $4HE5BIQUITOUS" TREE!#-#OMPUTING3URVEYS !.OTEON-EDIAN3PLIT4REES!#-4RANS0ROG,ANGAND3YS $IJKSTRA %7.OTESON3TRUCTURED0ROGRAMMING3TRUCTURED0ROGRAMMING!CADEMIC 0RESS .UEVA9ORK $)MPERIO - $ATA 3TRUCTURES AND THEIR 2EPRESENTATION IN 3TORAGE !NNUAL 2EVIEW !UTOMATIC0ROGRAMMING 0ERGAMON0RESS %LMSFORD .UEVA9ORK $RISCOLL *Y,IEN 9!3ELECTIVE4RASVERSAL!LGORITHMFOR"INARY3EARCH4REES#OMM !#- %LSON -$ATA3TRUCTURES3CIENCE2ESEARCH!SSOCIATES 0ALO!LTO #A &INKEL 2Y"ENTLEY *1UAD4REES!$ATE3TRUCTUREFOR2ETRIEVALON#OMPOSITE+EYS !CTA)NFORMÈTICA &LORES )#OMPUTER3ORTING0RENTICE (ALL %NGLEWOOD#LIFFS .* Y -ADPIS ' !VERAGE "INARY 3EARCH ,ENGHTS FOR $ENSE /RDERED ,ISTS #OMM!#- &LOYD 2!LGORITHM4REESORT #OMM!#-
#*#-*0(3"'Ê"
457
&LOYD 2!LGORITHM4REESORT #OMM!#- !LGORITHM4REESORT #OMM!#- &OSTER # )NFORMATION 3TORAGE AND 2ETRIEVAL 5SING!6,4REES 0ROC!#- TH .A TIONAL#ONF !#- .UEVA9ORK !'ENERALIZATIONOF!6,4REES#OMM!#- &RAZER 7Y-C+ELLAR !3AMPLESORT!3AMPLING!PPROACHTO-INIMAL3TORAGE4REE 3ORTING*!#- 'AREY -/PTIMAL"INARY3EARCH4REES7ITH2ESTRICTED-AXIMAL$EPTH3)!-*#OMP 'ARSIA ! Y7ACHS - ! .EW!LGORITHM FOR -INIMUM #OST "INARY4REES 3)!- * #OMP 'HOSH 3 Y ,UM 6 !NALYSIS OF #OLLISIONS WHEN (ASHING BY $IVISION )NF 3YST 'ILSTAD 20OLYPHASE-ERGE3ORTING!N!DVANCED4ECHNIQUE0ROC!&)03%ASTERN *T#OMP#ONF 'ONNET'Y2OGERS ,4HE)NTERPOLATION 3EQUENTIAL3EARCH!LGORITHM)NF0ROC,ETT Y-UNRO *%FlCIENT/RDERINGOF(ASH4ABLES3)!-*#OMP 'OTLIEB # Y'OTLIEB , $ATA4YPESAND$ATA3TRUCTURES 0RENTICE (ALL %NGLEWOOD #LIFFS .UEVA9ORK 'REENE $Y+NUTH $-ATHEMATICSFORTHE!NALYSISOF!LGORITHMS"IRKHAUSER "OS TON -ASS 'RIMALDI2ALPH-ATEMÈTICAS$ISCRETASY#OMBINATORIO!DDISON 7ESLEY)BEROAMERI CANA 'UDES %Y4SUR 3%XPERIMENTSWITH" TREE2EORGANIZATION!#-3)'-/$3YMPO SIUMON-ANAGEMENTOF$ATA 'UIBAS ,-C#REIGHT%0LASS -Y2OBERTS *!.EW2EPRESENTATIONFOR,INEAR,ISTS 0ROCTH!#-3YMP4HEORYOF#OMP .UEVA9ORK (AREL $!LGORITHMICS!DDISON 7ESLEY (ARRISON -$ATA3TRUCTURESAND0ROGRAMMING3COTT &ORESMAN 'LENVILLE )LL (ELD 'Y3TONEBRAKER -" TREES2E EXAMINED#OMM!#- (IRSCHBERG $!N)NSERTION4ECHNIQUEFOR/NE SIDED(EIGHT "ALANCED4REES#OMM !#- (OARE #0ARTITION !LGORITHM1UICKSORT !LGORITHM &IND !LGORITHM#OMM !#- 1UICKSORT#OMP* (OARE #!2.OTESON$ATA3TRUCTURING3TRUCTURED0ROGRAMMING!CADEMIC0RESS .UEVA9ORK Y$AHL /3TRUCTURED0ROGRAMMING!CADEMIC0RESS (OPGOOD & Y $AVENPORT * 4HE 1UADRATIC (ASH -ETHOD7HERE THE 4ABLE 3IZE IS A 0OWEROF#OMP* (OROWITZ % Y 3AHNI 3 !LGORITHMS $ESIGN AND ANALYSIS #OMPUTER 3CIENCE 0RESS -$ 3 &UNDAMENTALS OF #OMPUTER !LGORITHMS #OMPUTER 3CIENCE 0RESS )NC (U 4Y4UCKER !/PTIMUM#OMPUTER3EARCH4REES3)!-*!PPL-ATH *AIME !%STRUCTURASDE)NFORMACIØN-C'RAW (ILL
458
L}À>v> *OYANES!GUILAR ,&UNDAMENTOSDE0ROGRAMACIØN!LGORITMOSY%STRUCTURASDE$ATOS -C'RAW (ILL +ARLTON 0 &ULLER 3 3CROGGS 2Y+ACHLER %0ERFORMANCEOF(EIGHT"ALANCED4REES #OMM!#- +NOTT '(ASHING&UNCTIONS#OMPUTER*OURNAL +NUTH $4HE!RTOF#OMPUTER0ROGRAMMING6OL&UNDAMENTAL!LGORITHMS2EAD ING -ASS!DDISON 7ESLEY /PTIMUM"INARY3EARCH4REES!CTA)NFORMÈTICA 4HE!RTOF#OMPUTER0ROGRAMMING6OL3ORTINGAND3EARCHING2EADING -ASS!DDISON 7ESLEY %L!RTEDE0ROGRAMAR/RDENADORES6OL!LGORITMOSFUNDAMENTALES%DI TORIAL2EVERTÏ +OLMAN "ERNARD ETAL%STRUCTURASDE-ATEMÈTICAS$ISCRETASPARALA#OMPUTACIØN 0RENTICE (ALL ,EWIS 4Y3MITH -!PPLYING$ATA3TRUCTURES(OUGHTON-IFmIN "OSTON %STRUCTURASDE$ATOS0ARANINFO ,IPSCHUTZ 3%STRUCTURADE$ATOS3ERIE3CHAUM-C'RAW (ILL -ÏXICO ,ORIN (!'UIDED"IBLIOGRAPHYTO3ORTING)"-3YST* ,UCCIO &Y0AGLI ,1NTHE(EIGHTOF(EIGHT "ALANCED4REES)%%%4RANS#OMPTRS 0OWER4REES#OMM!#- ,UCAS 2EYRINY3CHOOL!LGORÓTMICAY2EPRESENTACIØNDE$ATOS6OL 3ECUENCIAS !UTØMATASDE%STADOS&INITOS-ASSON -ARTIN 73ORTING#OMP3URVEYS -AURER (Y,EWIS 4(ASH4ABLE-ETHODS#OMP3URVEYS /TTMANN 4Y3IX ()MPLEMENTING$ICTIONARIES5SING"INARY4REESOF6ERY 3MALL(EIGHT)NFORM0ROC,ETTERS $ATA3TRUCTURESAND0ROGRAMMING4ECHNIQUES0RENTICE (ALL %NGLEWOOD #LIFFS .* Y/TTMANN 44REE3TRUCTURESFOR3ET-ANIPULATION0ROBLEMS)N-ATHEMATI CAL&OUNDATIONSOF#OMPUTER3CIENCE 3PRINGER 6ERLAG .UEVA9ORK -C#REIGHT %0AGINATIONOF"
TREESWITH6ARIABLE ,ENGHT2ECORDS#OMM!#- 0RIORITY3EARCH4REES3)!-*OF#OMP -ELHORN +.EARLY/PTIMAL"INARY3EARCH4REES!CTA)NFORMÈTICA $YNAMIC"INARY3EARCH3)!-*#OMP $ATA 3TRUCTURES AND!LGORITHMS 6OL 3ORTING AND 3EARCHING 3PRINGER 6ERLAG -ILLER 2 0IPPENGER . 2OSENBERG !Y3NYDER ,/PTIMAL 4REES)"-2ESEARCH 2EP2# )"-2ESEARCH,AB 9ORKTOWN(EIGHTS .UEVA9ORK .IEVERGELT *Y7ONG #/N"INARY3EARCH4REES0ROC)&)0#ONGRESS .ORTH (OL LAND Y2EINGOLD %"INARY3EARCH4REESOF"OUNDED"ALANCE3)!-*#OMP "INARY 4REESAND&ILE/RGANIZATION!#-#OMPUTING3URVEYS 0FALTZ *#OMPUTER$ATA3TRUCTURES-C'RAW (ILL .UEVA9ORK 0OHL )!3ORTING0ROBLEMANDITS#OMPLEXITY#OMM!#-
#*#-*0(3"'Ê"
459
0RATT 63HELLSORTAND3ORTING.ETWORKS'ARLAND .UEVA9ORK 2AIHA +Y:WEBEN 3!N/PTIMAL)NSERTION!LGORITHMFOR/NE 3IDED(EIGHT "ALANCED "INARY3EARCH4REES#OMM!#- 2OSENBERG !Y3NYDER ,-INIMAL#OMPARISON 4REES3)!-*#OMPUT 3AXE *Y"ENTLEY *4RANSFORMING3TATIC$ATA3TRUCTURESTO$YNAMIC3TRUCTURES2E SEARCH2EPORT#.53 #3 #ARNEGIE -ELLON5NIVERSITY 0ITTSBURGH 3CHOOL 0!LGORÓTMICAY2EPRESENTACIØNDE«RBOLES6OL 2ECURSIVIDADESY«RBOLES -ASSON 3COWEN 21UICKSORT!LGORITHM#OMM!#- 3EDGEWICK 21UICKSORT2EPORT.O34!. #3 $EPTOF#OMPUTER3CIENCE 3TANFORD5NIVERSITY #A 4HE!NALYSISOF1UICKSORT0ROGRAMS!CTA)NFORMÈTICA )MPLEMENTING1UICKSORT0ROGRAMS#OMM!#- 3HELL $!(IGHSPEED3ORTING0ROCEDURE#OMM!#- /PTIMIZING/PTIMIZINGTHE0OLYPHASE3ORT#OMM!#- 3HNEIDERMAN "0OLYNOMIAL3EARCH3OFTWARE 0RACTICEAND%XPERIENCE *UMP 3EARCHING ! &AST 3EQUENTIAL 3EARCH 4ECHNIQUE #OMM !#- 3INGLETON 2!N%FlCIENT!LGORITHMFOR3ORTINGWITH-INIMAL3TORAGE!LGORITHM #OMM!#- 3PRUNGNOLI 20ERFECT(ASHING&UNCTIONS!3INGLE0ROBE2ETRIEVING-ETHODFOR3TATIC 3ETS#OMM!#- 3TEPHENSON #!-ETHODFOR#ONSTRUCTING"INARY3EARCH4REESBY-AKING)NSERTIONSAT THE2OOT)"-2ESEARCH2EPORT2# 4HOMAS7ATSON2ESEARCH#ENTER 9ORK TOWN(EIGHTS .UEVA9ORK 4ANNER 2-INIMEAN-ERGINGAND3ORTING!N!LGORITHM3)!-*#OMP 4ENENBAUM !Y!UGENSTEIN -%STRUCTURASDE$ATOSEN0ASCAL0RENTICE (ALL(IS PANOAMERICANA 4REMBLAY *Y3ORENSON 0!N)NTRODUCTIONTO$ATA3TRUCTURESWITH!PPLICATIONS-C 'RAW (ILL .UEVA9ORK 6AN%MDEN .)NCREASING%FlCIENCYOF1UICKSORT#OMM!#- 6UILLEMIN *!5NIFYINGLOOKAT$ATA3TRUCTURES#OMM!#- 7ALKER 7Y'OTLIEB #!4OP $OWN!LGORITHMFOR#ONSTRUCTING.EARLY/PTIMAL,EX ICO GRAPHIC 4REES 'RAPH 4HEORY AND #OMPUTING!CADEMIC 0RESS .UEVA9ORK 7ILLIAMS *(EAPSORT!LGORITHM#OMM!#- 7IRTH .!LGORITHMS$ATA3TRUCTURES0ROGRAMS0RENTICE (ALL %NGLEWOOD#LIFFS .* !LGORITMOS%STRUCTURASDE$ATOS0ROGRAMAS%DICIONESDEL#ASTILLO !LGORITMOSY%STRUCTURASDE$ATOS0RENTICE (ALL(ISPANOAMERICANA 7ULF 7 3HAW - (ILlNGER 0Y&LON ,&UNDAMENTAL3TRUCTURESOF#OMPUTER 3CIENCE!DDISON 7ESLEY 2EADING -ASS 9AO !1N2ANDOM 4REES!CTA)NFORMÈTICA
',/3!2)/ «RBOL%STRUCTURAJERÈRQUICAAPLICADASOBREUNACOLECCIØNDEOBJETOSLLAMADOSNODOS ENLAQUEUNODEELLOSSECONOCECOMONODORAÓZ YCUYASRELACIONESENTRENODOSSE IDENTIlCANCOMOPADRE HIJO HERMANO ETCÏTERA «RBOLABARCADOR%SUNÈRBOLLIBREQUECONECTATODOSLOSVÏRTICESDE6 «RBOL BALANCEADO #ONOCIDO TAMBIÏN COMO ÈRBOL!6, ES UN ÈRBOL BINARIO DE BÞS QUEDAENELCUAL PARATODONODODELÈRBOL LAALTURADELOSSUBÈRBOLESIZQUIERDOY DERECHONODEBEDIFERIRENMÈSDEUNAUNIDAD «RBOLBINARIO«RBOLENELCUALCADANODOPUEDETENERHASTADOSDESCENDIENTESDIRECTOS YCUYASRAMASESTÈNORDENADAS «RBOLDEBÞSQUEDA6ÏASETRIE «RBOLMULTICAMINOS«RBOLENELQUECADANODOPUEDETENERMÈSDEDOSDESCENDIENTES DIRECTOSYCUYASRAMASESTÈNORDENADAS !RREGLO#OLECCIØNlNITA HOMOGÏNEAYORDENADADEELEMENTOS !RREGLODE.DIMENSIONES!QUELENELCUALCADAUNODESUSELEMENTOSDEBEIDENTIl CARSEPORNÓNDICESQUEMARQUENSUPOSICIØNEXACTADENTRODELARREGLO !RREGLOS PARALELOS %STRUCTURA FORMADA POR DOS O MÈS ARREGLOS CUYOS ELEMENTOS SE CORRESPONDEN PORLOGENERALENRELACIØNDEUNOAUNO "OSQUE#ONJUNTOORDENADODEUNOOMÈSÈRBOLES "ÞSQUEDA/PERACIØNQUEPERMITERECUPERARDATOSPREVIAMENTEALMACENADOS AUNQUE ESTAOPERACIØNPUEDERESULTARENFRACASOSINOSEENCUENTRAELDATOBUSCADO "ÞSQUEDAEXTERNA!QUELLAENLAQUETODOSLOSDATOSSEENCUENTRANENARCHIVOSRESI DENTES EN DISPOSITIVOS DE ALMACENAMIENTO SECUNDARIO TALES COMO DISCOS CINTAS ETCÏTERA "ÞSQUEDAINTERNA,AQUESEREALIZACONLOSDATOSRESIDENTESENLAMEMORIAPRINCIPAL DELACOMPUTADORA #AMINO5NCAMINO0DELONGITUDNDESDEUNVÏRTICEVAUNVÏRTICEWSEDElNECOMO LASECUENCIADENVÏRTICESQUESEDEBESEGUIRPARALLEGARDELNODOORIGENALNODO DESTINO #OLA,ISTADEELEMENTOSENLACUALLAEDICIØNDEELEMENTOSSELLEVAACABOPORUNEXTRE MO YLAELIMINACIØNSEREALIZAPOROTRO #OLISIØN,AQUESEORIGINAALUTILIZARUNAFUNCIØNHASH CUANDODOSOMÈSDATOSCON DISTINTASCLAVESTIENENLAMISMADIRECCIØNDEMEMORIA
462
Ã>À #ONJUNTO%SUNDATOESTRUCTURADOINTEGRADOPORUNGRUPODEOBJETOSDELMISMOTIPO AUNQUEELTIPOSØLOPUEDESERENTERO CARÈCTER ENUMERADOORANGO $ATOESTRUCTURADO%STÈFORMADOPORVARIOSCOMPONENTES CADAUNODELOSCUALESPUE DESERASUVEZUNDATOESTRUCTURADO4ODOSLOSCOMPONENTESDEUNDATOESTRUCTURADO SEIDENTIlCANCONELMISMONOMBRE $ATOSIMPLE!QUELQUEHACEREFERENCIAAUNÞNICOVALORALAVEZYQUEOCUPAUNACASILLA DEMEMORIA %STRUCTURADINÈMICADEDATOS!QUELLAQUEPERMITELAASIGNACIØNDEESPACIOENME MORIADURANTELAEJECUCIØNDEUNPROGRAMA CONFORMELOREQUIERANLASVARIABLESDE ÏSTE COMOLOSÈRBOLESYLASLISTAS &)&/)NICIALESDELAEXPRESIØNENINGLÏS&IRST)N &IRST/UTELPRIMEROENENTRARESEL PRIMEROENSALIR QUEINDICANELORDENDEINSERCIØNYELIMINACIØNDELOSELEMENTOS DEUNACOLA &UNCIØNHASH!QUELLAQUEPERMITETRANSFORMARUNACLAVEENUNADIRECCIØNDEMEMO RIA 'RÈlCACOMPLETA3EDICEQUEUNAGRÈlCAESCOMPLETASICADAVÏRTICEVDE'ESADYA CENTEATODOSLOSDEMÈSVÏRTICESDE' 'RÈlCACONEXA3EDICEQUEUNAGRÈlCAESCONEXASIEXISTEUNCAMINOSIMPLEENTREDOS DESUSNODOSCUALESQUIERA 'RÈlCADIRIGIDA3ECARACTERIZAPORQUESUSARISTASTIENENASOCIADAUNADIRECCIØN 'RÈlCAETIQUETADA3EDICEQUEUNAGRÈlCA'ESTÈETIQUETADASISUSARISTASTIENENASIG NADOUNVALOR 'RÈlCAS%STRUCTURASDEDATOSQUEPERMITENREPRESENTARDIFERENTESTIPOSDERELACIONES ENTRELOSOBJETOS 'RÈlCASNODIRIGIDAS3UCARACTERÓSTICAPRINCIPALESQUESUSARISTASSONPARESNOORDE NADOSDEVÏRTICES ¶NDICE)NDICADORQUESE×ALALAPOSICIØNDEUNCOMPONENTEENUNDATOESTRUCTURADO ,)&/)NICIALESDELAEXPRESIØNENINGLÏS,AST)N &IRST/UTELÞLTIMOENENTRARESEL PRIMEROENSALIR QUEINDICANELORDENDEINSERCIØNYELIMINACIØNDELOSELEMENTOS DEUNAPILA ,ISTA#OLECCIØNDEELEMENTOSLLAMADOSNODOS CUYOORDENSEESTABLECEPORMEDIODE PUNTEROS ,ISTACIRCULAR!QUELLAENLAQUESUÞLTIMOELEMENTOAPUNTAALPRIMERO ,ISTADOBLEMENTELIGADA#OLECCIØNDEELEMENTOSLLAMADOSNODOS ENLACUALCADANODO TIENEDOSPUNTEROS UNOAPUNTANDOALNODOPREDECESORYELOTROALNODOSUCESOR ,ISTAINVERTIDA,ISTAQUECONTIENELASCLAVESDELOSELEMENTOSQUEPOSEENUNDETER MINADO ATRIBUTO LO CUAL FACILITA LA BÞSQUEDA DE LOS ELEMENTOS QUE POSEAN DICHO ATRIBUTO -ATRIZ%STRUCTURADEDATOSQUEPERMITEORGANIZARLAINFORMACIØNENRENGLONESYCOLUM NAS%SUNARREGLOBIDIMENSIONAL -ÏTODODEBÞSQUEDA3ECARACTERIZAPORELORDENENELCUALSEEXPANDENLOSNODOS -ÏTODOSDEBÞSQUEDABREADTH lRST3EEXPANDENLOSNODOSENELORDENENQUEHAN SIDOGENERADOS -ÏTODOSDEBÞSQUEDADEPTH lRST3EEXPANDENLOSNODOSGENERADOSMÈSRECIENTEMEN TE -ULTIGRÈlCA 5NA GRÈlCA SE DENOMINA MULTIGRÈlCA SI AL MENOS DOS DE SUS VÏRTICES ESTÈNCONECTADOSPORDOSARISTAS
(-04"3*0
463
-ULTILISTA%STRUCTURAQUEPERMITEALMACENARENUNAOVARIASLISTASLASDIRECCIONESDE LOSELEMENTOSQUEPOSEENUNOOMÈSATRIBUTOSESPECÓlCOS LOCUALFACILITASUBÞS QUEDA .OTACIØNINlJA3EDICEQUEUNAEXPRESIØNARITMÏTICATIENENOTACIØNINlJACUANDOSUS OPERADORESESTÈNENTRELOSOPERANDOS POREJEMPLO !" .OTACIØNPOSTlJA3EDICEQUEUNAEXPRESIØNARITMÏTICATIENENOTACIØNPOSTlJACUANDO SUSOPERADORESESTÈNALlNALDELOSOPERANDOS POREJEMPLO !" .OTACIØNPRElJA3EDICEQUEUNAEXPRESIØNARITMÏTICATIENENOTACIØNPRElJACUANDO SUSOPERADORESESTÈNALINICIODELOSOPERANDOS POREJEMPLO !" /RDENACIØNEXTERNA%NESTAFORMADEORDENACIØNLOSDATOSSETOMANDEARCHIVOSRE SIDENTESENDISPOSITIVOSDEALMACENAMIENTOSECUNDARIO TALESCOMODISCOS CINTAS ETCÏTERA /RDENACIØNINTERNA3EAPLICAENLAORDENACIØNDEARREGLOSYSEREALIZACONTODOSLOS DATOSDEÏSTOSALOJADOSENLAMEMORIAPRINCIPALDELACOMPUTADORA /RDENAR/RGANIZARUNCONJUNTODEDATOSUOBJETOSENUNASECUENCIAESPECÓlCA PORLO GENERALASCENDENTEODESCENDENTE 0ILA,ISTADEELEMENTOSALACUALSEPUEDEINSERTAROELIMINARELEMENTOSSØLOPORUNO DESUSEXTREMOS 0UNTERO $ATO QUE ALMACENA UNA DIRECCIØN DE MEMORIA EN DONDE SE ALMACENA UNA VARIABLE 2ECURSIØN(ERRAMIENTADEPROGRAMACIØNQUEPERMITEDElNIRUNOBJETOENTÏRMINOSDE ÏLMISMO 2EGISTRO%SUNDATOESTRUCTURADOENELCUALSUSCOMPONENTESPUEDENSERDEDIFERENTES TIPOS INCLUSO REGISTROS O ARREGLOS 4ODOS SUS COMPONENTES SE IDENTIlCAN CON UN NOMBRE 2EPRESENTACIØN LINEAL DE ESTRUCTURAS NO LINEALES 0ROCEDIMIENTO PARA CONVERTIR LOS ÓNDICESDECADAUNODELOSELEMENTOSDEARREGLOSDEDOSOMÈSDIMENSIONESENUNA POSICIØNESPECÓlCADENTRODEUNARREGLODEUNADIMENSIØN 3OLUCIØNDECOLISIONES#ONSISTEENREUBICARUNDATOCUYADIRECCIØN CALCULADAPORUNA FUNCIØNHASH YAHAYASIDOUTILIZADAPOROTRODATO 4RIE«RBOLENELQUELAINFORMACIØNDECADANODOESCOMÞNATODOSSUSSUCESORES
·.$)#%!.!,·4)#/ !NÈLISISDEElCIENCIADELMÏTODO DEINSERCIØNBINARIA DEINSERCIØNDIRECTA DEINTERCAMBIODIRECTO DELASACUDIDA DESELECCIØNDIRECTA DE3HELL DELMONTÓCULO QUICKSORT !NÈLISISDELABÞSQUEDA BINARIA SECUENCIAL !NÈLISISDELMÏTODOPORTRANSFORMACIØN DECLAVES «RBOLES BALANCEADOS DEBÞSQUEDA REESTRUCTURACIØNDE BINARIOS DEBÞSQUEDA RECORRIDOSEN REPRESENTACIØNDE ENMEMORIA CARACTERÓSTICASYPROPIEDADESDELOS ENGENERAL MULTICAMINOS !RISTAS !RREGLOS ACTUALIZACIØNDELOS ASIGNACIØNDELOS BIDIMENSIONALES DECLARACIØNDE OPERACIONESCON COMBINACIONESENTREREGISTROSY DELISTAS
DEMÈSDEDOSDIMENSIONES DElNICIØNDE DEREGISTROS USODE DESORDENADOS DIFERENCIASENTREREGISTROSY EJEMPLOSDE ESCRITURADELOS MULTIDIMENSIONALES OPERACIONESCON ORDENADOS PROCESODELECTURADELOS PARALELOS CONCEPTODE USODE
"ÞSQUEDA ÈRBOLESDE BINARIA DINÈMICAPORTRANSFORMACIØNDECLAVES ENARCHIVOSSECUENCIALES EXTERNA INTERNA SECUENCIAL PORTRANSFORMACIØNDECLAVES DINÈMICA
#OLAS APLICACIONESDE CIRCULARES DElNICIØNDE DOBLES
466
`ViÊ>>ÌV OPERACIONESCON REPRESENTACIØNDE #ONJUNTOS #ONSTRUCCIØNDELÈRBOLABARCADORDECOSTO MÓNIMO
$ATOS ESTRUCTURADOS SIMPLES BOOLEANOS CARACTERES ENTEROS ENUMERADOS REALES SUBRANGOS $ESBORDAMIENTOOVERmOW $IJKSTRA ALGORITMODE
%SPACIOESTADO MÏTODODEBÞSQUEDAEN
&)&/&IRST )N &IRST /UT &LOYD ALGORITMODE
'RÈlCAS CONCEPTOSBÈSICOSDELAS DElNICIØNDE DIRIGIDAS DElNICIØNDE REPRESENTACIØNDE NODIRIGIDAS ALGUNOSCONCEPTOSSOBRE DElNICIØN REPRESENTACIØNDE
)NTERCALACIØNDEARCHIVOS
+RUSKAL ALGORITMODE
,)&/,AST )NPUT &IRST /UTPUT ,ISTAS APLICACIONES CIRCULARES DElNICIØNDE
DOBLEMENTELIGADAS OPERACIONESCON INVERTIDAS SIMPLEMENTELIGADAS OPERACIONESCON ,ISTASINVERTIDAS ,ONGITUDDECAMINO INTERNO EXTERNO
-ATRICES CUADRADASPOCODENSAS POCODENSAS DElNICIØNDE SIMÏTRICAYANTISIMÏTRICA TRIANGULARINFERIOR TRIANGULARSUPERIOR TRIDIAGONAL -ÏTODOSDEBÞSQUEDA ENESPACIO ESTADO "READTH &IRST $EPTH &IRST -ÏTODOSDEORDENACIØN -ULTILISTAS
/BTENCIØNDECAMINOSDENTRODEUNADIGRÈlCA /RDENACIØN DEARCHIVOS EXTERNA INTERNA PORELMÏTODODELASACUDIDASHAKERSORT PORELMÏTODODEINSERCIØNBINARIA PORELMÏTODODEINTERCAMBIODIRECTOCON SE×AL PORELMÏTODODEMEZCLAEQUILIBRADA PORELMÏTODODE3HELL PORELMÏTODOHEAPSORTMONTÓCULO PORELMÏTODOQUICKSORT PORINSERCIØNDIRECTA PORINTERCAMBIODIRECTOBURBUJA PORMEZCLADIRECTA PORSELECCIØNDIRECTA /RDENAR
Ê/%*$&"/"-Ê5*$0 0ILAS APLICACIONESDELAS OPERACIONESCON REPRESENTACIØNDE 0RIM ALGORITMODE 0ROBLEMADELAS4ORRESDE(ANOI EL
ACCESOALOSCAMPOSDEUN ANIDADOS COMBINACIONESENTREARREGLOSY CONARREGLOS DElNICIØNDE 2ESOLUCIØNDEPROBLEMAS
2ECURSIØNORECURSIVIDAD CASOSINTERESANTESDE DElNICIØNDE DIRECTA FUNCIONAMIENTOINTERNODELA INDIRECTA USODELASPILASPARASIMULAR 2EGISTROS
3UBDESBORDAMIENTOUNDERmOW
6ÏRTICES
7ARSHALL ALGORITMODE
467
View more...
Comments