Cours Algorithmique : Efficacité et algorithmes
11 pages
Français

Cours Algorithmique : Efficacité et algorithmes

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
11 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Ressources : la mémoire, appels de fonctions, structure de données : listes et files d'attente

Informations

Publié par
Nombre de lectures 81
Licence : En savoir +
Paternité, pas d'utilisation commerciale, partage des conditions initiales à l'identique
Langue Français

Extrait

I
I
I
II
I
Ecacit?etn'ont?eAlgo?rithmesfonctionnelProgrammationdeFlaonctionnellepCoursComment10gourmandsEcacit?:etconstrAlgolarithmespasDecembOnerinterm?diaire),4,ressource2013rProgrammationplusF?onctionnelleteAlloCoursest10valeursEcacit?d'existeretrogramme.AlgovaleursrithmesenTscalaireablerddecmati?ressaRessourcesg?re:?ladesm?moiregrammeAppquiels(=derfonctionsFStructures10derithmesdonn?esm:tionlistesonctionnelletamen?lesded'attentediairesProgrammationbFendantonctionnelldueEst-ceCoursfr?quente10neEcacit?deetdeAlgoduirithmesdeuxRessourcesd'ab:listeladuitsmosantes?moireonUtilisationgden?ralressourcescespas10rOCaml?crireCourspRessourcesolimit?ess:les1.sontM?moireecacesutilis?emoinspaenressources)l'ex?cutionProgrammationduonctionnellpCoursrogramme,Ecacit?n?cAlgoessaireRessourcesplaour?moirestocackdynamiqueerm?moire(tempOnosouventrairement)?desuirevaleursscr?interm??es.qui2.pasTesoinempspd'ex?cutiontoutepvieripsFpqueourconstructionl'ex?cutidesoninterm?diairesduvapconsommerrogramme.pluseplusExemplem?moirep3.?ventuellement:autresroretssources,decomvecteurs.meconstruitdesocommunicationsuneavecdesl'ext?rieur.roProgrammationdesCommentompest-ce(valeurquepuisOCamlcalculeensomme.I
I

I
I
I


I
I
I : : :
I
(duct.ml)pr1etoedcu0idetsyst?mestcdailiaAlgoistructurerC,eJavaron)lleeut)s_cep[vProgrammation12vet2plus=t?cheLcellulesiTsstc.fflollvds_pl=epf2tf(t+t)r0;(;L5iCoursslatet.desmim?es.aepson2r?utilis?.(rbagerp,)lanc?vesoin1,ve2b)r;a;dsncopc[rithmes2t;v4=;l6e]s[o1t;i3m;(51]n;t;lProgrammationeF+onctionnellie_Cours_10dEcacit?setcAlgo;rithmes]Ressources3:;laonctionnellmEcacit??moireRessourcesCas?moire1structure::?valuationdansdessontexpsuppressionsQuand(scalarExempleliste):aloppaceroeutduiC'esttGscalairerderfoisdeuxGlaneurvaleurs.quiExemplesuandLaavaleurm?moire.interm?diairedeestaussin?cessairePythonseulementFpielndantgl'ex?cutionadeelaufonction,eilen'yiaim?meipasnunoidenticateuraquiep)ermeted'acc?dersdirecptement1?2cettelvaleur.t?moireiCestvaleurs_sontemises_surrunedpiiles(angl.L:sstack.).aLeur2dur?eAlgodevvievestilimit?eL?sl.'?valuationod'unedexplressionfet(p)eutl?tresd?termin?eepadrslepcooumptilateur.;msPpour2e4n6savoir[plus;:;vo]i;rFunecours10deetcompilation.rithmesProgrammation:FmonctionnellCase:Coursmutables10ExempleEcacit?tableethachageAlgolaquellerithmesstructuresRessourcesajout?es,:aussilarmEcacit??moireuneExemples(pa(scalaexemplrpuneron'estduct1.ml)accessible(rslaespm?moirrpo?tred10ulaidutasCollectoc(GapalRamasse-miettesaouider),eest:q)le(OCamlRessourcesbPdeeCourssavoirechnique:Lispiaujourd'huiunende,Virtuelles,lonctionnelliProgrammationcourondplusevoprlcoursuMachiness.I
I
I
I
I
I
I
I
I
I
I
I
I
I
m?moireConclusionsurcoappl'utilinsacaletionAppdelem?moireR?currencelapileL'alloallouecatidispo).neutdepm?moireEcacit?neeco?tea(pckresque)Frien.y:d'appM?moireonctionnellqui?estputilis?eLeseulementrdansCoursdesourcalculsonctionnellloAppcauxu(?valuationpassed'une?expm?moireression))estd'autres)toutpadeelsuitesurlibde?r?euandquandonellelan'estEcacit?plusExemplen?cessaire.Merci,RessourcesPM?moireduireutilis?eplusdansd'inliningdescontr?l?structureoptionglobalesocamlopt(?videmmenttasible,fonctionsangl.ProgrammationheapCours)Algopdeeubtl?trequ'illibrs?r?ed'unepaIlrzoneleel?eGCcallquandsontplus(pan?cessaire.valeursrithmesetN'h?sitezdespaschaquedefonction,faireladespile.ddu?nitionspii:nterm?diairesfaitdansdevotred'?puiserpprogrammeProgrammationsCoursiAlgo?adecontribueDrawSquare?ela?diacla10rt?eutdurocodude.deProgrammationgrand.Fdegr?onctionnellpe?treCourspa10uneEcacit?(dansetcasAlgo)rithmesC'estAppseulementelsossdepfonctionsdesAppnoelsrecursives.deFfonctionseAlgo10L'appeterithmeslelsdefonctionsfonctionsetn'estopasccheresenQu'est-ceOCaml.seetloEnd'unplus,ellesfonctioncompilateursonctionnellpyeuventune?ventuellemedentapprempllaa(angl.:cstackero?dansstole?escormidelesengendr?lol'appsellesderam?tresfonctionsfonctions.Ecacit??QuandappappdedeOCamlestdesam?moirelolaestdirectementpacetrelleurfonctioncotermin?e,dem?moire(caleinlinibalang?e)sommet.laProgrammationle.DansCons?quenceleqcasond'inlining,tropuneelsfonctifonctionsorisquenl'espaceestonibletraduiteourcommepile.uneFmacroe(mais10avecetlarithmesbelsonnefonctionss?mantique:appclelleDrawLinedesWikipfonctions!I
I

I
I
I

I

I
I
Exemples(tail1.ml)(fonctionsester?cursifsnr'desepsrithmest=PpaA).Svantageul'utilisationnFa10plp;eelslfotdesetousrositionsmimpiurn:abl10defonctions)elaeeter;eetcterminalefdexune=F2(elset(appfdesxEcacit?)p;rte;ofr?curre0reste;fonction;commeProgrammation!FeonctionnelleteelsCours(tail2.ml)10pEcacit?tetiAlgoCoursrithmestAppfels(de)fonctions0AppFels10terminauxrithmesAppfonctionsAppIlepl??criretermitionnalqui?elsuneermetfonctionde:overoune:fonctionavecflesappels?l?epuneterminales.fonctionAg:,eumaisolelar?sultatrenvofondeyde?nce,pad'espacerconstanteglaestrecursiveenvoex?cut?eyune?oucletoutProgrammationdeonctionnellsuiteCourspaEcacit?rAlgofApp.derithmesExemplesDans(ceacas,ponln'aeplusmbnelsoin)desevaleursrloccalesxdefl2axfonction;ffquand;onProgrammationlanceonctionnellgCoursEcacit?l'espaceAlgosurAppladepileR?currenceponctionnelleutest?trerfoislibossible?r?eravantunedenclancerengfonction.utiliseAlgoappetterminaux.ExempleP:d'?viterfonctiond?passementsppileinverserstackliste.wExempleR?currenceterminale1(angl.La:reversetailourrecursionuneProgrammation):2fonctionList.fold_leftrecursive,List.fold_right
I
I
I
I
( )
I +( )+( )+ : : :+ =

)
)
)
)
)
)
)let[1chr1eecea1pEcacit?peefnadFl[3;2;1]1vlde2s=tmva_t|c_hul;1rithmesw[1]idetphn|nh11e:e:eri1e>ehc1a:t:a(>a(prplesn]d10rfonctions1[]l[2;1]2Le)est|longueur[a]total>rl(2Exemples;App;nl1eetarrerccrreav)errrs=er=efuucnncot]ico:ne|uh::c:_r[>;aep[p;e;nedet(elsrd'ex?cutionefei[4;3;2;1]aden.veerappendseeco?trappend)m[=hdu]remier|rgument.[Co?t]:>esn2CoursF(reverse1.ml)e210fonctionsetelsrithmesrithmeselsAlgofonctionset(reverse2.ml)nr[]Programmation;onctionnell;CoursrEcacit?eAlgovAppederExempless(er[v1r;e2v;c3e]u;r;nProgrammationeFeonctionnellmenCoursl1010Ecacit?lettAlgoerithmeseAppselsldelfonctionstCo?tederlavfonctionareversexna?vec?=onctionnelluCo?tc:inombnre[d'app>elscr?cursifs|(aussi:indirects,rc-?-drdansvlesafonctionsxauxili?resh!):Fcn)eiProurvuanexlis]te;derlongueurvnr,eil1y2a3n;appProgrammationelonctionnellsCoursr?cuEcacit?rsifsAlgodeAppreverse.deProgrammationExempleDansreversele;2;3;4]corev_auxrps[1;2;3;4]derev_auxreverse[2;3;4],rev_auxil[3;4]yrev_auxa[4]unrev_auxapp[]el[4;3;2;1]


I
,
I
,





Leco?t;110deoreverseAlgoestin.o?un3est...lailongueurtde(lallisterels:on:ditProgrammationquefold.rightreversefafonctionsunebcomplexit?_lin?airee.iAppbrithmeslLabnouvelleffonctionoreverseresterecursive;terminale1:[l'ex?cutionCoursestdeaussifecacefenFcerithmesqfonctionsuiiconcerneylafm?moire.tAlgolProgrammationbF;onctionnell(e(Coursa10nEcacit?eeteAlgonrithmesd?ftAppelsndetfonctionsvExemplesa(foldright.ml)l(+et3dxe)f2i4n;eonctionnelldEcacit?iAppnLaldeia2bbrfabreyetaelss(foldleft.ml)Leieslta.sftolledi_fr_itgah.tnEcacit?Qu'est-ce)((.10(L1i)s)gagn?t.tffo_ltdf_tr|ilgfhht;fe[fat1e;e.s.t.i;eafn_]tb0i2s4Cours>):(ye[f;a;1;(]f]a;2F(e.10.et.rithmes(elsffonctionsafonctionn?valuationbList.fold_right)[a1;.;.an].:)a1)a2onctionnellan)ProgrammationlonctionnelleCourstEcacit?rAlgoeAppcdefExempleso(lddf_nrdingihrtrfalLbs=.moadal)fqu'ontc(hLlsw.iotdhl|f[f][>1b.|.ha:]:sr)de>ffh.(.ffoflad)_2r.i.gah)t)ferrbc)o;d;l(fFf]=buhc:i>no[n>'|e:srtfPlA_Serte(cbu)r;s(icvteetoecrimnisnraclrei!eProgrammatione)mfnoll!d)_ordilgfh(t)([f;u;n;x]y;

I
I
I
etAlgorithmesApptg'elssdeyfonctions;Latfonctionefold.lefte?valuationmdeyList.fold_lefteftat[b1;nb2;;...;bn]de:tfof;fnacb1cb2pbnmProgrammationtFhonctionnell>eeCoursy10;Ecacit?tetreste.AlgoetrithmesetAppaelsedebfonctionsnR?currencesterminaleeetoexceptions[Apttentionc!<Lanfonctionesuivantenn'estepas;recursicve.termisnale::hlsentyreeuctf3(;)g=ttFr10yrithmes(:Ecacit?d'attenteseoomie=ttheitnsgl10})efp({)twsi}tehtNcontt_:fcoeu;ncdi>o(i)_Iltfautlfaire,epamrhexempleo:nliehtnfr([)a=Claertpr;eccpa;u1xp(c)u=;(tCoursgs;otmge;tProgrammationhonctionnelliCoursnEcacit?gAlgoeStructures)donn?esalistesulesxt(p)'icnntarnyra{uuxa(l)cwnietth:Naoitt_;flotumntd=>c(n)eProgrammationtF=onctionnell]e;Coursl10tEcacit?uetxAlgo=rithmes.Structuresodetdonn?esn:slistesxet:les.d'attenteoStructurestdendonn?essonctionnell;Structurexdeedonn?etlaoplusCsimplenenaOCamlnprourestopckyer;uengnombtre=illimit?adecdonn?cesc:nlaeliste.tFw>t.|o:trL'opc?raticonnelatmoins<co?teuse;p|our]ajouterruninouvele?l?mento?tuneilistee:_lemmettretau;d?but.lProgrammationtL'op=?rmatti;opntlacplus;simpleup2our;extrairepunt?l?mentcd'une;listee:cd?c;oempcoser;laelistecen;t?teecet;I
I
I
I
I
I
I
I
: : :
I
listesetlesu?rieth?od'attentetListesStructureset_pilesqdonn?esStructuresOnctetobtientco?tdonc,deecetteefa?pogncomplexit?natureller?sultatsmentpaunefaipileEcacit?(angl.:lestacki)l:,Lesc?l?mentspso;rtentudans;unonctionnelloEst-cerdre?valuerinverseenchma?tl'om?moire,rdFreCommentd'entr?e.ildenOndepaM1),r]le]aussuitdeeLIFlOa:.LasqtaIn,;FirstpOut1.qStructures;Commentgr?alisertune;structureEcacit?delistesdonn?es10quitempses?tunFIFTOrie(compilationFirstpIn,rgeFirstpOutEcacit??listesProgrammation?Fr?alisteonctionnellunetouteCourscombien10deEcacit?desetcoursAlgotroprithmes[Structures[de|donn?esr:elistesuetmles;d'attentettqyepte='tauftiifeos=k{xmeuetyaub;lte;s3tga;ctkg:;'taProgrammationlCoursiAlgosdonn?estles;

  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents