[{"data":1,"prerenderedAt":21550},["ShallowReactive",2],{"navigation":3,"chapter-cours-nsi-tale\u002Fte-algorithmique":585,"chapter-index-nsi-tale\u002Fte-algorithmique":13668,"chapter-memo-nsi-tale\u002Fte-algorithmique":13923},[4,224,440],{"title":5,"path":6,"stem":7,"children":8},"SNT — Seconde","\u002Fsnt-2nde","0.snt-2nde\u002F0.index",[9,10,14,36,66,92,118,144,162,184,206],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"REVIEW pédagogique — SNT 2nde","\u002Fsnt-2nde\u002Freview","0.snt-2nde\u002FREVIEW",{"title":15,"path":16,"stem":17,"children":18},"Internet","\u002Fsnt-2nde\u002Fsa-internet","0.snt-2nde\u002Fsa-internet\u002F0.index",[19,20,24,28,32],{"title":15,"path":16,"stem":17},{"title":21,"path":22,"stem":23},"Adresses symboliques et DNS","\u002Fsnt-2nde\u002Fsa-internet\u002Fadresses-dns","0.snt-2nde\u002Fsa-internet\u002F1.adresses-dns",{"title":25,"path":26,"stem":27},"Internet et les réseaux physiques","\u002Fsnt-2nde\u002Fsa-internet\u002Freseaux-physiques","0.snt-2nde\u002Fsa-internet\u002F2.reseaux-physiques",{"title":29,"path":30,"stem":31},"Protocoles TCP\u002FIP et routage des paquets","\u002Fsnt-2nde\u002Fsa-internet\u002Ftcp-ip-routage","0.snt-2nde\u002Fsa-internet\u002F3.tcp-ip-routage",{"title":33,"path":34,"stem":35},"Réseaux pair-à-pair","\u002Fsnt-2nde\u002Fsa-internet\u002Fpair-a-pair","0.snt-2nde\u002Fsa-internet\u002F4.pair-a-pair",{"title":37,"path":38,"stem":39,"children":40},"Le Web","\u002Fsnt-2nde\u002Fsb-web","0.snt-2nde\u002Fsb-web\u002F0.index",[41,42,46,50,54,58,62],{"title":37,"path":38,"stem":39},{"title":43,"path":44,"stem":45},"Histoire du Web","\u002Fsnt-2nde\u002Fsb-web\u002Fhistoire-web","0.snt-2nde\u002Fsb-web\u002F1.histoire-web",{"title":47,"path":48,"stem":49},"URL et hypertexte","\u002Fsnt-2nde\u002Fsb-web\u002Furl-hypertexte","0.snt-2nde\u002Fsb-web\u002F2.url-hypertexte",{"title":51,"path":52,"stem":53},"HTML et CSS — le contenu et la présentation","\u002Fsnt-2nde\u002Fsb-web\u002Fhtml-css","0.snt-2nde\u002Fsb-web\u002F3.html-css",{"title":55,"path":56,"stem":57},"Client-serveur et requêtes HTTP","\u002Fsnt-2nde\u002Fsb-web\u002Fclient-serveur-http","0.snt-2nde\u002Fsb-web\u002F4.client-serveur-http",{"title":59,"path":60,"stem":61},"Moteurs de recherche","\u002Fsnt-2nde\u002Fsb-web\u002Fmoteurs-recherche","0.snt-2nde\u002Fsb-web\u002F5.moteurs-recherche",{"title":63,"path":64,"stem":65},"Sécurité du navigateur et notions juridiques","\u002Fsnt-2nde\u002Fsb-web\u002Fsecurite-droits","0.snt-2nde\u002Fsb-web\u002F6.securite-droits",{"title":67,"path":68,"stem":69,"children":70},"Les réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F0.index",[71,72,76,80,84,88],{"title":67,"path":68,"stem":69},{"title":73,"path":74,"stem":75},"Panorama des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpanorama-rs","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F1.panorama-rs",{"title":77,"path":78,"stem":79},"Identité numérique et authentification","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fidentite-numerique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F2.identite-numerique",{"title":81,"path":82,"stem":83},"Le modèle économique des réseaux sociaux","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fmodele-economique","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F3.modele-economique",{"title":85,"path":86,"stem":87},"Petit monde et graphes","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fpetit-monde-graphes","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F4.petit-monde-graphes",{"title":89,"path":90,"stem":91},"La cyberviolence","\u002Fsnt-2nde\u002Fsc-reseaux-sociaux\u002Fcyberviolence","0.snt-2nde\u002Fsc-reseaux-sociaux\u002F5.cyberviolence",{"title":93,"path":94,"stem":95,"children":96},"Les données structurées et leur traitement","\u002Fsnt-2nde\u002Fsd-donnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F0.index",[97,98,102,106,110,114],{"title":93,"path":94,"stem":95},{"title":99,"path":100,"stem":101},"Données et formats","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-formats","0.snt-2nde\u002Fsd-donnees-structurees\u002F1.donnees-formats",{"title":103,"path":104,"stem":105},"Données structurées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fdonnees-structurees","0.snt-2nde\u002Fsd-donnees-structurees\u002F2.donnees-structurees",{"title":107,"path":108,"stem":109},"Métadonnées","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fmetadonnees","0.snt-2nde\u002Fsd-donnees-structurees\u002F3.metadonnees",{"title":111,"path":112,"stem":113},"Traitement de tables","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Ftraitement-tables","0.snt-2nde\u002Fsd-donnees-structurees\u002F4.traitement-tables",{"title":115,"path":116,"stem":117},"Le cloud","\u002Fsnt-2nde\u002Fsd-donnees-structurees\u002Fcloud","0.snt-2nde\u002Fsd-donnees-structurees\u002F5.cloud",{"title":119,"path":120,"stem":121,"children":122},"Localisation, cartographie et mobilité","\u002Fsnt-2nde\u002Fse-localisation-cartographie","0.snt-2nde\u002Fse-localisation-cartographie\u002F0.index",[123,124,128,132,136,140],{"title":119,"path":120,"stem":121},{"title":125,"path":126,"stem":127},"GPS et Galileo — se situer grâce aux satellites","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fgps-galileo","0.snt-2nde\u002Fse-localisation-cartographie\u002F1.gps-galileo",{"title":129,"path":130,"stem":131},"Décoder une trame NMEA","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Ftrame-nmea","0.snt-2nde\u002Fse-localisation-cartographie\u002F2.trame-nmea",{"title":133,"path":134,"stem":135},"Cartes numériques — GeoPortail et OpenStreetMap","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fcartes-numeriques","0.snt-2nde\u002Fse-localisation-cartographie\u002F3.cartes-numeriques",{"title":137,"path":138,"stem":139},"Itinéraires et graphes","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fitineraires-graphes","0.snt-2nde\u002Fse-localisation-cartographie\u002F4.itineraires-graphes",{"title":141,"path":142,"stem":143},"Confidentialité de la position","\u002Fsnt-2nde\u002Fse-localisation-cartographie\u002Fconfidentialite-position","0.snt-2nde\u002Fse-localisation-cartographie\u002F5.confidentialite-position",{"title":145,"path":146,"stem":147,"children":148},"Informatique embarquée et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee","0.snt-2nde\u002Fsf-info-embarquee\u002F0.index",[149,150,154,158],{"title":145,"path":146,"stem":147},{"title":151,"path":152,"stem":153},"Systèmes informatiques embarqués","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fsystemes-embarques","0.snt-2nde\u002Fsf-info-embarquee\u002F1.systemes-embarques",{"title":155,"path":156,"stem":157},"Capteurs et actionneurs","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fcapteurs-actionneurs","0.snt-2nde\u002Fsf-info-embarquee\u002F2.capteurs-actionneurs",{"title":159,"path":160,"stem":161},"IHM et objets connectés","\u002Fsnt-2nde\u002Fsf-info-embarquee\u002Fihm-objet-connecte","0.snt-2nde\u002Fsf-info-embarquee\u002F3.ihm-objet-connecte",{"title":163,"path":164,"stem":165,"children":166},"Photographie numérique","\u002Fsnt-2nde\u002Fsg-photo-numerique","0.snt-2nde\u002Fsg-photo-numerique\u002F0.index",[167,168,172,176,180],{"title":163,"path":164,"stem":165},{"title":169,"path":170,"stem":171},"Photosites, pixels et résolution","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fpixels-resolution","0.snt-2nde\u002Fsg-photo-numerique\u002F1.pixels-resolution",{"title":173,"path":174,"stem":175},"Les algorithmes de l'appareil photo","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Falgorithmes-photo","0.snt-2nde\u002Fsg-photo-numerique\u002F2.algorithmes-photo",{"title":177,"path":178,"stem":179},"Les métadonnées EXIF","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Fmetadonnees-exif","0.snt-2nde\u002Fsg-photo-numerique\u002F3.metadonnees-exif",{"title":181,"path":182,"stem":183},"Traiter une image en Python","\u002Fsnt-2nde\u002Fsg-photo-numerique\u002Ftraitement-rgb","0.snt-2nde\u002Fsg-photo-numerique\u002F4.traitement-rgb",{"title":185,"path":186,"stem":187,"children":188},"Notions transversales de programmation","\u002Fsnt-2nde\u002Fsh-prog-notions","0.snt-2nde\u002Fsh-prog-notions\u002F0.index",[189,190,194,198,202],{"title":185,"path":186,"stem":187},{"title":191,"path":192,"stem":193},"Séquences d'instructions et variables","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fsequences-affectations","0.snt-2nde\u002Fsh-prog-notions\u002F1.sequences-affectations",{"title":195,"path":196,"stem":197},"Instructions conditionnelles","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fconditionnelles","0.snt-2nde\u002Fsh-prog-notions\u002F2.conditionnelles",{"title":199,"path":200,"stem":201},"Boucles bornées et non bornées","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Fboucles","0.snt-2nde\u002Fsh-prog-notions\u002F3.boucles",{"title":203,"path":204,"stem":205},"Définitions et appels de fonctions","\u002Fsnt-2nde\u002Fsh-prog-notions\u002Ffonctions","0.snt-2nde\u002Fsh-prog-notions\u002F4.fonctions",{"title":207,"path":208,"stem":209,"children":210},"Démo des widgets MDC","\u002Fsnt-2nde\u002Fzz-demo-widgets","0.snt-2nde\u002Fzz-demo-widgets\u002F0.index",[211,212,216,220],{"title":207,"path":208,"stem":209},{"title":213,"path":214,"stem":215},"Démo statique — callouts, code, BO, illustration","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fstatique","0.snt-2nde\u002Fzz-demo-widgets\u002F1.statique",{"title":217,"path":218,"stem":219},"Démo interactive — self-eval et python-snippet","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Finteractif","0.snt-2nde\u002Fzz-demo-widgets\u002F2.interactif",{"title":221,"path":222,"stem":223},"Démo · 14 widgets de manipulation NSI","\u002Fsnt-2nde\u002Fzz-demo-widgets\u002Fwidgets-manipulation","0.snt-2nde\u002Fzz-demo-widgets\u002F3.widgets-manipulation",{"title":225,"path":226,"stem":227,"children":228},"NSI — Première","\u002Fnsi-1ere","1.nsi-1ere\u002F0.index",[229,230,234,256,282,304,328,354,380,410],{"title":225,"path":226,"stem":227},{"title":231,"path":232,"stem":233},"Relecture pédagogique — 8 chapitres NSI 1ère (PA → PH)","\u002Fnsi-1ere\u002Freview","1.nsi-1ere\u002FREVIEW",{"title":235,"path":236,"stem":237,"children":238},"Histoire de l'informatique","\u002Fnsi-1ere\u002Fpa-histoire-info","1.nsi-1ere\u002Fpa-histoire-info\u002F0.index",[239,240,244,248,252],{"title":235,"path":236,"stem":237},{"title":241,"path":242,"stem":243},"De la préantiquité aux machines à calculer","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fpreantiquite-aux-machines","1.nsi-1ere\u002Fpa-histoire-info\u002F1.preantiquite-aux-machines",{"title":245,"path":246,"stem":247},"La machine universelle (1930-1950)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fmachine-universelle","1.nsi-1ere\u002Fpa-histoire-info\u002F2.machine-universelle",{"title":249,"path":250,"stem":251},"Les ordinateurs modernes (1947-1990)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Fordinateurs-modernes","1.nsi-1ere\u002Fpa-histoire-info\u002F3.ordinateurs-modernes",{"title":253,"path":254,"stem":255},"Réseaux, Web et IA (1969 à aujourd'hui)","\u002Fnsi-1ere\u002Fpa-histoire-info\u002Freseaux-et-web","1.nsi-1ere\u002Fpa-histoire-info\u002F4.reseaux-et-web",{"title":257,"path":258,"stem":259,"children":260},"Représentation des données — types et valeurs","\u002Fnsi-1ere\u002Fpb-types-valeurs","1.nsi-1ere\u002Fpb-types-valeurs\u002F0.index",[261,262,266,270,274,278],{"title":257,"path":258,"stem":259},{"title":263,"path":264,"stem":265},"Bases de numération et entiers positifs","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbases-entiers-positifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F1.bases-entiers-positifs",{"title":267,"path":268,"stem":269},"Entiers relatifs et complément à deux","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fentiers-relatifs","1.nsi-1ere\u002Fpb-types-valeurs\u002F2.entiers-relatifs",{"title":271,"path":272,"stem":273},"Nombres flottants et virgule flottante","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fflottants","1.nsi-1ere\u002Fpb-types-valeurs\u002F3.flottants",{"title":275,"path":276,"stem":277},"Textes et encodages — ASCII, ISO-8859-1, Unicode","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Ftextes-encodages","1.nsi-1ere\u002Fpb-types-valeurs\u002F4.textes-encodages",{"title":279,"path":280,"stem":281},"Valeurs booléennes et opérateurs logiques","\u002Fnsi-1ere\u002Fpb-types-valeurs\u002Fbooleens","1.nsi-1ere\u002Fpb-types-valeurs\u002F5.booleens",{"title":283,"path":284,"stem":285,"children":286},"Représentation des données : types construits","\u002Fnsi-1ere\u002Fpc-types-construits","1.nsi-1ere\u002Fpc-types-construits\u002F0.index",[287,288,292,296,300],{"title":283,"path":284,"stem":285},{"title":289,"path":290,"stem":291},"Tableaux et listes","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftableaux-listes","1.nsi-1ere\u002Fpc-types-construits\u002F1.tableaux-listes",{"title":293,"path":294,"stem":295},"Listes en compréhension","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fcomprehension","1.nsi-1ere\u002Fpc-types-construits\u002F2.comprehension",{"title":297,"path":298,"stem":299},"Tuples et p-uplets nommés","\u002Fnsi-1ere\u002Fpc-types-construits\u002Ftuples","1.nsi-1ere\u002Fpc-types-construits\u002F3.tuples",{"title":301,"path":302,"stem":303},"Dictionnaires","\u002Fnsi-1ere\u002Fpc-types-construits\u002Fdictionnaires","1.nsi-1ere\u002Fpc-types-construits\u002F4.dictionnaires",{"title":305,"path":306,"stem":307,"children":308},"Traitement de données en tables","\u002Fnsi-1ere\u002Fpd-tables-donnees","1.nsi-1ere\u002Fpd-tables-donnees\u002F0.index",[309,310,314,318,322],{"title":305,"path":306,"stem":307},{"title":311,"path":312,"stem":313},"Tables et CSV","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftables-csv","1.nsi-1ere\u002Fpd-tables-donnees\u002F1.tables-csv",{"title":315,"path":316,"stem":317},"Recherche et filtrage","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Frecherche","1.nsi-1ere\u002Fpd-tables-donnees\u002F2.recherche",{"title":319,"path":320,"stem":321},"Trier une table","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ftri","1.nsi-1ere\u002Fpd-tables-donnees\u002F3.tri",{"title":323,"path":324,"stem":325,"children":326},"Fusion et indexation","\u002Fnsi-1ere\u002Fpd-tables-donnees\u002Ffusion-indexation","1.nsi-1ere\u002Fpd-tables-donnees\u002F4.fusion-indexation",[327],{"title":323,"path":324,"stem":325},{"title":329,"path":330,"stem":331,"children":332},"IHM sur le Web","\u002Fnsi-1ere\u002Fpe-ihm-web","1.nsi-1ere\u002Fpe-ihm-web\u002F0.index",[333,334,338,342,346,350],{"title":329,"path":330,"stem":331},{"title":335,"path":336,"stem":337},"HTML et CSS — rappel de structure","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fhtml-css-bases","1.nsi-1ere\u002Fpe-ihm-web\u002F1.html-css-bases",{"title":339,"path":340,"stem":341},"Formulaires HTML","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fformulaires","1.nsi-1ere\u002Fpe-ihm-web\u002F2.formulaires",{"title":343,"path":344,"stem":345},"Événements JavaScript","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fevenements-js","1.nsi-1ere\u002Fpe-ihm-web\u002F3.evenements-js",{"title":347,"path":348,"stem":349},"Manipulation du DOM","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fdom-interaction","1.nsi-1ere\u002Fpe-ihm-web\u002F4.dom-interaction",{"title":351,"path":352,"stem":353},"Client, serveur et HTTP","\u002Fnsi-1ere\u002Fpe-ihm-web\u002Fclient-serveur-http","1.nsi-1ere\u002Fpe-ihm-web\u002F5.client-serveur-http",{"title":355,"path":356,"stem":357,"children":358},"Architectures matérielles et systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os","1.nsi-1ere\u002Fpf-archi-os\u002F0.index",[359,360,364,368,372,376],{"title":355,"path":356,"stem":357},{"title":361,"path":362,"stem":363},"Le modèle de von Neumann","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fvon-neumann","1.nsi-1ere\u002Fpf-archi-os\u002F1.von-neumann",{"title":365,"path":366,"stem":367},"Périphériques et interface homme-machine","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fperipheriques-ihm","1.nsi-1ere\u002Fpf-archi-os\u002F2.peripheriques-ihm",{"title":369,"path":370,"stem":371},"Les systèmes d'exploitation","\u002Fnsi-1ere\u002Fpf-archi-os\u002Fsystemes-exploitation","1.nsi-1ere\u002Fpf-archi-os\u002F3.systemes-exploitation",{"title":373,"path":374,"stem":375},"Linux et le shell","\u002Fnsi-1ere\u002Fpf-archi-os\u002Flinux-shell","1.nsi-1ere\u002Fpf-archi-os\u002F4.linux-shell",{"title":377,"path":378,"stem":379},"Réseaux et protocoles","\u002Fnsi-1ere\u002Fpf-archi-os\u002Freseaux","1.nsi-1ere\u002Fpf-archi-os\u002F5.reseaux",{"title":381,"path":382,"stem":383,"children":384},"Langages et programmation","\u002Fnsi-1ere\u002Fpg-langages-prog","1.nsi-1ere\u002Fpg-langages-prog\u002F0.index",[385,386,390,394,398,402,406],{"title":381,"path":382,"stem":383},{"title":387,"path":388,"stem":389},"Diversité et unité des langages de programmation","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fdiversite-langages","1.nsi-1ere\u002Fpg-langages-prog\u002F1.diversite-langages",{"title":391,"path":392,"stem":393},"Constructions élémentaires","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fconstructions-elementaires","1.nsi-1ere\u002Fpg-langages-prog\u002F2.constructions-elementaires",{"title":395,"path":396,"stem":397},"Fonctions","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Ffonctions","1.nsi-1ere\u002Fpg-langages-prog\u002F3.fonctions",{"title":399,"path":400,"stem":401},"Spécification d'une fonction","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fspecification","1.nsi-1ere\u002Fpg-langages-prog\u002F4.specification",{"title":403,"path":404,"stem":405},"Mise au point des programmes","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fmise-au-point","1.nsi-1ere\u002Fpg-langages-prog\u002F5.mise-au-point",{"title":407,"path":408,"stem":409},"Utilisation de bibliothèques","\u002Fnsi-1ere\u002Fpg-langages-prog\u002Fbibliotheques","1.nsi-1ere\u002Fpg-langages-prog\u002F6.bibliotheques",{"title":411,"path":412,"stem":413,"children":414},"Algorithmique","\u002Fnsi-1ere\u002Fph-algorithmique","1.nsi-1ere\u002Fph-algorithmique\u002F0.index",[415,416,420,424,428,432,436],{"title":411,"path":412,"stem":413},{"title":417,"path":418,"stem":419},"Parcours séquentiel d'un tableau","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fparcours-sequentiel","1.nsi-1ere\u002Fph-algorithmique\u002F1.parcours-sequentiel",{"title":421,"path":422,"stem":423},"Bases de la complexité","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fcomplexite-bases","1.nsi-1ere\u002Fph-algorithmique\u002F2.complexite-bases",{"title":425,"path":426,"stem":427},"Tris par sélection et par insertion","\u002Fnsi-1ere\u002Fph-algorithmique\u002Ftris","1.nsi-1ere\u002Fph-algorithmique\u002F3.tris",{"title":429,"path":430,"stem":431},"Recherche dichotomique","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fdichotomie","1.nsi-1ere\u002Fph-algorithmique\u002F4.dichotomie",{"title":433,"path":434,"stem":435},"Algorithmes gloutons","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fgloutons","1.nsi-1ere\u002Fph-algorithmique\u002F5.gloutons",{"title":437,"path":438,"stem":439},"Les k plus proches voisins (k-NN)","\u002Fnsi-1ere\u002Fph-algorithmique\u002Fknn","1.nsi-1ere\u002Fph-algorithmique\u002F6.knn",{"title":441,"path":442,"stem":443,"children":444},"NSI — Terminale","\u002Fnsi-tale","2.nsi-tale\u002F0.index",[445,446,450,476,498,536,560],{"title":441,"path":442,"stem":443},{"title":447,"path":448,"stem":449},"Review pédagogique — chapitres NSI Terminale (TA, TB, TC, TD, TE)","\u002Fnsi-tale\u002Freview","2.nsi-tale\u002FREVIEW",{"title":451,"path":452,"stem":453,"children":454},"Structures de données","\u002Fnsi-tale\u002Fta-structures-donnees","2.nsi-tale\u002Fta-structures-donnees\u002F0.index",[455,456,460,464,468,472],{"title":451,"path":452,"stem":453},{"title":457,"path":458,"stem":459},"Objet, classe, interface","\u002Fnsi-tale\u002Fta-structures-donnees\u002Finterface-implementation","2.nsi-tale\u002Fta-structures-donnees\u002F1.interface-implementation",{"title":461,"path":462,"stem":463},"Implémenter une structure — l'exemple de la file FIFO","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fimplementer-une-structure","2.nsi-tale\u002Fta-structures-donnees\u002F2.implementer-une-structure",{"title":465,"path":466,"stem":467},"Listes, piles, files, dictionnaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Flistes-piles-files-dict","2.nsi-tale\u002Fta-structures-donnees\u002F3.listes-piles-files-dict",{"title":469,"path":470,"stem":471},"Arbres binaires","\u002Fnsi-tale\u002Fta-structures-donnees\u002Farbres-binaires","2.nsi-tale\u002Fta-structures-donnees\u002F4.arbres-binaires",{"title":473,"path":474,"stem":475},"Graphes","\u002Fnsi-tale\u002Fta-structures-donnees\u002Fgraphes","2.nsi-tale\u002Fta-structures-donnees\u002F5.graphes",{"title":477,"path":478,"stem":479,"children":480},"Bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees","2.nsi-tale\u002Ftb-bases-de-donnees\u002F0.index",[481,482,486,490,494],{"title":477,"path":478,"stem":479},{"title":483,"path":484,"stem":485},"Le modèle relationnel","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fmodele-relationnel","2.nsi-tale\u002Ftb-bases-de-donnees\u002F1.modele-relationnel",{"title":487,"path":488,"stem":489},"Bases de données relationnelles et anomalies de schéma","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fbase-relationnelle","2.nsi-tale\u002Ftb-bases-de-donnees\u002F2.base-relationnelle",{"title":491,"path":492,"stem":493},"Le langage SQL","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsql","2.nsi-tale\u002Ftb-bases-de-donnees\u002F3.sql",{"title":495,"path":496,"stem":497},"Les systèmes de gestion de bases de données","\u002Fnsi-tale\u002Ftb-bases-de-donnees\u002Fsgbd","2.nsi-tale\u002Ftb-bases-de-donnees\u002F4.sgbd",{"title":499,"path":500,"stem":501,"children":502},"Architectures matérielles, systèmes d'exploitation et réseaux","\u002Fnsi-tale\u002Ftc-archi-os-reseaux","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F0.index",[503,504,508,512,516,520,524,528,532],{"title":499,"path":500,"stem":501},{"title":505,"path":506,"stem":507},"Le système sur puce (SoC)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fsysteme-sur-puce","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F1.systeme-sur-puce",{"title":509,"path":510,"stem":511},"Processus et ordonnancement par l'OS","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprocessus-os","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F2.processus-os",{"title":513,"path":514,"stem":515},"L'interblocage (deadlock)","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Finterblocage","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F3.interblocage",{"title":517,"path":518,"stem":519},"Principes du routage","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Froutage-principes","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F4.routage-principes",{"title":521,"path":522,"stem":523},"Protocoles de routage RIP et OSPF","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fprotocoles-rip-ospf","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F5.protocoles-rip-ospf",{"title":525,"path":526,"stem":527},"Chiffrement symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-symetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F6.chiffrement-symetrique",{"title":529,"path":530,"stem":531},"Chiffrement asymétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fchiffrement-asymetrique","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F7.chiffrement-asymetrique",{"title":533,"path":534,"stem":535},"HTTPS — l'échange de clé symétrique","\u002Fnsi-tale\u002Ftc-archi-os-reseaux\u002Fhttps-tls","2.nsi-tale\u002Ftc-archi-os-reseaux\u002F8.https-tls",{"title":381,"path":537,"stem":538,"children":539},"\u002Fnsi-tale\u002Ftd-langages-prog","2.nsi-tale\u002Ftd-langages-prog\u002F0.index",[540,541,544,548,552,556],{"title":381,"path":537,"stem":538},{"title":403,"path":542,"stem":543},"\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmise-au-point","2.nsi-tale\u002Ftd-langages-prog\u002F1.mise-au-point",{"title":545,"path":546,"stem":547},"Modularité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fmodularite","2.nsi-tale\u002Ftd-langages-prog\u002F2.modularite",{"title":549,"path":550,"stem":551},"Récursivité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Frecursivite","2.nsi-tale\u002Ftd-langages-prog\u002F3.recursivite",{"title":553,"path":554,"stem":555},"Paradigmes de programmation","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fparadigmes","2.nsi-tale\u002Ftd-langages-prog\u002F4.paradigmes",{"title":557,"path":558,"stem":559},"Programme comme donnée — calculabilité et indécidabilité","\u002Fnsi-tale\u002Ftd-langages-prog\u002Fprogramme-comme-donnee","2.nsi-tale\u002Ftd-langages-prog\u002F5.programme-comme-donnee",{"title":411,"path":561,"stem":562,"children":563},"\u002Fnsi-tale\u002Fte-algorithmique","2.nsi-tale\u002Fte-algorithmique\u002F0.index",[564,565,569,573,577,581],{"title":411,"path":561,"stem":562},{"title":566,"path":567,"stem":568},"Algorithmes sur les arbres binaires","\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos","2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos",{"title":570,"path":571,"stem":572},"Parcours de graphes — DFS, BFS, cycles, chemins","\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours","2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours",{"title":574,"path":575,"stem":576},"Diviser pour régner","\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner","2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner",{"title":578,"path":579,"stem":580},"Programmation dynamique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique","2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique",{"title":582,"path":583,"stem":584},"Recherche textuelle — l'algorithme de Boyer-Moore","\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle","2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle",[586,2223,3472,8651,12162],{"id":587,"title":566,"bo":588,"body":590,"description":2210,"eval":2211,"extension":2212,"labo":2211,"meta":2213,"navigation":752,"path":567,"quizzes":2214,"readingTime":666,"seo":2221,"stem":568,"tp":2211,"__hash__":2222},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos.md",[589],"TE01",{"type":591,"value":592,"toc":2201},"minimark",[593,598,611,626,635,638,642,653,853,857,868,979,1126,1148,1152,1163,1225,1390,1404,1408,1424,1571,1624,1645,1649,1780,1931,2077,2186,2190,2197],[594,595,597],"h2",{"id":596},"introduction","Introduction",[599,600,601,602,606,607,610],"p",{},"L'arbre binaire est une structure ",[603,604,605],"strong",{},"récursive par construction"," : chaque nœud\nporte une valeur et peut posséder un sous-arbre gauche et un sous-arbre droit,\neux-mêmes des arbres binaires. Cette nature récursive imprègne tous les\nalgorithmes qui s'y appliquent — ils suivent presque tous le schéma\n",[603,608,609],{},"« traiter la racine, recommencer à gauche, recommencer à droite »",".",[599,612,613,614,617,618,621,622,625],{},"Cette forme arborescente n'est pas une invention de l'informatique : on la\nretrouve dans la ",[603,615,616],{},"classification du vivant"," de Linné (règnes, ordres,\nespèces), dans un ",[603,619,620],{},"organigramme d'entreprise",", ou dans un ",[603,623,624],{},"arbre\ngénéalogique",". Partout où l'on décrit une hiérarchie qui se ramifie, on peut\nla lire comme un arbre.",[599,627,628,629,631,632,610],{},"Cette section suppose la familiarité avec la structure d'arbre binaire et son\nvocabulaire (racine, feuille, nœud interne, hauteur, taille) — voir le chapitre\n",[603,630,451],{}," (TA01). Ici, on les ",[603,633,634],{},"parcourt",[636,637],"bo-ref",{"code":589},[594,639,641],{"id":640},"une-classe-python-pour-les-nœuds","Une classe Python pour les nœuds",[599,643,644,645,649,650,610],{},"On représente un arbre par une classe ",[646,647,648],"code",{},"Noeud",", chaque nœud référençant ses\ndeux enfants éventuels. L'absence d'enfant est codée par ",[646,651,652],{},"None",[654,655,660],"pre",{"className":656,"code":657,"language":658,"meta":659,"style":659},"language-python shiki shiki-themes github-light github-light github-dark","class Noeud:\n    def __init__(self, valeur, gauche=None, droite=None):\n        self.valeur = valeur\n        self.gauche = gauche\n        self.droite = droite\n\n# Un petit arbre :\n#         4\n#        \u002F \\\n#       2   6\n#      \u002F \\   \\\n#     1   3   7\narbre = Noeud(4,\n              Noeud(2, Noeud(1), Noeud(3)),\n              Noeud(6, None, Noeud(7)))\n","python","",[646,661,662,679,707,721,734,747,754,761,767,773,779,785,791,808,832],{"__ignoreMap":659},[663,664,667,671,675],"span",{"class":665,"line":666},"line",1,[663,668,670],{"class":669},"s8jYJ","class",[663,672,674],{"class":673},"snPdu"," Noeud",[663,676,678],{"class":677},"sxrX7",":\n",[663,680,682,685,689,692,695,697,700,702,704],{"class":665,"line":681},2,[663,683,684],{"class":669},"    def",[663,686,688],{"class":687},"sBjJW"," __init__",[663,690,691],{"class":677},"(self, valeur, gauche",[663,693,694],{"class":669},"=",[663,696,652],{"class":687},[663,698,699],{"class":677},", droite",[663,701,694],{"class":669},[663,703,652],{"class":687},[663,705,706],{"class":677},"):\n",[663,708,710,713,716,718],{"class":665,"line":709},3,[663,711,712],{"class":687},"        self",[663,714,715],{"class":677},".valeur ",[663,717,694],{"class":669},[663,719,720],{"class":677}," valeur\n",[663,722,724,726,729,731],{"class":665,"line":723},4,[663,725,712],{"class":687},[663,727,728],{"class":677},".gauche ",[663,730,694],{"class":669},[663,732,733],{"class":677}," gauche\n",[663,735,737,739,742,744],{"class":665,"line":736},5,[663,738,712],{"class":687},[663,740,741],{"class":677},".droite ",[663,743,694],{"class":669},[663,745,746],{"class":677}," droite\n",[663,748,750],{"class":665,"line":749},6,[663,751,753],{"emptyLinePlaceholder":752},true,"\n",[663,755,757],{"class":665,"line":756},7,[663,758,760],{"class":759},"sCsY4","# Un petit arbre :\n",[663,762,764],{"class":665,"line":763},8,[663,765,766],{"class":759},"#         4\n",[663,768,770],{"class":665,"line":769},9,[663,771,772],{"class":759},"#        \u002F \\\n",[663,774,776],{"class":665,"line":775},10,[663,777,778],{"class":759},"#       2   6\n",[663,780,782],{"class":665,"line":781},11,[663,783,784],{"class":759},"#      \u002F \\   \\\n",[663,786,788],{"class":665,"line":787},12,[663,789,790],{"class":759},"#     1   3   7\n",[663,792,794,797,799,802,805],{"class":665,"line":793},13,[663,795,796],{"class":677},"arbre ",[663,798,694],{"class":669},[663,800,801],{"class":677}," Noeud(",[663,803,804],{"class":687},"4",[663,806,807],{"class":677},",\n",[663,809,811,814,817,820,823,826,829],{"class":665,"line":810},14,[663,812,813],{"class":677},"              Noeud(",[663,815,816],{"class":687},"2",[663,818,819],{"class":677},", Noeud(",[663,821,822],{"class":687},"1",[663,824,825],{"class":677},"), Noeud(",[663,827,828],{"class":687},"3",[663,830,831],{"class":677},")),\n",[663,833,835,837,840,843,845,847,850],{"class":665,"line":834},15,[663,836,813],{"class":677},[663,838,839],{"class":687},"6",[663,841,842],{"class":677},", ",[663,844,652],{"class":687},[663,846,819],{"class":677},[663,848,849],{"class":687},"7",[663,851,852],{"class":677},")))\n",[594,854,856],{"id":855},"taille-et-hauteur","Taille et hauteur",[599,858,859,860,863,864,867],{},"La ",[603,861,862],{},"taille"," d'un arbre est son nombre de nœuds ; sa ",[603,865,866],{},"hauteur"," est la longueur\ndu plus long chemin de la racine à une feuille. Toutes deux se calculent par\nrécurrence en suivant le squelette de la structure.",[654,869,871],{"className":656,"code":870,"language":658,"meta":659,"style":659},"def taille(a):\n    if a is None:\n        return 0\n    return 1 + taille(a.gauche) + taille(a.droite)\n\ndef hauteur(a):\n    if a is None:\n        return -1                          # par convention : arbre vide\n    return 1 + max(hauteur(a.gauche), hauteur(a.droite))\n",[646,872,873,884,900,908,928,932,941,953,965],{"__ignoreMap":659},[663,874,875,878,881],{"class":665,"line":666},[663,876,877],{"class":669},"def",[663,879,880],{"class":673}," taille",[663,882,883],{"class":677},"(a):\n",[663,885,886,889,892,895,898],{"class":665,"line":681},[663,887,888],{"class":669},"    if",[663,890,891],{"class":677}," a ",[663,893,894],{"class":669},"is",[663,896,897],{"class":687}," None",[663,899,678],{"class":677},[663,901,902,905],{"class":665,"line":709},[663,903,904],{"class":669},"        return",[663,906,907],{"class":687}," 0\n",[663,909,910,913,916,919,922,925],{"class":665,"line":723},[663,911,912],{"class":669},"    return",[663,914,915],{"class":687}," 1",[663,917,918],{"class":669}," +",[663,920,921],{"class":677}," taille(a.gauche) ",[663,923,924],{"class":669},"+",[663,926,927],{"class":677}," taille(a.droite)\n",[663,929,930],{"class":665,"line":736},[663,931,753],{"emptyLinePlaceholder":752},[663,933,934,936,939],{"class":665,"line":749},[663,935,877],{"class":669},[663,937,938],{"class":673}," hauteur",[663,940,883],{"class":677},[663,942,943,945,947,949,951],{"class":665,"line":756},[663,944,888],{"class":669},[663,946,891],{"class":677},[663,948,894],{"class":669},[663,950,897],{"class":687},[663,952,678],{"class":677},[663,954,955,957,960,962],{"class":665,"line":763},[663,956,904],{"class":669},[663,958,959],{"class":669}," -",[663,961,822],{"class":687},[663,963,964],{"class":759},"                          # par convention : arbre vide\n",[663,966,967,969,971,973,976],{"class":665,"line":769},[663,968,912],{"class":669},[663,970,915],{"class":687},[663,972,918],{"class":669},[663,974,975],{"class":687}," max",[663,977,978],{"class":677},"(hauteur(a.gauche), hauteur(a.droite))\n",[599,980,981,984,985,1036,1037,1067,1068,1125],{},[603,982,983],{},"Convention"," : la hauteur de l'arbre vide vaut ",[663,986,989,1015],{"className":987},[988],"katex",[663,990,993],{"className":991},[992],"katex-mathml",[994,995,997],"math",{"xmlns":996},"http:\u002F\u002Fwww.w3.org\u002F1998\u002FMath\u002FMathML",[998,999,1000,1010],"semantics",{},[1001,1002,1003,1007],"mrow",{},[1004,1005,1006],"mo",{},"−",[1008,1009,822],"mn",{},[1011,1012,1014],"annotation",{"encoding":1013},"application\u002Fx-tex","-1",[663,1016,1020],{"className":1017,"ariaHidden":1019},[1018],"katex-html","true",[663,1021,1024,1029,1033],{"className":1022},[1023],"base",[663,1025],{"className":1026,"style":1028},[1027],"strut","height:0.7278em;vertical-align:-0.0833em;",[663,1030,1006],{"className":1031},[1032],"mord",[663,1034,822],{"className":1035},[1032],", celle d'une feuille vaut\n",[663,1038,1040,1054],{"className":1039},[988],[663,1041,1043],{"className":1042},[992],[994,1044,1045],{"xmlns":996},[998,1046,1047,1052],{},[1001,1048,1049],{},[1008,1050,1051],{},"0",[1011,1053,1051],{"encoding":1013},[663,1055,1057],{"className":1056,"ariaHidden":1019},[1018],[663,1058,1060,1064],{"className":1059},[1023],[663,1061],{"className":1062,"style":1063},[1027],"height:0.6444em;",[663,1065,1051],{"className":1066},[1032],". Le coût des deux fonctions est en ",[663,1069,1071,1098],{"className":1070},[988],[663,1072,1074],{"className":1073},[992],[994,1075,1076],{"xmlns":996},[998,1077,1078,1095],{},[1001,1079,1080,1085,1089,1092],{},[1081,1082,1084],"mi",{"mathvariant":1083},"script","O",[1004,1086,1088],{"stretchy":1087},"false","(",[1081,1090,1091],{},"n",[1004,1093,1094],{"stretchy":1087},")",[1011,1096,1097],{"encoding":1013},"\\mathcal{O}(n)",[663,1099,1101],{"className":1100,"ariaHidden":1019},[1018],[663,1102,1104,1108,1113,1117,1121],{"className":1103},[1023],[663,1105],{"className":1106,"style":1107},[1027],"height:1em;vertical-align:-0.25em;",[663,1109,1084],{"className":1110,"style":1112},[1032,1111],"mathcal","margin-right:0.0278em;",[663,1114,1088],{"className":1115},[1116],"mopen",[663,1118,1091],{"className":1119},[1032,1120],"mathnormal",[663,1122,1094],{"className":1123},[1124],"mclose"," — chaque nœud est visité\nexactement une fois.",[1127,1128,1130,1136],"self-eval-qcm",{"correct":816,"slug":1129},"arbres-binaires-algos-c1",[1131,1132,1133],"template",{"v-slot:question":659},[599,1134,1135],{},"Quelle est la hauteur de l'arbre dessiné ci-dessus ?",[1131,1137,1138],{"v-slot:choices":659},[1139,1140,1141,1144,1146],"ul",{},[1142,1143,822],"li",{},[1142,1145,816],{},[1142,1147,828],{},[594,1149,1151],{"id":1150},"les-trois-parcours-en-profondeur","Les trois parcours en profondeur",[599,1153,1154,1155,1158,1159,1162],{},"Un parcours en ",[603,1156,1157],{},"profondeur"," visite récursivement un sous-arbre entier avant\nde passer au suivant. Trois ordres se distinguent selon ",[603,1160,1161],{},"quand"," on traite la\nracine relativement à ses enfants.",[1164,1165,1166,1182],"table",{},[1167,1168,1169],"thead",{},[1170,1171,1172,1176,1179],"tr",{},[1173,1174,1175],"th",{},"Parcours",[1173,1177,1178],{},"Ordre",[1173,1180,1181],{},"Sur l'arbre exemple",[1183,1184,1185,1199,1212],"tbody",{},[1170,1186,1187,1193,1196],{},[1188,1189,1190],"td",{},[603,1191,1192],{},"Préfixe",[1188,1194,1195],{},"racine → gauche → droite",[1188,1197,1198],{},"4, 2, 1, 3, 6, 7",[1170,1200,1201,1206,1209],{},[1188,1202,1203],{},[603,1204,1205],{},"Infixe",[1188,1207,1208],{},"gauche → racine → droite",[1188,1210,1211],{},"1, 2, 3, 4, 6, 7",[1170,1213,1214,1219,1222],{},[1188,1215,1216],{},[603,1217,1218],{},"Suffixe",[1188,1220,1221],{},"gauche → droite → racine",[1188,1223,1224],{},"1, 3, 2, 7, 6, 4",[654,1226,1228],{"className":656,"code":1227,"language":658,"meta":659,"style":659},"def prefixe(a):\n    if a is None: return\n    print(a.valeur, end=\" \")\n    prefixe(a.gauche)\n    prefixe(a.droite)\n\ndef infixe(a):\n    if a is None: return\n    infixe(a.gauche)\n    print(a.valeur, end=\" \")\n    infixe(a.droite)\n\ndef suffixe(a):\n    if a is None: return\n    suffixe(a.gauche)\n    suffixe(a.droite)\n    print(a.valeur, end=\" \")\n",[646,1229,1230,1239,1255,1276,1281,1286,1290,1299,1313,1318,1332,1337,1341,1350,1364,1369,1375],{"__ignoreMap":659},[663,1231,1232,1234,1237],{"class":665,"line":666},[663,1233,877],{"class":669},[663,1235,1236],{"class":673}," prefixe",[663,1238,883],{"class":677},[663,1240,1241,1243,1245,1247,1249,1252],{"class":665,"line":681},[663,1242,888],{"class":669},[663,1244,891],{"class":677},[663,1246,894],{"class":669},[663,1248,897],{"class":687},[663,1250,1251],{"class":677},": ",[663,1253,1254],{"class":669},"return\n",[663,1256,1257,1260,1263,1267,1269,1273],{"class":665,"line":709},[663,1258,1259],{"class":687},"    print",[663,1261,1262],{"class":677},"(a.valeur, ",[663,1264,1266],{"class":1265},"sP4rz","end",[663,1268,694],{"class":669},[663,1270,1272],{"class":1271},"sIIMD","\" \"",[663,1274,1275],{"class":677},")\n",[663,1277,1278],{"class":665,"line":723},[663,1279,1280],{"class":677},"    prefixe(a.gauche)\n",[663,1282,1283],{"class":665,"line":736},[663,1284,1285],{"class":677},"    prefixe(a.droite)\n",[663,1287,1288],{"class":665,"line":749},[663,1289,753],{"emptyLinePlaceholder":752},[663,1291,1292,1294,1297],{"class":665,"line":756},[663,1293,877],{"class":669},[663,1295,1296],{"class":673}," infixe",[663,1298,883],{"class":677},[663,1300,1301,1303,1305,1307,1309,1311],{"class":665,"line":763},[663,1302,888],{"class":669},[663,1304,891],{"class":677},[663,1306,894],{"class":669},[663,1308,897],{"class":687},[663,1310,1251],{"class":677},[663,1312,1254],{"class":669},[663,1314,1315],{"class":665,"line":769},[663,1316,1317],{"class":677},"    infixe(a.gauche)\n",[663,1319,1320,1322,1324,1326,1328,1330],{"class":665,"line":775},[663,1321,1259],{"class":687},[663,1323,1262],{"class":677},[663,1325,1266],{"class":1265},[663,1327,694],{"class":669},[663,1329,1272],{"class":1271},[663,1331,1275],{"class":677},[663,1333,1334],{"class":665,"line":781},[663,1335,1336],{"class":677},"    infixe(a.droite)\n",[663,1338,1339],{"class":665,"line":787},[663,1340,753],{"emptyLinePlaceholder":752},[663,1342,1343,1345,1348],{"class":665,"line":793},[663,1344,877],{"class":669},[663,1346,1347],{"class":673}," suffixe",[663,1349,883],{"class":677},[663,1351,1352,1354,1356,1358,1360,1362],{"class":665,"line":810},[663,1353,888],{"class":669},[663,1355,891],{"class":677},[663,1357,894],{"class":669},[663,1359,897],{"class":687},[663,1361,1251],{"class":677},[663,1363,1254],{"class":669},[663,1365,1366],{"class":665,"line":834},[663,1367,1368],{"class":677},"    suffixe(a.gauche)\n",[663,1370,1372],{"class":665,"line":1371},16,[663,1373,1374],{"class":677},"    suffixe(a.droite)\n",[663,1376,1378,1380,1382,1384,1386,1388],{"class":665,"line":1377},17,[663,1379,1259],{"class":687},[663,1381,1262],{"class":677},[663,1383,1266],{"class":1265},[663,1385,694],{"class":669},[663,1387,1272],{"class":1271},[663,1389,1275],{"class":677},[1391,1392,1393],"note",{},[599,1394,1395,1396,1399,1400,1403],{},"Sur un ",[603,1397,1398],{},"arbre binaire de recherche",", le parcours infixe affiche les valeurs\ndans ",[603,1401,1402],{},"l'ordre croissant",". C'est une propriété structurelle, exploitée pour\ntrier des données ou valider qu'un arbre respecte bien la propriété d'ABR.",[594,1405,1407],{"id":1406},"parcours-en-largeur-bfs","Parcours en largeur (BFS)",[599,1409,1410,1411,1414,1415,1419,1420,1423],{},"Le parcours ",[603,1412,1413],{},"en largeur"," (BFS, ",[1416,1417,1418],"em",{},"Breadth-First Search",") visite les nœuds\nniveau par niveau. Il ne se programme pas naturellement par récursion : on\nutilise une ",[603,1421,1422],{},"file"," (FIFO).",[654,1425,1427],{"className":656,"code":1426,"language":658,"meta":659,"style":659},"from collections import deque\n\ndef parcours_largeur(a):\n    if a is None: return\n    file = deque([a])\n    while file:\n        n = file.popleft()\n        print(n.valeur, end=\" \")\n        if n.gauche is not None:  file.append(n.gauche)\n        if n.droite is not None:  file.append(n.droite)\n\n# Sortie sur l'arbre exemple : 4 2 6 1 3 7\n",[646,1428,1429,1443,1447,1456,1470,1481,1491,1503,1519,1542,1562,1566],{"__ignoreMap":659},[663,1430,1431,1434,1437,1440],{"class":665,"line":666},[663,1432,1433],{"class":669},"from",[663,1435,1436],{"class":677}," collections ",[663,1438,1439],{"class":669},"import",[663,1441,1442],{"class":677}," deque\n",[663,1444,1445],{"class":665,"line":681},[663,1446,753],{"emptyLinePlaceholder":752},[663,1448,1449,1451,1454],{"class":665,"line":709},[663,1450,877],{"class":669},[663,1452,1453],{"class":673}," parcours_largeur",[663,1455,883],{"class":677},[663,1457,1458,1460,1462,1464,1466,1468],{"class":665,"line":723},[663,1459,888],{"class":669},[663,1461,891],{"class":677},[663,1463,894],{"class":669},[663,1465,897],{"class":687},[663,1467,1251],{"class":677},[663,1469,1254],{"class":669},[663,1471,1472,1475,1478],{"class":665,"line":736},[663,1473,1474],{"class":1265},"    file",[663,1476,1477],{"class":669}," =",[663,1479,1480],{"class":677}," deque([a])\n",[663,1482,1483,1486,1489],{"class":665,"line":749},[663,1484,1485],{"class":669},"    while",[663,1487,1488],{"class":1265}," file",[663,1490,678],{"class":677},[663,1492,1493,1496,1498,1500],{"class":665,"line":756},[663,1494,1495],{"class":677},"        n ",[663,1497,694],{"class":669},[663,1499,1488],{"class":1265},[663,1501,1502],{"class":677},".popleft()\n",[663,1504,1505,1508,1511,1513,1515,1517],{"class":665,"line":763},[663,1506,1507],{"class":687},"        print",[663,1509,1510],{"class":677},"(n.valeur, ",[663,1512,1266],{"class":1265},[663,1514,694],{"class":669},[663,1516,1272],{"class":1271},[663,1518,1275],{"class":677},[663,1520,1521,1524,1527,1529,1532,1534,1537,1539],{"class":665,"line":769},[663,1522,1523],{"class":669},"        if",[663,1525,1526],{"class":677}," n.gauche ",[663,1528,894],{"class":669},[663,1530,1531],{"class":669}," not",[663,1533,897],{"class":687},[663,1535,1536],{"class":677},":  ",[663,1538,1422],{"class":1265},[663,1540,1541],{"class":677},".append(n.gauche)\n",[663,1543,1544,1546,1549,1551,1553,1555,1557,1559],{"class":665,"line":775},[663,1545,1523],{"class":669},[663,1547,1548],{"class":677}," n.droite ",[663,1550,894],{"class":669},[663,1552,1531],{"class":669},[663,1554,897],{"class":687},[663,1556,1536],{"class":677},[663,1558,1422],{"class":1265},[663,1560,1561],{"class":677},".append(n.droite)\n",[663,1563,1564],{"class":665,"line":781},[663,1565,753],{"emptyLinePlaceholder":752},[663,1567,1568],{"class":665,"line":787},[663,1569,1570],{"class":759},"# Sortie sur l'arbre exemple : 4 2 6 1 3 7\n",[599,1572,1573,1576,1577,1580,1581,610],{},[603,1574,1575],{},"Invariant de boucle"," : à chaque itération, la file contient les nœuds\n",[603,1578,1579],{},"découverts mais non encore traités",", du moins profond au plus profond.\nQuand la file se vide, tout l'arbre a été parcouru — d'où le coût en\n",[663,1582,1584,1603],{"className":1583},[988],[663,1585,1587],{"className":1586},[992],[994,1588,1589],{"xmlns":996},[998,1590,1591,1601],{},[1001,1592,1593,1595,1597,1599],{},[1081,1594,1084],{"mathvariant":1083},[1004,1596,1088],{"stretchy":1087},[1081,1598,1091],{},[1004,1600,1094],{"stretchy":1087},[1011,1602,1097],{"encoding":1013},[663,1604,1606],{"className":1605,"ariaHidden":1019},[1018],[663,1607,1609,1612,1615,1618,1621],{"className":1608},[1023],[663,1610],{"className":1611,"style":1107},[1027],[663,1613,1084],{"className":1614,"style":1112},[1032,1111],[663,1616,1088],{"className":1617},[1116],[663,1619,1091],{"className":1620},[1032,1120],[663,1622,1094],{"className":1623},[1124],[1127,1625,1627,1632],{"correct":822,"slug":1626},"arbres-binaires-algos-c2",[1131,1628,1629],{"v-slot:question":659},[599,1630,1631],{},"Quelle structure de données est essentielle au parcours en largeur ?",[1131,1633,1634],{"v-slot:choices":659},[1139,1635,1636,1639,1642],{},[1142,1637,1638],{},"une pile (LIFO)",[1142,1640,1641],{},"une file (FIFO)",[1142,1643,1644],{},"un dictionnaire",[594,1646,1648],{"id":1647},"arbre-binaire-de-recherche-rechercher-insérer","Arbre binaire de recherche : rechercher, insérer",[599,1650,1651,1652,1654,1655,1686,1687,1735,1736,610],{},"Un ",[603,1653,1398],{}," (ABR) respecte une propriété d'ordre : pour\ntout nœud de valeur ",[663,1656,1658,1672],{"className":1657},[988],[663,1659,1661],{"className":1660},[992],[994,1662,1663],{"xmlns":996},[998,1664,1665,1670],{},[1001,1666,1667],{},[1081,1668,1669],{},"v",[1011,1671,1669],{"encoding":1013},[663,1673,1675],{"className":1674,"ariaHidden":1019},[1018],[663,1676,1678,1682],{"className":1677},[1023],[663,1679],{"className":1680,"style":1681},[1027],"height:0.4306em;",[663,1683,1669],{"className":1684,"style":1685},[1032,1120],"margin-right:0.0359em;",", toutes les valeurs du sous-arbre gauche sont ",[663,1688,1690,1707],{"className":1689},[988],[663,1691,1693],{"className":1692},[992],[994,1694,1695],{"xmlns":996},[998,1696,1697,1704],{},[1001,1698,1699,1702],{},[1004,1700,1701],{},"\u003C",[1081,1703,1669],{},[1011,1705,1706],{"encoding":1013},"\u003C v",[663,1708,1710,1726],{"className":1709,"ariaHidden":1019},[1018],[663,1711,1713,1717,1721],{"className":1712},[1023],[663,1714],{"className":1715,"style":1716},[1027],"height:0.5782em;vertical-align:-0.0391em;",[663,1718,1701],{"className":1719},[1720],"mrel",[663,1722],{"className":1723,"style":1725},[1724],"mspace","margin-right:0.2778em;",[663,1727,1729,1732],{"className":1728},[1023],[663,1730],{"className":1731,"style":1681},[1027],[663,1733,1669],{"className":1734,"style":1685},[1032,1120],",\net toutes celles du sous-arbre droit sont ",[663,1737,1739,1756],{"className":1738},[988],[663,1740,1742],{"className":1741},[992],[994,1743,1744],{"xmlns":996},[998,1745,1746,1753],{},[1001,1747,1748,1751],{},[1004,1749,1750],{},">",[1081,1752,1669],{},[1011,1754,1755],{"encoding":1013},"> v",[663,1757,1759,1771],{"className":1758,"ariaHidden":1019},[1018],[663,1760,1762,1765,1768],{"className":1761},[1023],[663,1763],{"className":1764,"style":1716},[1027],[663,1766,1750],{"className":1767},[1720],[663,1769],{"className":1770,"style":1725},[1724],[663,1772,1774,1777],{"className":1773},[1023],[663,1775],{"className":1776,"style":1681},[1027],[663,1778,1669],{"className":1779,"style":1685},[1032,1120],[654,1781,1783],{"className":656,"code":1782,"language":658,"meta":659,"style":659},"def rechercher(a, cle):\n    if a is None:           return False\n    if cle == a.valeur:     return True\n    if cle \u003C  a.valeur:     return rechercher(a.gauche, cle)\n    return rechercher(a.droite, cle)\n\ndef inserer(a, cle):\n    if a is None:                       return Noeud(cle)\n    if cle \u003C  a.valeur:  a.gauche = inserer(a.gauche, cle)\n    elif cle > a.valeur: a.droite = inserer(a.droite, cle)\n    # Si cle == a.valeur, on ne fait rien : pas de doublons dans cet ABR.\n    return a\n",[646,1784,1785,1795,1814,1832,1848,1855,1859,1868,1886,1902,1919,1924],{"__ignoreMap":659},[663,1786,1787,1789,1792],{"class":665,"line":666},[663,1788,877],{"class":669},[663,1790,1791],{"class":673}," rechercher",[663,1793,1794],{"class":677},"(a, cle):\n",[663,1796,1797,1799,1801,1803,1805,1808,1811],{"class":665,"line":681},[663,1798,888],{"class":669},[663,1800,891],{"class":677},[663,1802,894],{"class":669},[663,1804,897],{"class":687},[663,1806,1807],{"class":677},":           ",[663,1809,1810],{"class":669},"return",[663,1812,1813],{"class":687}," False\n",[663,1815,1816,1818,1821,1824,1827,1829],{"class":665,"line":709},[663,1817,888],{"class":669},[663,1819,1820],{"class":677}," cle ",[663,1822,1823],{"class":669},"==",[663,1825,1826],{"class":677}," a.valeur:     ",[663,1828,1810],{"class":669},[663,1830,1831],{"class":687}," True\n",[663,1833,1834,1836,1838,1840,1843,1845],{"class":665,"line":723},[663,1835,888],{"class":669},[663,1837,1820],{"class":677},[663,1839,1701],{"class":669},[663,1841,1842],{"class":677},"  a.valeur:     ",[663,1844,1810],{"class":669},[663,1846,1847],{"class":677}," rechercher(a.gauche, cle)\n",[663,1849,1850,1852],{"class":665,"line":736},[663,1851,912],{"class":669},[663,1853,1854],{"class":677}," rechercher(a.droite, cle)\n",[663,1856,1857],{"class":665,"line":749},[663,1858,753],{"emptyLinePlaceholder":752},[663,1860,1861,1863,1866],{"class":665,"line":756},[663,1862,877],{"class":669},[663,1864,1865],{"class":673}," inserer",[663,1867,1794],{"class":677},[663,1869,1870,1872,1874,1876,1878,1881,1883],{"class":665,"line":763},[663,1871,888],{"class":669},[663,1873,891],{"class":677},[663,1875,894],{"class":669},[663,1877,897],{"class":687},[663,1879,1880],{"class":677},":                       ",[663,1882,1810],{"class":669},[663,1884,1885],{"class":677}," Noeud(cle)\n",[663,1887,1888,1890,1892,1894,1897,1899],{"class":665,"line":769},[663,1889,888],{"class":669},[663,1891,1820],{"class":677},[663,1893,1701],{"class":669},[663,1895,1896],{"class":677},"  a.valeur:  a.gauche ",[663,1898,694],{"class":669},[663,1900,1901],{"class":677}," inserer(a.gauche, cle)\n",[663,1903,1904,1907,1909,1911,1914,1916],{"class":665,"line":775},[663,1905,1906],{"class":669},"    elif",[663,1908,1820],{"class":677},[663,1910,1750],{"class":669},[663,1912,1913],{"class":677}," a.valeur: a.droite ",[663,1915,694],{"class":669},[663,1917,1918],{"class":677}," inserer(a.droite, cle)\n",[663,1920,1921],{"class":665,"line":781},[663,1922,1923],{"class":759},"    # Si cle == a.valeur, on ne fait rien : pas de doublons dans cet ABR.\n",[663,1925,1926,1928],{"class":665,"line":787},[663,1927,912],{"class":669},[663,1929,1930],{"class":677}," a\n",[599,1932,1933,1934,1937,1938,1941,1942,2007,2008,2011,2012,2015,2016,2072,2073,2076],{},"À chaque étape, on ",[603,1935,1936],{},"élimine la moitié"," des descendants encore à explorer.\nSi l'arbre est ",[603,1939,1940],{},"équilibré"," (hauteur ",[663,1943,1945,1973],{"className":1944},[988],[663,1946,1948],{"className":1947},[992],[994,1949,1950],{"xmlns":996},[998,1951,1952,1970],{},[1001,1953,1954,1958,1960,1963,1966,1968],{},[1081,1955,1957],{"mathvariant":1956},"normal","Θ",[1004,1959,1088],{"stretchy":1087},[1081,1961,1962],{},"log",[1004,1964,1965],{},"⁡",[1081,1967,1091],{},[1004,1969,1094],{"stretchy":1087},[1011,1971,1972],{"encoding":1013},"\\Theta(\\log n)",[663,1974,1976],{"className":1975,"ariaHidden":1019},[1018],[663,1977,1979,1982,1985,1988,1997,2001,2004],{"className":1978},[1023],[663,1980],{"className":1981,"style":1107},[1027],[663,1983,1957],{"className":1984},[1032],[663,1986,1088],{"className":1987},[1116],[663,1989,1992,1993],{"className":1990},[1991],"mop","lo",[663,1994,1996],{"style":1995},"margin-right:0.0139em;","g",[663,1998],{"className":1999,"style":2000},[1724],"margin-right:0.1667em;",[663,2002,1091],{"className":2003},[1032,1120],[663,2005,1094],{"className":2006},[1124],"), le coût de\n",[646,2009,2010],{},"rechercher"," et ",[646,2013,2014],{},"inserer"," est en ",[663,2017,2019,2043],{"className":2018},[988],[663,2020,2022],{"className":2021},[992],[994,2023,2024],{"xmlns":996},[998,2025,2026,2040],{},[1001,2027,2028,2030,2032,2034,2036,2038],{},[1081,2029,1084],{"mathvariant":1083},[1004,2031,1088],{"stretchy":1087},[1081,2033,1962],{},[1004,2035,1965],{},[1081,2037,1091],{},[1004,2039,1094],{"stretchy":1087},[1011,2041,2042],{"encoding":1013},"\\mathcal{O}(\\log n)",[663,2044,2046],{"className":2045,"ariaHidden":1019},[1018],[663,2047,2049,2052,2055,2058,2063,2066,2069],{"className":2048},[1023],[663,2050],{"className":2051,"style":1107},[1027],[663,2053,1084],{"className":2054,"style":1112},[1032,1111],[663,2056,1088],{"className":2057},[1116],[663,2059,1992,2061],{"className":2060},[1991],[663,2062,1996],{"style":1995},[663,2064],{"className":2065,"style":2000},[1724],[663,2067,1091],{"className":2068},[1032,1120],[663,2070,1094],{"className":2071},[1124]," — c'est l'intérêt\nmajeur de la structure. On peut voir un ABR équilibré comme un ",[603,2074,2075],{},"annuaire\ntrié vivant"," : la recherche d'un nom y obéit au même principe que la\nrecherche dichotomique dans un dictionnaire papier — on ouvre au milieu,\npuis on choisit la moitié gauche ou droite selon l'ordre alphabétique.",[2078,2079,2080],"warning",{},[599,2081,2082,2083,2086,2087,2141,2142,2185],{},"Si l'arbre est ",[603,2084,2085],{},"dégénéré"," (par exemple en insérant des clés déjà triées), il\ndevient une simple liste chaînée de hauteur ",[663,2088,2090,2108],{"className":2089},[988],[663,2091,2093],{"className":2092},[992],[994,2094,2095],{"xmlns":996},[998,2096,2097,2105],{},[1001,2098,2099,2101,2103],{},[1081,2100,1091],{},[1004,2102,1006],{},[1008,2104,822],{},[1011,2106,2107],{"encoding":1013},"n-1",[663,2109,2111,2132],{"className":2110,"ariaHidden":1019},[1018],[663,2112,2114,2118,2121,2125,2129],{"className":2113},[1023],[663,2115],{"className":2116,"style":2117},[1027],"height:0.6667em;vertical-align:-0.0833em;",[663,2119,1091],{"className":2120},[1032,1120],[663,2122],{"className":2123,"style":2124},[1724],"margin-right:0.2222em;",[663,2126,1006],{"className":2127},[2128],"mbin",[663,2130],{"className":2131,"style":2124},[1724],[663,2133,2135,2138],{"className":2134},[1023],[663,2136],{"className":2137,"style":1063},[1027],[663,2139,822],{"className":2140},[1032],", et le coût retombe à\n",[663,2143,2145,2164],{"className":2144},[988],[663,2146,2148],{"className":2147},[992],[994,2149,2150],{"xmlns":996},[998,2151,2152,2162],{},[1001,2153,2154,2156,2158,2160],{},[1081,2155,1084],{"mathvariant":1083},[1004,2157,1088],{"stretchy":1087},[1081,2159,1091],{},[1004,2161,1094],{"stretchy":1087},[1011,2163,1097],{"encoding":1013},[663,2165,2167],{"className":2166,"ariaHidden":1019},[1018],[663,2168,2170,2173,2176,2179,2182],{"className":2169},[1023],[663,2171],{"className":2172,"style":1107},[1027],[663,2174,1084],{"className":2175,"style":1112},[1032,1111],[663,2177,1088],{"className":2178},[1116],[663,2180,1091],{"className":2181},[1032,1120],[663,2183,1094],{"className":2184},[1124],". Les ABR équilibrés (AVL, rouge-noir) corrigent cela ; au\nbaccalauréat on suppose simplement que l'arbre est « raisonnablement\néquilibré ».",[594,2187,2189],{"id":2188},"pour-aller-plus-loin","Pour aller plus loin",[599,2191,2192,2193,2196],{},"La récursion sur les arbres se prête particulièrement bien à la ",[603,2194,2195],{},"preuve par\ninduction structurelle"," : on démontre une propriété pour l'arbre vide (cas de\nbase), puis pour un nœud à partir de l'hypothèse sur ses deux sous-arbres\n(hérédité). C'est la version arborescente du raisonnement par récurrence.",[2198,2199,2200],"style",{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":659,"searchDepth":681,"depth":681,"links":2202},[2203,2204,2205,2206,2207,2208,2209],{"id":596,"depth":681,"text":597},{"id":640,"depth":681,"text":641},{"id":855,"depth":681,"text":856},{"id":1150,"depth":681,"text":1151},{"id":1406,"depth":681,"text":1407},{"id":1647,"depth":681,"text":1648},{"id":2188,"depth":681,"text":2189},"Mesurer, parcourir, rechercher, insérer — la mécanique récursive des arbres binaires et le coût logarithmique de l'arbre de recherche équilibré.",null,"md",{},[2215,2219],{"slug":1129,"kind":2216,"question":1135,"choices":2217,"correct":816,"multi":2218,"explanation":659},"qcm",[822,816,828],false,{"slug":1626,"kind":2216,"question":1631,"choices":2220,"correct":822,"multi":2218,"explanation":659},[1638,1641,1644],{"title":566,"description":2210},"Dd6IS5q6738tlpeJh2MqXmK4Y091W3287CvvWGoRtYk",{"id":2224,"title":570,"bo":2225,"body":2227,"description":3463,"eval":2211,"extension":2212,"labo":2211,"meta":3464,"navigation":752,"path":571,"quizzes":3465,"readingTime":666,"seo":3470,"stem":572,"tp":2211,"__hash__":3471},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.md",[2226],"TE02",{"type":591,"value":2228,"toc":3453},[2229,2231,2241,2254,2256,2260,2263,2366,2370,2385,2592,2693,2713,2715,2734,2839,2932,3014,3018,3021,3219,3223,3238,3387,3408,3412,3425,3438,3440,3450],[594,2230,597],{"id":596},[599,2232,1651,2233,2236,2237,2240],{},[603,2234,2235],{},"graphe"," modélise des entités reliées entre elles : pages web et\nhyperliens, villes et routes, routeurs et liaisons réseau, cases d'un\nlabyrinthe et passages entre elles. Le ",[603,2238,2239],{},"parcours"," d'un graphe est\nl'opération de base : visiter chaque sommet une fois, dans un ordre choisi,\npour répondre à une question — « ce sommet est-il atteignable ? », « y a-t-il\nun cycle ? », « quel est le chemin le plus court ? ».",[599,2242,2243,2244,2247,2248,2250,2251,610],{},"Cette section suppose la familiarité avec la ",[603,2245,2246],{},"représentation"," d'un graphe\npar matrice d'adjacence ou liste de successeurs — voir le chapitre\n",[603,2249,451],{}," (TA02). Ici, on les ",[603,2252,2253],{},"explore",[636,2255],{"code":2226},[594,2257,2259],{"id":2258},"représentation-liste-de-successeurs","Représentation : liste de successeurs",[599,2261,2262],{},"On utilise la représentation la plus économique pour les graphes peu denses :\nun dictionnaire qui à chaque sommet associe la liste de ses voisins.",[654,2264,2266],{"className":656,"code":2265,"language":658,"meta":659,"style":659},"# Graphe orienté à 6 sommets — exemple du cours.\ngraphe = {\n    'A': ['B', 'C'],\n    'B': ['D'],\n    'C': ['D', 'E'],\n    'D': ['F'],\n    'E': ['F'],\n    'F': []\n}\n",[646,2267,2268,2273,2283,2302,2314,2330,2342,2353,2361],{"__ignoreMap":659},[663,2269,2270],{"class":665,"line":666},[663,2271,2272],{"class":759},"# Graphe orienté à 6 sommets — exemple du cours.\n",[663,2274,2275,2278,2280],{"class":665,"line":681},[663,2276,2277],{"class":677},"graphe ",[663,2279,694],{"class":669},[663,2281,2282],{"class":677}," {\n",[663,2284,2285,2288,2291,2294,2296,2299],{"class":665,"line":709},[663,2286,2287],{"class":1271},"    'A'",[663,2289,2290],{"class":677},": [",[663,2292,2293],{"class":1271},"'B'",[663,2295,842],{"class":677},[663,2297,2298],{"class":1271},"'C'",[663,2300,2301],{"class":677},"],\n",[663,2303,2304,2307,2309,2312],{"class":665,"line":723},[663,2305,2306],{"class":1271},"    'B'",[663,2308,2290],{"class":677},[663,2310,2311],{"class":1271},"'D'",[663,2313,2301],{"class":677},[663,2315,2316,2319,2321,2323,2325,2328],{"class":665,"line":736},[663,2317,2318],{"class":1271},"    'C'",[663,2320,2290],{"class":677},[663,2322,2311],{"class":1271},[663,2324,842],{"class":677},[663,2326,2327],{"class":1271},"'E'",[663,2329,2301],{"class":677},[663,2331,2332,2335,2337,2340],{"class":665,"line":749},[663,2333,2334],{"class":1271},"    'D'",[663,2336,2290],{"class":677},[663,2338,2339],{"class":1271},"'F'",[663,2341,2301],{"class":677},[663,2343,2344,2347,2349,2351],{"class":665,"line":756},[663,2345,2346],{"class":1271},"    'E'",[663,2348,2290],{"class":677},[663,2350,2339],{"class":1271},[663,2352,2301],{"class":677},[663,2354,2355,2358],{"class":665,"line":763},[663,2356,2357],{"class":1271},"    'F'",[663,2359,2360],{"class":677},": []\n",[663,2362,2363],{"class":665,"line":769},[663,2364,2365],{"class":677},"}\n",[594,2367,2369],{"id":2368},"parcours-en-profondeur-dfs","Parcours en profondeur (DFS)",[599,2371,2372,2373,2376,2377,2380,2381,2384],{},"Le ",[603,2374,2375],{},"parcours en profondeur"," (",[1416,2378,2379],{},"Depth-First Search",") plonge le plus loin\npossible le long d'une branche avant de remonter pour explorer une autre.\nNaturellement récursif, il peut aussi s'écrire de manière itérative avec\nune ",[603,2382,2383],{},"pile explicite",". C'est exactement la façon dont on explore un\nlabyrinthe en s'enfonçant toujours dans le couloir le plus profond — quand\non rencontre un cul-de-sac, on revient en arrière jusqu'au dernier\nembranchement non exploré.",[654,2386,2388],{"className":656,"code":2387,"language":658,"meta":659,"style":659},"def dfs(graphe, depart):\n    visite = set()\n    def explore(s):\n        visite.add(s)\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                explore(voisin)\n    explore(depart)\n    return visite\n\n# Version itérative — utile quand la récursion risque de déborder la pile.\ndef dfs_iter(graphe, depart):\n    visite = set()\n    pile = [depart]\n    while pile:\n        s = pile.pop()                # LIFO\n        if s in visite:\n            continue\n        visite.add(s)\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                pile.append(voisin)\n    return visite\n",[646,2389,2390,2400,2413,2423,2428,2442,2458,2463,2468,2475,2479,2484,2493,2503,2513,2520,2533,2544,2550,2555,2566,2579,2585],{"__ignoreMap":659},[663,2391,2392,2394,2397],{"class":665,"line":666},[663,2393,877],{"class":669},[663,2395,2396],{"class":673}," dfs",[663,2398,2399],{"class":677},"(graphe, depart):\n",[663,2401,2402,2405,2407,2410],{"class":665,"line":681},[663,2403,2404],{"class":677},"    visite ",[663,2406,694],{"class":669},[663,2408,2409],{"class":687}," set",[663,2411,2412],{"class":677},"()\n",[663,2414,2415,2417,2420],{"class":665,"line":709},[663,2416,684],{"class":669},[663,2418,2419],{"class":673}," explore",[663,2421,2422],{"class":677},"(s):\n",[663,2424,2425],{"class":665,"line":723},[663,2426,2427],{"class":677},"        visite.add(s)\n",[663,2429,2430,2433,2436,2439],{"class":665,"line":736},[663,2431,2432],{"class":669},"        for",[663,2434,2435],{"class":677}," voisin ",[663,2437,2438],{"class":669},"in",[663,2440,2441],{"class":677}," graphe[s]:\n",[663,2443,2444,2447,2449,2452,2455],{"class":665,"line":749},[663,2445,2446],{"class":669},"            if",[663,2448,2435],{"class":677},[663,2450,2451],{"class":669},"not",[663,2453,2454],{"class":669}," in",[663,2456,2457],{"class":677}," visite:\n",[663,2459,2460],{"class":665,"line":756},[663,2461,2462],{"class":677},"                explore(voisin)\n",[663,2464,2465],{"class":665,"line":763},[663,2466,2467],{"class":677},"    explore(depart)\n",[663,2469,2470,2472],{"class":665,"line":769},[663,2471,912],{"class":669},[663,2473,2474],{"class":677}," visite\n",[663,2476,2477],{"class":665,"line":775},[663,2478,753],{"emptyLinePlaceholder":752},[663,2480,2481],{"class":665,"line":781},[663,2482,2483],{"class":759},"# Version itérative — utile quand la récursion risque de déborder la pile.\n",[663,2485,2486,2488,2491],{"class":665,"line":787},[663,2487,877],{"class":669},[663,2489,2490],{"class":673}," dfs_iter",[663,2492,2399],{"class":677},[663,2494,2495,2497,2499,2501],{"class":665,"line":793},[663,2496,2404],{"class":677},[663,2498,694],{"class":669},[663,2500,2409],{"class":687},[663,2502,2412],{"class":677},[663,2504,2505,2508,2510],{"class":665,"line":810},[663,2506,2507],{"class":677},"    pile ",[663,2509,694],{"class":669},[663,2511,2512],{"class":677}," [depart]\n",[663,2514,2515,2517],{"class":665,"line":834},[663,2516,1485],{"class":669},[663,2518,2519],{"class":677}," pile:\n",[663,2521,2522,2525,2527,2530],{"class":665,"line":1371},[663,2523,2524],{"class":677},"        s ",[663,2526,694],{"class":669},[663,2528,2529],{"class":677}," pile.pop()                ",[663,2531,2532],{"class":759},"# LIFO\n",[663,2534,2535,2537,2540,2542],{"class":665,"line":1377},[663,2536,1523],{"class":669},[663,2538,2539],{"class":677}," s ",[663,2541,2438],{"class":669},[663,2543,2457],{"class":677},[663,2545,2547],{"class":665,"line":2546},18,[663,2548,2549],{"class":669},"            continue\n",[663,2551,2553],{"class":665,"line":2552},19,[663,2554,2427],{"class":677},[663,2556,2558,2560,2562,2564],{"class":665,"line":2557},20,[663,2559,2432],{"class":669},[663,2561,2435],{"class":677},[663,2563,2438],{"class":669},[663,2565,2441],{"class":677},[663,2567,2569,2571,2573,2575,2577],{"class":665,"line":2568},21,[663,2570,2446],{"class":669},[663,2572,2435],{"class":677},[663,2574,2451],{"class":669},[663,2576,2454],{"class":669},[663,2578,2457],{"class":677},[663,2580,2582],{"class":665,"line":2581},22,[663,2583,2584],{"class":677},"                pile.append(voisin)\n",[663,2586,2588,2590],{"class":665,"line":2587},23,[663,2589,912],{"class":669},[663,2591,2474],{"class":677},[599,2593,2594,2597,2598,2601,2602,2692],{},[603,2595,2596],{},"Invariant"," : à chaque appel récursif, l'ensemble ",[646,2599,2600],{},"visite"," contient tous les\nsommets atteints par la branche en cours. Tout sommet inséré sera traité\nexactement une fois — le coût total est en ",[663,2603,2605,2640],{"className":2604},[988],[663,2606,2608],{"className":2607},[992],[994,2609,2610],{"xmlns":996},[998,2611,2612,2637],{},[1001,2613,2614,2616,2618,2621,2624,2626,2628,2630,2633,2635],{},[1081,2615,1084],{"mathvariant":1083},[1004,2617,1088],{"stretchy":1087},[1081,2619,2620],{"mathvariant":1956},"∣",[1081,2622,2623],{},"V",[1081,2625,2620],{"mathvariant":1956},[1004,2627,924],{},[1081,2629,2620],{"mathvariant":1956},[1081,2631,2632],{},"E",[1081,2634,2620],{"mathvariant":1956},[1004,2636,1094],{"stretchy":1087},[1011,2638,2639],{"encoding":1013},"\\mathcal{O}(|V| + |E|)",[663,2641,2643,2673],{"className":2642,"ariaHidden":1019},[1018],[663,2644,2646,2649,2652,2655,2658,2661,2664,2667,2670],{"className":2645},[1023],[663,2647],{"className":2648,"style":1107},[1027],[663,2650,1084],{"className":2651,"style":1112},[1032,1111],[663,2653,1088],{"className":2654},[1116],[663,2656,2620],{"className":2657},[1032],[663,2659,2623],{"className":2660,"style":2124},[1032,1120],[663,2662,2620],{"className":2663},[1032],[663,2665],{"className":2666,"style":2124},[1724],[663,2668,924],{"className":2669},[2128],[663,2671],{"className":2672,"style":2124},[1724],[663,2674,2676,2679,2682,2686,2689],{"className":2675},[1023],[663,2677],{"className":2678,"style":1107},[1027],[663,2680,2620],{"className":2681},[1032],[663,2683,2632],{"className":2684,"style":2685},[1032,1120],"margin-right:0.0576em;",[663,2687,2620],{"className":2688},[1032],[663,2690,1094],{"className":2691},[1124]," : chaque\nsommet ouvert une fois, chaque arête parcourue une fois.",[1127,2694,2696,2701],{"correct":822,"slug":2695},"graphes-parcours-c1",[1131,2697,2698],{"v-slot:question":659},[599,2699,2700],{},"La version itérative de DFS utilise une…",[1131,2702,2703],{"v-slot:choices":659},[1139,2704,2705,2707,2710],{},[1142,2706,1422],{},[1142,2708,2709],{},"pile",[1142,2711,2712],{},"liste triée",[594,2714,1407],{"id":1406},[599,2716,2372,2717,2376,2720,2722,2723,2726,2727,2729,2730,2733],{},[603,2718,2719],{},"parcours en largeur",[1416,2721,1418],{},") visite les sommets par\n",[603,2724,2725],{},"ordre de distance"," au sommet de départ : tous les voisins immédiats d'abord,\npuis les voisins de voisins, etc. Il utilise une ",[603,2728,1422],{}," (FIFO). On peut le\nvisualiser comme les ",[603,2731,2732],{},"ondes concentriques"," d'un caillou jeté dans l'eau —\nchaque cercle agrandit la zone explorée d'une unité de distance.",[654,2735,2737],{"className":656,"code":2736,"language":658,"meta":659,"style":659},"from collections import deque\n\ndef bfs(graphe, depart):\n    visite = {depart}\n    file = deque([depart])\n    while file:\n        s = file.popleft()\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                visite.add(voisin)\n                file.append(voisin)\n    return visite\n",[646,2738,2739,2749,2753,2762,2771,2780,2788,2798,2808,2820,2825,2833],{"__ignoreMap":659},[663,2740,2741,2743,2745,2747],{"class":665,"line":666},[663,2742,1433],{"class":669},[663,2744,1436],{"class":677},[663,2746,1439],{"class":669},[663,2748,1442],{"class":677},[663,2750,2751],{"class":665,"line":681},[663,2752,753],{"emptyLinePlaceholder":752},[663,2754,2755,2757,2760],{"class":665,"line":709},[663,2756,877],{"class":669},[663,2758,2759],{"class":673}," bfs",[663,2761,2399],{"class":677},[663,2763,2764,2766,2768],{"class":665,"line":723},[663,2765,2404],{"class":677},[663,2767,694],{"class":669},[663,2769,2770],{"class":677}," {depart}\n",[663,2772,2773,2775,2777],{"class":665,"line":736},[663,2774,1474],{"class":1265},[663,2776,1477],{"class":669},[663,2778,2779],{"class":677}," deque([depart])\n",[663,2781,2782,2784,2786],{"class":665,"line":749},[663,2783,1485],{"class":669},[663,2785,1488],{"class":1265},[663,2787,678],{"class":677},[663,2789,2790,2792,2794,2796],{"class":665,"line":756},[663,2791,2524],{"class":677},[663,2793,694],{"class":669},[663,2795,1488],{"class":1265},[663,2797,1502],{"class":677},[663,2799,2800,2802,2804,2806],{"class":665,"line":763},[663,2801,2432],{"class":669},[663,2803,2435],{"class":677},[663,2805,2438],{"class":669},[663,2807,2441],{"class":677},[663,2809,2810,2812,2814,2816,2818],{"class":665,"line":769},[663,2811,2446],{"class":669},[663,2813,2435],{"class":677},[663,2815,2451],{"class":669},[663,2817,2454],{"class":669},[663,2819,2457],{"class":677},[663,2821,2822],{"class":665,"line":775},[663,2823,2824],{"class":677},"                visite.add(voisin)\n",[663,2826,2827,2830],{"class":665,"line":781},[663,2828,2829],{"class":1265},"                file",[663,2831,2832],{"class":677},".append(voisin)\n",[663,2834,2835,2837],{"class":665,"line":787},[663,2836,912],{"class":669},[663,2838,2474],{"class":677},[599,2840,2841,2842,2927,2928,2931],{},"Coût identique : ",[663,2843,2845,2876],{"className":2844},[988],[663,2846,2848],{"className":2847},[992],[994,2849,2850],{"xmlns":996},[998,2851,2852,2874],{},[1001,2853,2854,2856,2858,2860,2862,2864,2866,2868,2870,2872],{},[1081,2855,1084],{"mathvariant":1083},[1004,2857,1088],{"stretchy":1087},[1081,2859,2620],{"mathvariant":1956},[1081,2861,2623],{},[1081,2863,2620],{"mathvariant":1956},[1004,2865,924],{},[1081,2867,2620],{"mathvariant":1956},[1081,2869,2632],{},[1081,2871,2620],{"mathvariant":1956},[1004,2873,1094],{"stretchy":1087},[1011,2875,2639],{"encoding":1013},[663,2877,2879,2909],{"className":2878,"ariaHidden":1019},[1018],[663,2880,2882,2885,2888,2891,2894,2897,2900,2903,2906],{"className":2881},[1023],[663,2883],{"className":2884,"style":1107},[1027],[663,2886,1084],{"className":2887,"style":1112},[1032,1111],[663,2889,1088],{"className":2890},[1116],[663,2892,2620],{"className":2893},[1032],[663,2895,2623],{"className":2896,"style":2124},[1032,1120],[663,2898,2620],{"className":2899},[1032],[663,2901],{"className":2902,"style":2124},[1724],[663,2904,924],{"className":2905},[2128],[663,2907],{"className":2908,"style":2124},[1724],[663,2910,2912,2915,2918,2921,2924],{"className":2911},[1023],[663,2913],{"className":2914,"style":1107},[1027],[663,2916,2620],{"className":2917},[1032],[663,2919,2632],{"className":2920,"style":2685},[1032,1120],[663,2922,2620],{"className":2923},[1032],[663,2925,1094],{"className":2926},[1124],". La différence avec DFS est l'",[603,2929,2930],{},"ordre\nde découverte"," — BFS garantit la plus courte distance en nombre d'arêtes,\nDFS ne le garantit pas.",[1164,2933,2934,2947],{},[1167,2935,2936],{},[1170,2937,2938,2941,2944],{},[1173,2939,2940],{},"Critère",[1173,2942,2943],{},"DFS",[1173,2945,2946],{},"BFS",[1183,2948,2949,2963,2974,2988,3004],{},[1170,2950,2951,2954,2957],{},[1188,2952,2953],{},"Structure auxiliaire",[1188,2955,2956],{},"pile (ou récursion)",[1188,2958,2959,2960,1094],{},"file (",[646,2961,2962],{},"deque",[1170,2964,2965,2968,2971],{},[1188,2966,2967],{},"Ordre de visite",[1188,2969,2970],{},"profondeur d'abord",[1188,2972,2973],{},"distance croissante",[1170,2975,2976,2983,2986],{},[1188,2977,2978,2979,2982],{},"Trouve ",[603,2980,2981],{},"un"," chemin",[1188,2984,2985],{},"oui",[1188,2987,2985],{},[1170,2989,2990,2997,3000],{},[1188,2991,2992,2993,2996],{},"Trouve le ",[603,2994,2995],{},"plus court"," chemin (en arêtes)",[1188,2998,2999],{},"non",[1188,3001,3002],{},[603,3003,2985],{},[1170,3005,3006,3009,3012],{},[1188,3007,3008],{},"Coût",[1188,3010,3011],{},"$\\mathcal{O}(",[1188,3013,2623],{},[594,3015,3017],{"id":3016},"recherche-dun-chemin","Recherche d'un chemin",[599,3019,3020],{},"Adapter le BFS pour reconstruire un chemin : on mémorise le prédécesseur de\nchaque sommet à mesure qu'on le découvre, puis on remonte.",[654,3022,3024],{"className":656,"code":3023,"language":658,"meta":659,"style":659},"def chemin_bfs(graphe, depart, arrivee):\n    if depart == arrivee:\n        return [depart]\n    pred = {depart: None}\n    file = deque([depart])\n    while file:\n        s = file.popleft()\n        for voisin in graphe[s]:\n            if voisin not in pred:\n                pred[voisin] = s\n                if voisin == arrivee:        # reconstruction\n                    chemin = [arrivee]\n                    while pred[chemin[-1]] is not None:\n                        chemin.append(pred[chemin[-1]])\n                    return list(reversed(chemin))\n                file.append(voisin)\n    return None                              # arrivée inatteignable\n",[646,3025,3026,3036,3048,3054,3068,3076,3084,3094,3104,3117,3127,3142,3152,3176,3188,3204,3210],{"__ignoreMap":659},[663,3027,3028,3030,3033],{"class":665,"line":666},[663,3029,877],{"class":669},[663,3031,3032],{"class":673}," chemin_bfs",[663,3034,3035],{"class":677},"(graphe, depart, arrivee):\n",[663,3037,3038,3040,3043,3045],{"class":665,"line":681},[663,3039,888],{"class":669},[663,3041,3042],{"class":677}," depart ",[663,3044,1823],{"class":669},[663,3046,3047],{"class":677}," arrivee:\n",[663,3049,3050,3052],{"class":665,"line":709},[663,3051,904],{"class":669},[663,3053,2512],{"class":677},[663,3055,3056,3059,3061,3064,3066],{"class":665,"line":723},[663,3057,3058],{"class":677},"    pred ",[663,3060,694],{"class":669},[663,3062,3063],{"class":677}," {depart: ",[663,3065,652],{"class":687},[663,3067,2365],{"class":677},[663,3069,3070,3072,3074],{"class":665,"line":736},[663,3071,1474],{"class":1265},[663,3073,1477],{"class":669},[663,3075,2779],{"class":677},[663,3077,3078,3080,3082],{"class":665,"line":749},[663,3079,1485],{"class":669},[663,3081,1488],{"class":1265},[663,3083,678],{"class":677},[663,3085,3086,3088,3090,3092],{"class":665,"line":756},[663,3087,2524],{"class":677},[663,3089,694],{"class":669},[663,3091,1488],{"class":1265},[663,3093,1502],{"class":677},[663,3095,3096,3098,3100,3102],{"class":665,"line":763},[663,3097,2432],{"class":669},[663,3099,2435],{"class":677},[663,3101,2438],{"class":669},[663,3103,2441],{"class":677},[663,3105,3106,3108,3110,3112,3114],{"class":665,"line":769},[663,3107,2446],{"class":669},[663,3109,2435],{"class":677},[663,3111,2451],{"class":669},[663,3113,2454],{"class":669},[663,3115,3116],{"class":677}," pred:\n",[663,3118,3119,3122,3124],{"class":665,"line":775},[663,3120,3121],{"class":677},"                pred[voisin] ",[663,3123,694],{"class":669},[663,3125,3126],{"class":677}," s\n",[663,3128,3129,3132,3134,3136,3139],{"class":665,"line":781},[663,3130,3131],{"class":669},"                if",[663,3133,2435],{"class":677},[663,3135,1823],{"class":669},[663,3137,3138],{"class":677}," arrivee:        ",[663,3140,3141],{"class":759},"# reconstruction\n",[663,3143,3144,3147,3149],{"class":665,"line":787},[663,3145,3146],{"class":677},"                    chemin ",[663,3148,694],{"class":669},[663,3150,3151],{"class":677}," [arrivee]\n",[663,3153,3154,3157,3160,3163,3165,3168,3170,3172,3174],{"class":665,"line":793},[663,3155,3156],{"class":669},"                    while",[663,3158,3159],{"class":677}," pred[chemin[",[663,3161,3162],{"class":669},"-",[663,3164,822],{"class":687},[663,3166,3167],{"class":677},"]] ",[663,3169,894],{"class":669},[663,3171,1531],{"class":669},[663,3173,897],{"class":687},[663,3175,678],{"class":677},[663,3177,3178,3181,3183,3185],{"class":665,"line":810},[663,3179,3180],{"class":677},"                        chemin.append(pred[chemin[",[663,3182,3162],{"class":669},[663,3184,822],{"class":687},[663,3186,3187],{"class":677},"]])\n",[663,3189,3190,3193,3196,3198,3201],{"class":665,"line":834},[663,3191,3192],{"class":669},"                    return",[663,3194,3195],{"class":687}," list",[663,3197,1088],{"class":677},[663,3199,3200],{"class":687},"reversed",[663,3202,3203],{"class":677},"(chemin))\n",[663,3205,3206,3208],{"class":665,"line":1371},[663,3207,2829],{"class":1265},[663,3209,2832],{"class":677},[663,3211,3212,3214,3216],{"class":665,"line":1377},[663,3213,912],{"class":669},[663,3215,897],{"class":687},[663,3217,3218],{"class":759},"                              # arrivée inatteignable\n",[594,3220,3222],{"id":3221},"détection-de-cycle","Détection de cycle",[599,3224,3225,3226,3229,3230,3233,3234,3237],{},"Dans un ",[603,3227,3228],{},"graphe non orienté",", on détecte un cycle par DFS : en explorant\ndepuis un sommet ",[646,3231,3232],{},"s",", si l'on rencontre un voisin déjà visité ",[603,3235,3236],{},"autre que\ncelui d'où l'on vient",", c'est un cycle.",[654,3239,3241],{"className":656,"code":3240,"language":658,"meta":659,"style":659},"def a_un_cycle(graphe):\n    visite = set()\n    def explore(s, parent):\n        visite.add(s)\n        for voisin in graphe[s]:\n            if voisin not in visite:\n                if explore(voisin, s):\n                    return True\n            elif voisin != parent:           # déjà vu et pas le père : cycle\n                return True\n        return False\n    for s in graphe:\n        if s not in visite:\n            if explore(s, None):\n                return True\n    return False\n",[646,3242,3243,3253,3263,3272,3276,3286,3298,3305,3311,3327,3334,3340,3352,3364,3375,3381],{"__ignoreMap":659},[663,3244,3245,3247,3250],{"class":665,"line":666},[663,3246,877],{"class":669},[663,3248,3249],{"class":673}," a_un_cycle",[663,3251,3252],{"class":677},"(graphe):\n",[663,3254,3255,3257,3259,3261],{"class":665,"line":681},[663,3256,2404],{"class":677},[663,3258,694],{"class":669},[663,3260,2409],{"class":687},[663,3262,2412],{"class":677},[663,3264,3265,3267,3269],{"class":665,"line":709},[663,3266,684],{"class":669},[663,3268,2419],{"class":673},[663,3270,3271],{"class":677},"(s, parent):\n",[663,3273,3274],{"class":665,"line":723},[663,3275,2427],{"class":677},[663,3277,3278,3280,3282,3284],{"class":665,"line":736},[663,3279,2432],{"class":669},[663,3281,2435],{"class":677},[663,3283,2438],{"class":669},[663,3285,2441],{"class":677},[663,3287,3288,3290,3292,3294,3296],{"class":665,"line":749},[663,3289,2446],{"class":669},[663,3291,2435],{"class":677},[663,3293,2451],{"class":669},[663,3295,2454],{"class":669},[663,3297,2457],{"class":677},[663,3299,3300,3302],{"class":665,"line":756},[663,3301,3131],{"class":669},[663,3303,3304],{"class":677}," explore(voisin, s):\n",[663,3306,3307,3309],{"class":665,"line":763},[663,3308,3192],{"class":669},[663,3310,1831],{"class":687},[663,3312,3313,3316,3318,3321,3324],{"class":665,"line":769},[663,3314,3315],{"class":669},"            elif",[663,3317,2435],{"class":677},[663,3319,3320],{"class":669},"!=",[663,3322,3323],{"class":677}," parent:           ",[663,3325,3326],{"class":759},"# déjà vu et pas le père : cycle\n",[663,3328,3329,3332],{"class":665,"line":775},[663,3330,3331],{"class":669},"                return",[663,3333,1831],{"class":687},[663,3335,3336,3338],{"class":665,"line":781},[663,3337,904],{"class":669},[663,3339,1813],{"class":687},[663,3341,3342,3345,3347,3349],{"class":665,"line":787},[663,3343,3344],{"class":669},"    for",[663,3346,2539],{"class":677},[663,3348,2438],{"class":669},[663,3350,3351],{"class":677}," graphe:\n",[663,3353,3354,3356,3358,3360,3362],{"class":665,"line":793},[663,3355,1523],{"class":669},[663,3357,2539],{"class":677},[663,3359,2451],{"class":669},[663,3361,2454],{"class":669},[663,3363,2457],{"class":677},[663,3365,3366,3368,3371,3373],{"class":665,"line":810},[663,3367,2446],{"class":669},[663,3369,3370],{"class":677}," explore(s, ",[663,3372,652],{"class":687},[663,3374,706],{"class":677},[663,3376,3377,3379],{"class":665,"line":834},[663,3378,3331],{"class":669},[663,3380,1831],{"class":687},[663,3382,3383,3385],{"class":665,"line":1371},[663,3384,912],{"class":669},[663,3386,1813],{"class":687},[1127,3388,3390,3395],{"correct":822,"slug":3389},"graphes-parcours-c2",[1131,3391,3392],{"v-slot:question":659},[599,3393,3394],{},"DFS et BFS ont un coût en…",[1131,3396,3397],{"v-slot:choices":659},[1139,3398,3399,3402,3405],{},[1142,3400,3401],{},"O(V × E)",[1142,3403,3404],{},"O(V + E)",[1142,3406,3407],{},"O(V²)",[594,3409,3411],{"id":3410},"deux-exemples-concrets","Deux exemples concrets",[599,3413,3414,3417,3418,3421,3422,3424],{},[603,3415,3416],{},"Labyrinthe"," : chaque case est un sommet, chaque passage une arête. Un BFS\ndepuis l'entrée trouve la sortie en ",[603,3419,3420],{},"un minimum de pas"," ; un DFS explore\nrécursivement les couloirs et fonctionne très bien quand on cherche juste\n",[603,3423,2981],{}," chemin.",[599,3426,3427,3430,3431,3434,3435,610],{},[603,3428,3429],{},"Routage Internet"," : le réseau est un graphe de routeurs reliés par des\nliaisons physiques. Le protocole OSPF (vu au chapitre ",[603,3432,3433],{},"Architectures\nmatérielles, systèmes d'exploitation et réseaux",", TC03) construit la table\nde routage en cherchant les plus courts chemins — il utilise une variante\npondérée de BFS appelée ",[603,3436,3437],{},"algorithme de Dijkstra",[594,3439,2189],{"id":2188},[599,3441,3442,3443,3445,3446,3449],{},"L'",[603,3444,3437],{}," étend le BFS aux graphes ",[603,3447,3448],{},"pondérés"," (chaque\narête a un coût) : il utilise une file de priorité au lieu d'une file\nordinaire. Hors programme strict de Terminale, mais incontournable dès\nqu'on parle de plus court chemin réel — c'est lui qui fait fonctionner OSPF\net, en partie, votre GPS.",[2198,3451,3452],{},"html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":659,"searchDepth":681,"depth":681,"links":3454},[3455,3456,3457,3458,3459,3460,3461,3462],{"id":596,"depth":681,"text":597},{"id":2258,"depth":681,"text":2259},{"id":2368,"depth":681,"text":2369},{"id":1406,"depth":681,"text":1407},{"id":3016,"depth":681,"text":3017},{"id":3221,"depth":681,"text":3222},{"id":3410,"depth":681,"text":3411},{"id":2188,"depth":681,"text":2189},"Explorer un graphe en profondeur ou en largeur, détecter un cycle, chercher un chemin — du labyrinthe au routage Internet.",{},[3466,3468],{"slug":2695,"kind":2216,"question":2700,"choices":3467,"correct":822,"multi":2218,"explanation":659},[1422,2709,2712],{"slug":3389,"kind":2216,"question":3394,"choices":3469,"correct":822,"multi":2218,"explanation":659},[3401,3404,3407],{"title":570,"description":3463},"FqRBAtOWWx0MbQZMTz6CFDBBw4hV1LsJrMGJTzZW4uk",{"id":3473,"title":574,"bo":3474,"body":3476,"description":8642,"eval":2211,"extension":2212,"labo":2211,"meta":8643,"navigation":752,"path":575,"quizzes":8644,"readingTime":666,"seo":8649,"stem":576,"tp":2211,"__hash__":8650},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner.md",[3475],"TE03",{"type":591,"value":3477,"toc":8631},[3478,3480,3509,3652,3654,3658,3661,3686,3812,3976,3980,4258,4741,4748,5196,5200,5540,6649,6656,6660,6673,6919,7551,7812,7819,7840,7844,7898,7902,8036,8050,8291,8295,8298,8313,8331,8333,8628],[594,3479,597],{"id":596},[599,3481,3482,2376,3485,3488,3489,3492,3493,3496,3497,3500,3501,3504,3505,3508],{},[603,3483,3484],{},"« Diviser pour régner »",[1416,3486,3487],{},"divide and conquer",") est une stratégie\nalgorithmique générale qui structure beaucoup d'algorithmes efficaces : on\n",[603,3490,3491],{},"découpe"," un problème en sous-problèmes plus petits du ",[603,3494,3495],{},"même type",", on\nles ",[603,3498,3499],{},"résout récursivement",", puis on ",[603,3502,3503],{},"combine"," les solutions pour\nconstruire celle du problème initial. Cette méthode est l'",[603,3506,3507],{},"inverse\nnaturelle de la récursion"," : ce qui descend en récursion se reconstruit en\nremontant.",[599,3510,3511,3512,3515,3516,3544,3545,3548,3549,3651],{},"La formule latine — ",[1416,3513,3514],{},"divide et impera"," — date de l'Antiquité : Jules César\nappliquait à la conquête des Gaules la même logique que l'algorithmicien\napplique à un tableau de ",[663,3517,3519,3532],{"className":3518},[988],[663,3520,3522],{"className":3521},[992],[994,3523,3524],{"xmlns":996},[998,3525,3526,3530],{},[1001,3527,3528],{},[1081,3529,1091],{},[1011,3531,1091],{"encoding":1013},[663,3533,3535],{"className":3534,"ariaHidden":1019},[1018],[663,3536,3538,3541],{"className":3537},[1023],[663,3539],{"className":3540,"style":1681},[1027],[663,3542,1091],{"className":3543},[1032,1120]," éléments. Un ",[603,3546,3547],{},"tournoi de tennis à élimination\ndirecte"," suit le même schéma : à chaque ronde, le nombre de joueurs encore\nen lice est divisé par deux, jusqu'au vainqueur — un arbre binaire à\n",[663,3550,3552,3577],{"className":3551},[988],[663,3553,3555],{"className":3554},[992],[994,3556,3557],{"xmlns":996},[998,3558,3559,3574],{},[1001,3560,3561,3572],{},[3562,3563,3564,3570],"msub",{},[1001,3565,3566,3568],{},[1081,3567,1962],{},[1004,3569,1965],{},[1008,3571,816],{},[1081,3573,1091],{},[1011,3575,3576],{"encoding":1013},"\\log_2 n",[663,3578,3580],{"className":3579,"ariaHidden":1019},[1018],[663,3581,3583,3587,3645,3648],{"className":3582},[1023],[663,3584],{"className":3585,"style":3586},[1027],"height:0.9386em;vertical-align:-0.2441em;",[663,3588,3590,3595],{"className":3589},[1991],[663,3591,1992,3593],{"className":3592},[1991],[663,3594,1996],{"style":1995},[663,3596,3599],{"className":3597},[3598],"msupsub",[663,3600,3604,3636],{"className":3601},[3602,3603],"vlist-t","vlist-t2",[663,3605,3608,3631],{"className":3606},[3607],"vlist-r",[663,3609,3613],{"className":3610,"style":3612},[3611],"vlist","height:0.207em;",[663,3614,3616,3621],{"style":3615},"top:-2.4559em;margin-right:0.05em;",[663,3617],{"className":3618,"style":3620},[3619],"pstrut","height:2.7em;",[663,3622,3628],{"className":3623},[3624,3625,3626,3627],"sizing","reset-size6","size3","mtight",[663,3629,816],{"className":3630},[1032,3627],[663,3632,3635],{"className":3633},[3634],"vlist-s","​",[663,3637,3639],{"className":3638},[3607],[663,3640,3643],{"className":3641,"style":3642},[3611],"height:0.2441em;",[663,3644],{},[663,3646],{"className":3647,"style":2000},[1724],[663,3649,1091],{"className":3650},[1032,1120]," niveaux.",[636,3653],{"code":3475},[594,3655,3657],{"id":3656},"le-schéma-général","Le schéma général",[599,3659,3660],{},"Tout algorithme « diviser pour régner » suit trois étapes :",[3662,3663,3664,3670,3680],"ol",{},[1142,3665,3666,3669],{},[603,3667,3668],{},"Diviser"," — partitionner l'entrée en sous-entrées plus petites.",[1142,3671,3672,3675,3676,3679],{},[603,3673,3674],{},"Régner"," — résoudre chaque sous-entrée par appel récursif (ou\ndirectement si elle est suffisamment petite : c'est le ",[603,3677,3678],{},"cas de base",").",[1142,3681,3682,3685],{},[603,3683,3684],{},"Combiner"," — assembler les sous-solutions en une solution globale.",[599,3687,3688,3689,3692,3693,3722,3723,3764,3765,3811],{},"Le coût d'un tel algorithme s'exprime par une ",[603,3690,3691],{},"relation de récurrence"," :\nsi l'on découpe en ",[663,3694,3696,3710],{"className":3695},[988],[663,3697,3699],{"className":3698},[992],[994,3700,3701],{"xmlns":996},[998,3702,3703,3708],{},[1001,3704,3705],{},[1081,3706,3707],{},"a",[1011,3709,3707],{"encoding":1013},[663,3711,3713],{"className":3712,"ariaHidden":1019},[1018],[663,3714,3716,3719],{"className":3715},[1023],[663,3717],{"className":3718,"style":1681},[1027],[663,3720,3707],{"className":3721},[1032,1120]," sous-problèmes de taille ",[663,3724,3726,3746],{"className":3725},[988],[663,3727,3729],{"className":3728},[992],[994,3730,3731],{"xmlns":996},[998,3732,3733,3743],{},[1001,3734,3735,3737,3740],{},[1081,3736,1091],{},[1081,3738,3739],{"mathvariant":1956},"\u002F",[1081,3741,3742],{},"b",[1011,3744,3745],{"encoding":1013},"n\u002Fb",[663,3747,3749],{"className":3748,"ariaHidden":1019},[1018],[663,3750,3752,3755,3758,3761],{"className":3751},[1023],[663,3753],{"className":3754,"style":1107},[1027],[663,3756,1091],{"className":3757},[1032,1120],[663,3759,3739],{"className":3760},[1032],[663,3762,3742],{"className":3763},[1032,1120],", et que les étapes\ndiviser + combiner coûtent ",[663,3766,3768,3789],{"className":3767},[988],[663,3769,3771],{"className":3770},[992],[994,3772,3773],{"xmlns":996},[998,3774,3775,3786],{},[1001,3776,3777,3780,3782,3784],{},[1081,3778,3779],{},"f",[1004,3781,1088],{"stretchy":1087},[1081,3783,1091],{},[1004,3785,1094],{"stretchy":1087},[1011,3787,3788],{"encoding":1013},"f(n)",[663,3790,3792],{"className":3791,"ariaHidden":1019},[1018],[663,3793,3795,3798,3802,3805,3808],{"className":3794},[1023],[663,3796],{"className":3797,"style":1107},[1027],[663,3799,3779],{"className":3800,"style":3801},[1032,1120],"margin-right:0.1076em;",[663,3803,1088],{"className":3804},[1116],[663,3806,1091],{"className":3807},[1032,1120],[663,3809,1094],{"className":3810},[1124],", alors",[663,3813,3816],{"className":3814},[3815],"katex-display",[663,3817,3819,3872],{"className":3818},[988],[663,3820,3822],{"className":3821},[992],[994,3823,3825],{"xmlns":996,"display":3824},"block",[998,3826,3827,3869],{},[1001,3828,3829,3832,3834,3836,3838,3840,3842,3845,3847,3849,3851,3853,3855,3857,3859,3861,3863,3865,3867],{},[1081,3830,3831],{},"T",[1004,3833,1088],{"stretchy":1087},[1081,3835,1091],{},[1004,3837,1094],{"stretchy":1087},[1004,3839,694],{},[1081,3841,3707],{},[1004,3843,3844],{},"⋅",[1081,3846,3831],{},[1004,3848,1088],{"stretchy":1087},[1081,3850,1091],{},[1081,3852,3739],{"mathvariant":1956},[1081,3854,3742],{},[1004,3856,1094],{"stretchy":1087},[1004,3858,924],{},[1081,3860,3779],{},[1004,3862,1088],{"stretchy":1087},[1081,3864,1091],{},[1004,3866,1094],{"stretchy":1087},[1081,3868,610],{"mathvariant":1956},[1011,3870,3871],{"encoding":1013},"T(n) = a \\cdot T(n\u002Fb) + f(n).",[663,3873,3875,3903,3922,3955],{"className":3874,"ariaHidden":1019},[1018],[663,3876,3878,3881,3885,3888,3891,3894,3897,3900],{"className":3877},[1023],[663,3879],{"className":3880,"style":1107},[1027],[663,3882,3831],{"className":3883,"style":3884},[1032,1120],"margin-right:0.1389em;",[663,3886,1088],{"className":3887},[1116],[663,3889,1091],{"className":3890},[1032,1120],[663,3892,1094],{"className":3893},[1124],[663,3895],{"className":3896,"style":1725},[1724],[663,3898,694],{"className":3899},[1720],[663,3901],{"className":3902,"style":1725},[1724],[663,3904,3906,3910,3913,3916,3919],{"className":3905},[1023],[663,3907],{"className":3908,"style":3909},[1027],"height:0.4445em;",[663,3911,3707],{"className":3912},[1032,1120],[663,3914],{"className":3915,"style":2124},[1724],[663,3917,3844],{"className":3918},[2128],[663,3920],{"className":3921,"style":2124},[1724],[663,3923,3925,3928,3931,3934,3937,3940,3943,3946,3949,3952],{"className":3924},[1023],[663,3926],{"className":3927,"style":1107},[1027],[663,3929,3831],{"className":3930,"style":3884},[1032,1120],[663,3932,1088],{"className":3933},[1116],[663,3935,1091],{"className":3936},[1032,1120],[663,3938,3739],{"className":3939},[1032],[663,3941,3742],{"className":3942},[1032,1120],[663,3944,1094],{"className":3945},[1124],[663,3947],{"className":3948,"style":2124},[1724],[663,3950,924],{"className":3951},[2128],[663,3953],{"className":3954,"style":2124},[1724],[663,3956,3958,3961,3964,3967,3970,3973],{"className":3957},[1023],[663,3959],{"className":3960,"style":1107},[1027],[663,3962,3779],{"className":3963,"style":3801},[1032,1120],[663,3965,1088],{"className":3966},[1116],[663,3968,1091],{"className":3969},[1032,1120],[663,3971,1094],{"className":3972},[1124],[663,3974,610],{"className":3975},[1032],[594,3977,3979],{"id":3978},"lintuition-par-larbre-des-appels","L'intuition par l'arbre des appels",[599,3981,3982,3983,3986,3987,4125,4126,4154,4155,4191,4192,4229,4230,610],{},"Avant de poser le théorème maître, regardons ",[603,3984,3985],{},"ce qui se passe à l'exécution",".\nLa récurrence ",[663,3988,3990,4040],{"className":3989},[988],[663,3991,3993],{"className":3992},[992],[994,3994,3995],{"xmlns":996},[998,3996,3997,4037],{},[1001,3998,3999,4001,4003,4005,4007,4009,4011,4015,4017,4019,4021,4023,4025,4027,4029,4031,4033,4035],{},[1081,4000,3831],{},[1004,4002,1088],{"stretchy":1087},[1081,4004,1091],{},[1004,4006,1094],{"stretchy":1087},[1004,4008,694],{},[1008,4010,816],{},[4012,4013,4014],"mtext",{}," ",[1081,4016,3831],{},[1004,4018,1088],{"stretchy":1087},[1081,4020,1091],{},[1081,4022,3739],{"mathvariant":1956},[1008,4024,816],{},[1004,4026,1094],{"stretchy":1087},[1004,4028,924],{},[1081,4030,1084],{"mathvariant":1083},[1004,4032,1088],{"stretchy":1087},[1081,4034,1091],{},[1004,4036,1094],{"stretchy":1087},[1011,4038,4039],{"encoding":1013},"T(n) = 2\\,T(n\u002F2) + \\mathcal{O}(n)",[663,4041,4043,4070,4107],{"className":4042,"ariaHidden":1019},[1018],[663,4044,4046,4049,4052,4055,4058,4061,4064,4067],{"className":4045},[1023],[663,4047],{"className":4048,"style":1107},[1027],[663,4050,3831],{"className":4051,"style":3884},[1032,1120],[663,4053,1088],{"className":4054},[1116],[663,4056,1091],{"className":4057},[1032,1120],[663,4059,1094],{"className":4060},[1124],[663,4062],{"className":4063,"style":1725},[1724],[663,4065,694],{"className":4066},[1720],[663,4068],{"className":4069,"style":1725},[1724],[663,4071,4073,4076,4079,4082,4085,4088,4091,4095,4098,4101,4104],{"className":4072},[1023],[663,4074],{"className":4075,"style":1107},[1027],[663,4077,816],{"className":4078},[1032],[663,4080],{"className":4081,"style":2000},[1724],[663,4083,3831],{"className":4084,"style":3884},[1032,1120],[663,4086,1088],{"className":4087},[1116],[663,4089,1091],{"className":4090},[1032,1120],[663,4092,4094],{"className":4093},[1032],"\u002F2",[663,4096,1094],{"className":4097},[1124],[663,4099],{"className":4100,"style":2124},[1724],[663,4102,924],{"className":4103},[2128],[663,4105],{"className":4106,"style":2124},[1724],[663,4108,4110,4113,4116,4119,4122],{"className":4109},[1023],[663,4111],{"className":4112,"style":1107},[1027],[663,4114,1084],{"className":4115,"style":1112},[1032,1111],[663,4117,1088],{"className":4118},[1116],[663,4120,1091],{"className":4121},[1032,1120],[663,4123,1094],{"className":4124},[1124]," du tri fusion engendre un\narbre d'appels : à la racine, on traite un tableau de taille ",[663,4127,4129,4142],{"className":4128},[988],[663,4130,4132],{"className":4131},[992],[994,4133,4134],{"xmlns":996},[998,4135,4136,4140],{},[1001,4137,4138],{},[1081,4139,1091],{},[1011,4141,1091],{"encoding":1013},[663,4143,4145],{"className":4144,"ariaHidden":1019},[1018],[663,4146,4148,4151],{"className":4147},[1023],[663,4149],{"className":4150,"style":1681},[1027],[663,4152,1091],{"className":4153},[1032,1120]," ; au niveau\nsuivant, deux tableaux de taille ",[663,4156,4158,4176],{"className":4157},[988],[663,4159,4161],{"className":4160},[992],[994,4162,4163],{"xmlns":996},[998,4164,4165,4173],{},[1001,4166,4167,4169,4171],{},[1081,4168,1091],{},[1081,4170,3739],{"mathvariant":1956},[1008,4172,816],{},[1011,4174,4175],{"encoding":1013},"n\u002F2",[663,4177,4179],{"className":4178,"ariaHidden":1019},[1018],[663,4180,4182,4185,4188],{"className":4181},[1023],[663,4183],{"className":4184,"style":1107},[1027],[663,4186,1091],{"className":4187},[1032,1120],[663,4189,4094],{"className":4190},[1032]," ; puis quatre de taille ",[663,4193,4195,4213],{"className":4194},[988],[663,4196,4198],{"className":4197},[992],[994,4199,4200],{"xmlns":996},[998,4201,4202,4210],{},[1001,4203,4204,4206,4208],{},[1081,4205,1091],{},[1081,4207,3739],{"mathvariant":1956},[1008,4209,804],{},[1011,4211,4212],{"encoding":1013},"n\u002F4",[663,4214,4216],{"className":4215,"ariaHidden":1019},[1018],[663,4217,4219,4222,4225],{"className":4218},[1023],[663,4220],{"className":4221,"style":1107},[1027],[663,4223,1091],{"className":4224},[1032,1120],[663,4226,4228],{"className":4227},[1032],"\u002F4"," ;\njusqu'aux feuilles de taille ",[663,4231,4233,4246],{"className":4232},[988],[663,4234,4236],{"className":4235},[992],[994,4237,4238],{"xmlns":996},[998,4239,4240,4244],{},[1001,4241,4242],{},[1008,4243,822],{},[1011,4245,822],{"encoding":1013},[663,4247,4249],{"className":4248,"ariaHidden":1019},[1018],[663,4250,4252,4255],{"className":4251},[1023],[663,4253],{"className":4254,"style":1063},[1027],[663,4256,822],{"className":4257},[1032],[1139,4259,4260,4415,4530],{},[1142,4261,4262,4263,4266,4267,4310,4311,4362,4363,4414],{},"À chaque niveau, le ",[603,4264,4265],{},"travail total"," de fusion vaut ",[663,4268,4270,4289],{"className":4269},[988],[663,4271,4273],{"className":4272},[992],[994,4274,4275],{"xmlns":996},[998,4276,4277,4287],{},[1001,4278,4279,4281,4283,4285],{},[1081,4280,1084],{"mathvariant":1083},[1004,4282,1088],{"stretchy":1087},[1081,4284,1091],{},[1004,4286,1094],{"stretchy":1087},[1011,4288,1097],{"encoding":1013},[663,4290,4292],{"className":4291,"ariaHidden":1019},[1018],[663,4293,4295,4298,4301,4304,4307],{"className":4294},[1023],[663,4296],{"className":4297,"style":1107},[1027],[663,4299,1084],{"className":4300,"style":1112},[1032,1111],[663,4302,1088],{"className":4303},[1116],[663,4305,1091],{"className":4306},[1032,1120],[663,4308,1094],{"className":4309},[1124]," —\ndeux moitiés à ",[663,4312,4314,4338],{"className":4313},[988],[663,4315,4317],{"className":4316},[992],[994,4318,4319],{"xmlns":996},[998,4320,4321,4335],{},[1001,4322,4323,4325,4327,4329,4331,4333],{},[1081,4324,1084],{"mathvariant":1083},[1004,4326,1088],{"stretchy":1087},[1081,4328,1091],{},[1081,4330,3739],{"mathvariant":1956},[1008,4332,816],{},[1004,4334,1094],{"stretchy":1087},[1011,4336,4337],{"encoding":1013},"\\mathcal{O}(n\u002F2)",[663,4339,4341],{"className":4340,"ariaHidden":1019},[1018],[663,4342,4344,4347,4350,4353,4356,4359],{"className":4343},[1023],[663,4345],{"className":4346,"style":1107},[1027],[663,4348,1084],{"className":4349,"style":1112},[1032,1111],[663,4351,1088],{"className":4352},[1116],[663,4354,1091],{"className":4355},[1032,1120],[663,4357,4094],{"className":4358},[1032],[663,4360,1094],{"className":4361},[1124],", quatre quarts à ",[663,4364,4366,4390],{"className":4365},[988],[663,4367,4369],{"className":4368},[992],[994,4370,4371],{"xmlns":996},[998,4372,4373,4387],{},[1001,4374,4375,4377,4379,4381,4383,4385],{},[1081,4376,1084],{"mathvariant":1083},[1004,4378,1088],{"stretchy":1087},[1081,4380,1091],{},[1081,4382,3739],{"mathvariant":1956},[1008,4384,804],{},[1004,4386,1094],{"stretchy":1087},[1011,4388,4389],{"encoding":1013},"\\mathcal{O}(n\u002F4)",[663,4391,4393],{"className":4392,"ariaHidden":1019},[1018],[663,4394,4396,4399,4402,4405,4408,4411],{"className":4395},[1023],[663,4397],{"className":4398,"style":1107},[1027],[663,4400,1084],{"className":4401,"style":1112},[1032,1111],[663,4403,1088],{"className":4404},[1116],[663,4406,1091],{"className":4407},[1032,1120],[663,4409,4228],{"className":4410},[1032],[663,4412,1094],{"className":4413},[1124],", etc.,\nsomme stable.",[1142,4416,4417,4418,4501,4502,610],{},"Le nombre de niveaux est ",[663,4419,4421,4444],{"className":4420},[988],[663,4422,4424],{"className":4423},[992],[994,4425,4426],{"xmlns":996},[998,4427,4428,4442],{},[1001,4429,4430,4440],{},[3562,4431,4432,4438],{},[1001,4433,4434,4436],{},[1081,4435,1962],{},[1004,4437,1965],{},[1008,4439,816],{},[1081,4441,1091],{},[1011,4443,3576],{"encoding":1013},[663,4445,4447],{"className":4446,"ariaHidden":1019},[1018],[663,4448,4450,4453,4495,4498],{"className":4449},[1023],[663,4451],{"className":4452,"style":3586},[1027],[663,4454,4456,4461],{"className":4455},[1991],[663,4457,1992,4459],{"className":4458},[1991],[663,4460,1996],{"style":1995},[663,4462,4464],{"className":4463},[3598],[663,4465,4467,4487],{"className":4466},[3602,3603],[663,4468,4470,4484],{"className":4469},[3607],[663,4471,4473],{"className":4472,"style":3612},[3611],[663,4474,4475,4478],{"style":3615},[663,4476],{"className":4477,"style":3620},[3619],[663,4479,4481],{"className":4480},[3624,3625,3626,3627],[663,4482,816],{"className":4483},[1032,3627],[663,4485,3635],{"className":4486},[3634],[663,4488,4490],{"className":4489},[3607],[663,4491,4493],{"className":4492,"style":3642},[3611],[663,4494],{},[663,4496],{"className":4497,"style":2000},[1724],[663,4499,1091],{"className":4500},[1032,1120],", puisqu'à chaque descente on divise la\ntaille par ",[663,4503,4505,4518],{"className":4504},[988],[663,4506,4508],{"className":4507},[992],[994,4509,4510],{"xmlns":996},[998,4511,4512,4516],{},[1001,4513,4514],{},[1008,4515,816],{},[1011,4517,816],{"encoding":1013},[663,4519,4521],{"className":4520,"ariaHidden":1019},[1018],[663,4522,4524,4527],{"className":4523},[1023],[663,4525],{"className":4526,"style":1063},[1027],[663,4528,816],{"className":4529},[1032],[1142,4531,4532,4535,4536,4619,4620,4676,4677,610],{},[603,4533,4534],{},"Coût total"," : ",[663,4537,4539,4562],{"className":4538},[988],[663,4540,4542],{"className":4541},[992],[994,4543,4544],{"xmlns":996},[998,4545,4546,4560],{},[1001,4547,4548,4558],{},[3562,4549,4550,4556],{},[1001,4551,4552,4554],{},[1081,4553,1962],{},[1004,4555,1965],{},[1008,4557,816],{},[1081,4559,1091],{},[1011,4561,3576],{"encoding":1013},[663,4563,4565],{"className":4564,"ariaHidden":1019},[1018],[663,4566,4568,4571,4613,4616],{"className":4567},[1023],[663,4569],{"className":4570,"style":3586},[1027],[663,4572,4574,4579],{"className":4573},[1991],[663,4575,1992,4577],{"className":4576},[1991],[663,4578,1996],{"style":1995},[663,4580,4582],{"className":4581},[3598],[663,4583,4585,4605],{"className":4584},[3602,3603],[663,4586,4588,4602],{"className":4587},[3607],[663,4589,4591],{"className":4590,"style":3612},[3611],[663,4592,4593,4596],{"style":3615},[663,4594],{"className":4595,"style":3620},[3619],[663,4597,4599],{"className":4598},[3624,3625,3626,3627],[663,4600,816],{"className":4601},[1032,3627],[663,4603,3635],{"className":4604},[3634],[663,4606,4608],{"className":4607},[3607],[663,4609,4611],{"className":4610,"style":3642},[3611],[663,4612],{},[663,4614],{"className":4615,"style":2000},[1724],[663,4617,1091],{"className":4618},[1032,1120]," niveaux ",[663,4621,4623,4649],{"className":4622},[988],[663,4624,4626],{"className":4625},[992],[994,4627,4628],{"xmlns":996},[998,4629,4630,4646],{},[1001,4631,4632,4635,4638,4640,4642,4644],{},[1004,4633,4634],{},"×",[4012,4636,4637],{}," ",[1081,4639,1084],{"mathvariant":1083},[1004,4641,1088],{"stretchy":1087},[1081,4643,1091],{},[1004,4645,1094],{"stretchy":1087},[1011,4647,4648],{"encoding":1013},"\\times\\ \\mathcal{O}(n)",[663,4650,4652],{"className":4651,"ariaHidden":1019},[1018],[663,4653,4655,4658,4661,4664,4667,4670,4673],{"className":4654},[1023],[663,4656],{"className":4657,"style":1107},[1027],[663,4659,4634],{"className":4660},[1032],[663,4662,4637],{"className":4663},[1724],[663,4665,1084],{"className":4666,"style":1112},[1032,1111],[663,4668,1088],{"className":4669},[1116],[663,4671,1091],{"className":4672},[1032,1120],[663,4674,1094],{"className":4675},[1124]," par niveau, soit\n",[663,4678,4680,4706],{"className":4679},[988],[663,4681,4683],{"className":4682},[992],[994,4684,4685],{"xmlns":996},[998,4686,4687,4703],{},[1001,4688,4689,4691,4693,4695,4697,4699,4701],{},[1081,4690,1084],{"mathvariant":1083},[1004,4692,1088],{"stretchy":1087},[1081,4694,1091],{},[1081,4696,1962],{},[1004,4698,1965],{},[1081,4700,1091],{},[1004,4702,1094],{"stretchy":1087},[1011,4704,4705],{"encoding":1013},"\\mathcal{O}(n \\log n)",[663,4707,4709],{"className":4708,"ariaHidden":1019},[1018],[663,4710,4712,4715,4718,4721,4724,4727,4732,4735,4738],{"className":4711},[1023],[663,4713],{"className":4714,"style":1107},[1027],[663,4716,1084],{"className":4717,"style":1112},[1032,1111],[663,4719,1088],{"className":4720},[1116],[663,4722,1091],{"className":4723},[1032,1120],[663,4725],{"className":4726,"style":2000},[1724],[663,4728,1992,4730],{"className":4729},[1991],[663,4731,1996],{"style":1995},[663,4733],{"className":4734,"style":2000},[1724],[663,4736,1091],{"className":4737},[1032,1120],[663,4739,1094],{"className":4740},[1124],[599,4742,4743,4744,4747],{},"Cette intuition est ",[603,4745,4746],{},"plus importante à retenir que la table abstraite ci-dessous"," :\nelle donne la bonne lecture mentale, le théorème maître en est la version\nmécanique.",[1391,4749,4750,4753,5128],{},[599,4751,4752],{},"Trois notations asymptotiques apparaissent dans la suite :",[1139,4754,4755,4819,4882],{},[1142,4756,4757,4814,4815,4818],{},[663,4758,4760,4786],{"className":4759},[988],[663,4761,4763],{"className":4762},[992],[994,4764,4765],{"xmlns":996},[998,4766,4767,4783],{},[1001,4768,4769,4771,4773,4775,4777,4779,4781],{},[1081,4770,1084],{"mathvariant":1083},[1004,4772,1088],{"stretchy":1087},[1081,4774,3779],{},[1004,4776,1088],{"stretchy":1087},[1081,4778,1091],{},[1004,4780,1094],{"stretchy":1087},[1004,4782,1094],{"stretchy":1087},[1011,4784,4785],{"encoding":1013},"\\mathcal{O}(f(n))",[663,4787,4789],{"className":4788,"ariaHidden":1019},[1018],[663,4790,4792,4795,4798,4801,4804,4807,4810],{"className":4791},[1023],[663,4793],{"className":4794,"style":1107},[1027],[663,4796,1084],{"className":4797,"style":1112},[1032,1111],[663,4799,1088],{"className":4800},[1116],[663,4802,3779],{"className":4803,"style":3801},[1032,1120],[663,4805,1088],{"className":4806},[1116],[663,4808,1091],{"className":4809},[1032,1120],[663,4811,4813],{"className":4812},[1124],"))"," — ",[603,4816,4817],{},"majoration"," (au plus), déjà connue de Première.",[1142,4820,4821,4814,4878,4881],{},[663,4822,4824,4851],{"className":4823},[988],[663,4825,4827],{"className":4826},[992],[994,4828,4829],{"xmlns":996},[998,4830,4831,4848],{},[1001,4832,4833,4836,4838,4840,4842,4844,4846],{},[1081,4834,4835],{"mathvariant":1956},"Ω",[1004,4837,1088],{"stretchy":1087},[1081,4839,3779],{},[1004,4841,1088],{"stretchy":1087},[1081,4843,1091],{},[1004,4845,1094],{"stretchy":1087},[1004,4847,1094],{"stretchy":1087},[1011,4849,4850],{"encoding":1013},"\\Omega(f(n))",[663,4852,4854],{"className":4853,"ariaHidden":1019},[1018],[663,4855,4857,4860,4863,4866,4869,4872,4875],{"className":4856},[1023],[663,4858],{"className":4859,"style":1107},[1027],[663,4861,4835],{"className":4862},[1032],[663,4864,1088],{"className":4865},[1116],[663,4867,3779],{"className":4868,"style":3801},[1032,1120],[663,4870,1088],{"className":4871},[1116],[663,4873,1091],{"className":4874},[1032,1120],[663,4876,4813],{"className":4877},[1124],[603,4879,4880],{},"minoration"," (au moins).",[1142,4883,4884,4814,4940,4943,4944,2011,5038,3679],{},[663,4885,4887,4913],{"className":4886},[988],[663,4888,4890],{"className":4889},[992],[994,4891,4892],{"xmlns":996},[998,4893,4894,4910],{},[1001,4895,4896,4898,4900,4902,4904,4906,4908],{},[1081,4897,1957],{"mathvariant":1956},[1004,4899,1088],{"stretchy":1087},[1081,4901,3779],{},[1004,4903,1088],{"stretchy":1087},[1081,4905,1091],{},[1004,4907,1094],{"stretchy":1087},[1004,4909,1094],{"stretchy":1087},[1011,4911,4912],{"encoding":1013},"\\Theta(f(n))",[663,4914,4916],{"className":4915,"ariaHidden":1019},[1018],[663,4917,4919,4922,4925,4928,4931,4934,4937],{"className":4918},[1023],[663,4920],{"className":4921,"style":1107},[1027],[663,4923,1957],{"className":4924},[1032],[663,4926,1088],{"className":4927},[1116],[663,4929,3779],{"className":4930,"style":3801},[1032,1120],[663,4932,1088],{"className":4933},[1116],[663,4935,1091],{"className":4936},[1032,1120],[663,4938,4813],{"className":4939},[1124],[603,4941,4942],{},"encadrement strict"," (entre ",[663,4945,4947,4974],{"className":4946},[988],[663,4948,4950],{"className":4949},[992],[994,4951,4952],{"xmlns":996},[998,4953,4954,4971],{},[1001,4955,4956,4963,4965,4967,4969],{},[3562,4957,4958,4961],{},[1081,4959,4960],{},"c",[1008,4962,822],{},[1081,4964,3779],{},[1004,4966,1088],{"stretchy":1087},[1081,4968,1091],{},[1004,4970,1094],{"stretchy":1087},[1011,4972,4973],{"encoding":1013},"c_1 f(n)",[663,4975,4977],{"className":4976,"ariaHidden":1019},[1018],[663,4978,4980,4983,5026,5029,5032,5035],{"className":4979},[1023],[663,4981],{"className":4982,"style":1107},[1027],[663,4984,4986,4989],{"className":4985},[1032],[663,4987,4960],{"className":4988},[1032,1120],[663,4990,4992],{"className":4991},[3598],[663,4993,4995,5017],{"className":4994},[3602,3603],[663,4996,4998,5014],{"className":4997},[3607],[663,4999,5002],{"className":5000,"style":5001},[3611],"height:0.3011em;",[663,5003,5005,5008],{"style":5004},"top:-2.55em;margin-left:0em;margin-right:0.05em;",[663,5006],{"className":5007,"style":3620},[3619],[663,5009,5011],{"className":5010},[3624,3625,3626,3627],[663,5012,822],{"className":5013},[1032,3627],[663,5015,3635],{"className":5016},[3634],[663,5018,5020],{"className":5019},[3607],[663,5021,5024],{"className":5022,"style":5023},[3611],"height:0.15em;",[663,5025],{},[663,5027,3779],{"className":5028,"style":3801},[1032,1120],[663,5030,1088],{"className":5031},[1116],[663,5033,1091],{"className":5034},[1032,1120],[663,5036,1094],{"className":5037},[1124],[663,5039,5041,5067],{"className":5040},[988],[663,5042,5044],{"className":5043},[992],[994,5045,5046],{"xmlns":996},[998,5047,5048,5064],{},[1001,5049,5050,5056,5058,5060,5062],{},[3562,5051,5052,5054],{},[1081,5053,4960],{},[1008,5055,816],{},[1081,5057,3779],{},[1004,5059,1088],{"stretchy":1087},[1081,5061,1091],{},[1004,5063,1094],{"stretchy":1087},[1011,5065,5066],{"encoding":1013},"c_2 f(n)",[663,5068,5070],{"className":5069,"ariaHidden":1019},[1018],[663,5071,5073,5076,5116,5119,5122,5125],{"className":5072},[1023],[663,5074],{"className":5075,"style":1107},[1027],[663,5077,5079,5082],{"className":5078},[1032],[663,5080,4960],{"className":5081},[1032,1120],[663,5083,5085],{"className":5084},[3598],[663,5086,5088,5108],{"className":5087},[3602,3603],[663,5089,5091,5105],{"className":5090},[3607],[663,5092,5094],{"className":5093,"style":5001},[3611],[663,5095,5096,5099],{"style":5004},[663,5097],{"className":5098,"style":3620},[3619],[663,5100,5102],{"className":5101},[3624,3625,3626,3627],[663,5103,816],{"className":5104},[1032,3627],[663,5106,3635],{"className":5107},[3634],[663,5109,5111],{"className":5110},[3607],[663,5112,5114],{"className":5113,"style":5023},[3611],[663,5115],{},[663,5117,3779],{"className":5118,"style":3801},[1032,1120],[663,5120,1088],{"className":5121},[1116],[663,5123,1091],{"className":5124},[1032,1120],[663,5126,1094],{"className":5127},[1124],[599,5129,5130,5131,5195],{},"En pratique, dans ce chapitre, ",[663,5132,5134,5160],{"className":5133},[988],[663,5135,5137],{"className":5136},[992],[994,5138,5139],{"xmlns":996},[998,5140,5141,5157],{},[1001,5142,5143,5145,5147,5149,5151,5153,5155],{},[1081,5144,1957],{"mathvariant":1956},[1004,5146,1088],{"stretchy":1087},[1081,5148,1091],{},[1081,5150,1962],{},[1004,5152,1965],{},[1081,5154,1091],{},[1004,5156,1094],{"stretchy":1087},[1011,5158,5159],{"encoding":1013},"\\Theta(n \\log n)",[663,5161,5163],{"className":5162,"ariaHidden":1019},[1018],[663,5164,5166,5169,5172,5175,5178,5181,5186,5189,5192],{"className":5165},[1023],[663,5167],{"className":5168,"style":1107},[1027],[663,5170,1957],{"className":5171},[1032],[663,5173,1088],{"className":5174},[1116],[663,5176,1091],{"className":5177},[1032,1120],[663,5179],{"className":5180,"style":2000},[1724],[663,5182,1992,5184],{"className":5183},[1991],[663,5185,1996],{"style":1995},[663,5187],{"className":5188,"style":2000},[1724],[663,5190,1091],{"className":5191},[1032,1120],[663,5193,1094],{"className":5194},[1124]," signifie « ni plus, ni\nmoins, en ordre de grandeur ».",[594,5197,5199],{"id":5198},"le-théorème-maître-forme-appliquée","Le théorème maître (forme appliquée)",[599,5201,2372,5202,5205,5206,5356,5357,5400,5401,5539],{},[603,5203,5204],{},"théorème maître"," donne directement la complexité asymptotique de\n",[663,5207,5209,5257],{"className":5208},[988],[663,5210,5212],{"className":5211},[992],[994,5213,5214],{"xmlns":996},[998,5215,5216,5254],{},[1001,5217,5218,5220,5222,5224,5226,5228,5230,5232,5234,5236,5238,5240,5242,5244,5246,5248,5250,5252],{},[1081,5219,3831],{},[1004,5221,1088],{"stretchy":1087},[1081,5223,1091],{},[1004,5225,1094],{"stretchy":1087},[1004,5227,694],{},[1081,5229,3707],{},[1004,5231,3844],{},[1081,5233,3831],{},[1004,5235,1088],{"stretchy":1087},[1081,5237,1091],{},[1081,5239,3739],{"mathvariant":1956},[1081,5241,3742],{},[1004,5243,1094],{"stretchy":1087},[1004,5245,924],{},[1081,5247,3779],{},[1004,5249,1088],{"stretchy":1087},[1081,5251,1091],{},[1004,5253,1094],{"stretchy":1087},[1011,5255,5256],{"encoding":1013},"T(n) = a \\cdot T(n\u002Fb) + f(n)",[663,5258,5260,5287,5305,5338],{"className":5259,"ariaHidden":1019},[1018],[663,5261,5263,5266,5269,5272,5275,5278,5281,5284],{"className":5262},[1023],[663,5264],{"className":5265,"style":1107},[1027],[663,5267,3831],{"className":5268,"style":3884},[1032,1120],[663,5270,1088],{"className":5271},[1116],[663,5273,1091],{"className":5274},[1032,1120],[663,5276,1094],{"className":5277},[1124],[663,5279],{"className":5280,"style":1725},[1724],[663,5282,694],{"className":5283},[1720],[663,5285],{"className":5286,"style":1725},[1724],[663,5288,5290,5293,5296,5299,5302],{"className":5289},[1023],[663,5291],{"className":5292,"style":3909},[1027],[663,5294,3707],{"className":5295},[1032,1120],[663,5297],{"className":5298,"style":2124},[1724],[663,5300,3844],{"className":5301},[2128],[663,5303],{"className":5304,"style":2124},[1724],[663,5306,5308,5311,5314,5317,5320,5323,5326,5329,5332,5335],{"className":5307},[1023],[663,5309],{"className":5310,"style":1107},[1027],[663,5312,3831],{"className":5313,"style":3884},[1032,1120],[663,5315,1088],{"className":5316},[1116],[663,5318,1091],{"className":5319},[1032,1120],[663,5321,3739],{"className":5322},[1032],[663,5324,3742],{"className":5325},[1032,1120],[663,5327,1094],{"className":5328},[1124],[663,5330],{"className":5331,"style":2124},[1724],[663,5333,924],{"className":5334},[2128],[663,5336],{"className":5337,"style":2124},[1724],[663,5339,5341,5344,5347,5350,5353],{"className":5340},[1023],[663,5342],{"className":5343,"style":1107},[1027],[663,5345,3779],{"className":5346,"style":3801},[1032,1120],[663,5348,1088],{"className":5349},[1116],[663,5351,1091],{"className":5352},[1032,1120],[663,5354,1094],{"className":5355},[1124]," en comparant ",[663,5358,5360,5379],{"className":5359},[988],[663,5361,5363],{"className":5362},[992],[994,5364,5365],{"xmlns":996},[998,5366,5367,5377],{},[1001,5368,5369,5371,5373,5375],{},[1081,5370,3779],{},[1004,5372,1088],{"stretchy":1087},[1081,5374,1091],{},[1004,5376,1094],{"stretchy":1087},[1011,5378,3788],{"encoding":1013},[663,5380,5382],{"className":5381,"ariaHidden":1019},[1018],[663,5383,5385,5388,5391,5394,5397],{"className":5384},[1023],[663,5386],{"className":5387,"style":1107},[1027],[663,5389,3779],{"className":5390,"style":3801},[1032,1120],[663,5392,1088],{"className":5393},[1116],[663,5395,1091],{"className":5396},[1032,1120],[663,5398,1094],{"className":5399},[1124]," à ",[663,5402,5404,5435],{"className":5403},[988],[663,5405,5407],{"className":5406},[992],[994,5408,5409],{"xmlns":996},[998,5410,5411,5432],{},[1001,5412,5413],{},[5414,5415,5416,5418],"msup",{},[1081,5417,1091],{},[1001,5419,5420,5430],{},[3562,5421,5422,5428],{},[1001,5423,5424,5426],{},[1081,5425,1962],{},[1004,5427,1965],{},[1081,5429,3742],{},[1081,5431,3707],{},[1011,5433,5434],{"encoding":1013},"n^{\\log_b a}",[663,5436,5438],{"className":5437,"ariaHidden":1019},[1018],[663,5439,5441,5445],{"className":5440},[1023],[663,5442],{"className":5443,"style":5444},[1027],"height:0.8491em;",[663,5446,5448,5451],{"className":5447},[1032],[663,5449,1091],{"className":5450},[1032,1120],[663,5452,5454],{"className":5453},[3598],[663,5455,5457],{"className":5456},[3602],[663,5458,5460],{"className":5459},[3607],[663,5461,5463],{"className":5462,"style":5444},[3611],[663,5464,5466,5469],{"style":5465},"top:-3.063em;margin-right:0.05em;",[663,5467],{"className":5468,"style":3620},[3619],[663,5470,5472],{"className":5471},[3624,3625,3626,3627],[663,5473,5475,5532,5536],{"className":5474},[1032,3627],[663,5476,5478,5492],{"className":5477},[1991,3627],[663,5479,5481,5485,5489],{"className":5480},[1991,3627],[663,5482,5484],{"className":5483},[3627],"l",[663,5486,5488],{"className":5487},[3627],"o",[663,5490,1996],{"className":5491,"style":1995},[3627],[663,5493,5495],{"className":5494},[3598],[663,5496,5498,5523],{"className":5497},[3602,3603],[663,5499,5501,5520],{"className":5500},[3607],[663,5502,5505],{"className":5503,"style":5504},[3611],"height:0.2302em;",[663,5506,5508,5512],{"style":5507},"top:-2.2341em;margin-right:0.0714em;",[663,5509],{"className":5510,"style":5511},[3619],"height:2.5em;",[663,5513,5517],{"className":5514},[3624,5515,5516,3627],"reset-size3","size1",[663,5518,3742],{"className":5519},[1032,1120,3627],[663,5521,3635],{"className":5522},[3634],[663,5524,5526],{"className":5525},[3607],[663,5527,5530],{"className":5528,"style":5529},[3611],"height:0.2659em;",[663,5531],{},[663,5533],{"className":5534,"style":5535},[1724,3627],"margin-right:0.1952em;",[663,5537,3707],{"className":5538},[1032,1120,3627]," :",[1164,5541,5542,5598],{},[1167,5543,5544],{},[1170,5545,5546,5549,5595],{},[1173,5547,5548],{},"Cas",[1173,5550,5551,5552],{},"Condition sur ",[663,5553,5555,5574],{"className":5554},[988],[663,5556,5558],{"className":5557},[992],[994,5559,5560],{"xmlns":996},[998,5561,5562,5572],{},[1001,5563,5564,5566,5568,5570],{},[1081,5565,3779],{},[1004,5567,1088],{"stretchy":1087},[1081,5569,1091],{},[1004,5571,1094],{"stretchy":1087},[1011,5573,3788],{"encoding":1013},[663,5575,5577],{"className":5576,"ariaHidden":1019},[1018],[663,5578,5580,5583,5586,5589,5592],{"className":5579},[1023],[663,5581],{"className":5582,"style":1107},[1027],[663,5584,3779],{"className":5585,"style":3801},[1032,1120],[663,5587,1088],{"className":5588},[1116],[663,5590,1091],{"className":5591},[1032,1120],[663,5593,1094],{"className":5594},[1124],[1173,5596,5597],{},"Conclusion",[1183,5599,5600,5976,6360],{},[1170,5601,5602,5604,5796],{},[1188,5603,822],{},[1188,5605,5606],{},[663,5607,5609,5660],{"className":5608},[988],[663,5610,5612],{"className":5611},[992],[994,5613,5614],{"xmlns":996},[998,5615,5616,5657],{},[1001,5617,5618,5620,5622,5624,5626,5628,5630,5632,5655],{},[1081,5619,3779],{},[1004,5621,1088],{"stretchy":1087},[1081,5623,1091],{},[1004,5625,1094],{"stretchy":1087},[1004,5627,694],{},[1081,5629,1084],{},[1004,5631,1088],{"stretchy":1087},[5414,5633,5634,5636],{},[1081,5635,1091],{},[1001,5637,5638,5648,5650,5652],{},[3562,5639,5640,5646],{},[1001,5641,5642,5644],{},[1081,5643,1962],{},[1004,5645,1965],{},[1081,5647,3742],{},[1081,5649,3707],{},[1004,5651,1006],{},[1081,5653,5654],{},"ε",[1004,5656,1094],{"stretchy":1087},[1011,5658,5659],{"encoding":1013},"f(n) = O(n^{\\log_b a - \\varepsilon})",[663,5661,5663,5690],{"className":5662,"ariaHidden":1019},[1018],[663,5664,5666,5669,5672,5675,5678,5681,5684,5687],{"className":5665},[1023],[663,5667],{"className":5668,"style":1107},[1027],[663,5670,3779],{"className":5671,"style":3801},[1032,1120],[663,5673,1088],{"className":5674},[1116],[663,5676,1091],{"className":5677},[1032,1120],[663,5679,1094],{"className":5680},[1124],[663,5682],{"className":5683,"style":1725},[1724],[663,5685,694],{"className":5686},[1720],[663,5688],{"className":5689,"style":1725},[1724],[663,5691,5693,5697,5700,5703,5793],{"className":5692},[1023],[663,5694],{"className":5695,"style":5696},[1027],"height:1.0991em;vertical-align:-0.25em;",[663,5698,1084],{"className":5699,"style":1112},[1032,1120],[663,5701,1088],{"className":5702},[1116],[663,5704,5706,5709],{"className":5705},[1032],[663,5707,1091],{"className":5708},[1032,1120],[663,5710,5712],{"className":5711},[3598],[663,5713,5715],{"className":5714},[3602],[663,5716,5718],{"className":5717},[3607],[663,5719,5721],{"className":5720,"style":5444},[3611],[663,5722,5723,5726],{"style":5465},[663,5724],{"className":5725,"style":3620},[3619],[663,5727,5729],{"className":5728},[3624,3625,3626,3627],[663,5730,5732,5781,5784,5787,5790],{"className":5731},[1032,3627],[663,5733,5735,5747],{"className":5734},[1991,3627],[663,5736,5738,5741,5744],{"className":5737},[1991,3627],[663,5739,5484],{"className":5740},[3627],[663,5742,5488],{"className":5743},[3627],[663,5745,1996],{"className":5746,"style":1995},[3627],[663,5748,5750],{"className":5749},[3598],[663,5751,5753,5773],{"className":5752},[3602,3603],[663,5754,5756,5770],{"className":5755},[3607],[663,5757,5759],{"className":5758,"style":5504},[3611],[663,5760,5761,5764],{"style":5507},[663,5762],{"className":5763,"style":5511},[3619],[663,5765,5767],{"className":5766},[3624,5515,5516,3627],[663,5768,3742],{"className":5769},[1032,1120,3627],[663,5771,3635],{"className":5772},[3634],[663,5774,5776],{"className":5775},[3607],[663,5777,5779],{"className":5778,"style":5529},[3611],[663,5780],{},[663,5782],{"className":5783,"style":5535},[1724,3627],[663,5785,3707],{"className":5786},[1032,1120,3627],[663,5788,1006],{"className":5789},[2128,3627],[663,5791,5654],{"className":5792},[1032,1120,3627],[663,5794,1094],{"className":5795},[1124],[1188,5797,5798],{},[663,5799,5801,5847],{"className":5800},[988],[663,5802,5804],{"className":5803},[992],[994,5805,5806],{"xmlns":996},[998,5807,5808,5844],{},[1001,5809,5810,5812,5814,5816,5818,5820,5822,5824,5842],{},[1081,5811,3831],{},[1004,5813,1088],{"stretchy":1087},[1081,5815,1091],{},[1004,5817,1094],{"stretchy":1087},[1004,5819,694],{},[1081,5821,1957],{"mathvariant":1956},[1004,5823,1088],{"stretchy":1087},[5414,5825,5826,5828],{},[1081,5827,1091],{},[1001,5829,5830,5840],{},[3562,5831,5832,5838],{},[1001,5833,5834,5836],{},[1081,5835,1962],{},[1004,5837,1965],{},[1081,5839,3742],{},[1081,5841,3707],{},[1004,5843,1094],{"stretchy":1087},[1011,5845,5846],{"encoding":1013},"T(n) = \\Theta(n^{\\log_b a})",[663,5848,5850,5877],{"className":5849,"ariaHidden":1019},[1018],[663,5851,5853,5856,5859,5862,5865,5868,5871,5874],{"className":5852},[1023],[663,5854],{"className":5855,"style":1107},[1027],[663,5857,3831],{"className":5858,"style":3884},[1032,1120],[663,5860,1088],{"className":5861},[1116],[663,5863,1091],{"className":5864},[1032,1120],[663,5866,1094],{"className":5867},[1124],[663,5869],{"className":5870,"style":1725},[1724],[663,5872,694],{"className":5873},[1720],[663,5875],{"className":5876,"style":1725},[1724],[663,5878,5880,5883,5886,5889,5973],{"className":5879},[1023],[663,5881],{"className":5882,"style":5696},[1027],[663,5884,1957],{"className":5885},[1032],[663,5887,1088],{"className":5888},[1116],[663,5890,5892,5895],{"className":5891},[1032],[663,5893,1091],{"className":5894},[1032,1120],[663,5896,5898],{"className":5897},[3598],[663,5899,5901],{"className":5900},[3602],[663,5902,5904],{"className":5903},[3607],[663,5905,5907],{"className":5906,"style":5444},[3611],[663,5908,5909,5912],{"style":5465},[663,5910],{"className":5911,"style":3620},[3619],[663,5913,5915],{"className":5914},[3624,3625,3626,3627],[663,5916,5918,5967,5970],{"className":5917},[1032,3627],[663,5919,5921,5933],{"className":5920},[1991,3627],[663,5922,5924,5927,5930],{"className":5923},[1991,3627],[663,5925,5484],{"className":5926},[3627],[663,5928,5488],{"className":5929},[3627],[663,5931,1996],{"className":5932,"style":1995},[3627],[663,5934,5936],{"className":5935},[3598],[663,5937,5939,5959],{"className":5938},[3602,3603],[663,5940,5942,5956],{"className":5941},[3607],[663,5943,5945],{"className":5944,"style":5504},[3611],[663,5946,5947,5950],{"style":5507},[663,5948],{"className":5949,"style":5511},[3619],[663,5951,5953],{"className":5952},[3624,5515,5516,3627],[663,5954,3742],{"className":5955},[1032,1120,3627],[663,5957,3635],{"className":5958},[3634],[663,5960,5962],{"className":5961},[3607],[663,5963,5965],{"className":5964,"style":5529},[3611],[663,5966],{},[663,5968],{"className":5969,"style":5535},[1724,3627],[663,5971,3707],{"className":5972},[1032,1120,3627],[663,5974,1094],{"className":5975},[1124],[1170,5977,5978,5980,6160],{},[1188,5979,816],{},[1188,5981,5982],{},[663,5983,5985,6031],{"className":5984},[988],[663,5986,5988],{"className":5987},[992],[994,5989,5990],{"xmlns":996},[998,5991,5992,6028],{},[1001,5993,5994,5996,5998,6000,6002,6004,6006,6008,6026],{},[1081,5995,3779],{},[1004,5997,1088],{"stretchy":1087},[1081,5999,1091],{},[1004,6001,1094],{"stretchy":1087},[1004,6003,694],{},[1081,6005,1957],{"mathvariant":1956},[1004,6007,1088],{"stretchy":1087},[5414,6009,6010,6012],{},[1081,6011,1091],{},[1001,6013,6014,6024],{},[3562,6015,6016,6022],{},[1001,6017,6018,6020],{},[1081,6019,1962],{},[1004,6021,1965],{},[1081,6023,3742],{},[1081,6025,3707],{},[1004,6027,1094],{"stretchy":1087},[1011,6029,6030],{"encoding":1013},"f(n) = \\Theta(n^{\\log_b a})",[663,6032,6034,6061],{"className":6033,"ariaHidden":1019},[1018],[663,6035,6037,6040,6043,6046,6049,6052,6055,6058],{"className":6036},[1023],[663,6038],{"className":6039,"style":1107},[1027],[663,6041,3779],{"className":6042,"style":3801},[1032,1120],[663,6044,1088],{"className":6045},[1116],[663,6047,1091],{"className":6048},[1032,1120],[663,6050,1094],{"className":6051},[1124],[663,6053],{"className":6054,"style":1725},[1724],[663,6056,694],{"className":6057},[1720],[663,6059],{"className":6060,"style":1725},[1724],[663,6062,6064,6067,6070,6073,6157],{"className":6063},[1023],[663,6065],{"className":6066,"style":5696},[1027],[663,6068,1957],{"className":6069},[1032],[663,6071,1088],{"className":6072},[1116],[663,6074,6076,6079],{"className":6075},[1032],[663,6077,1091],{"className":6078},[1032,1120],[663,6080,6082],{"className":6081},[3598],[663,6083,6085],{"className":6084},[3602],[663,6086,6088],{"className":6087},[3607],[663,6089,6091],{"className":6090,"style":5444},[3611],[663,6092,6093,6096],{"style":5465},[663,6094],{"className":6095,"style":3620},[3619],[663,6097,6099],{"className":6098},[3624,3625,3626,3627],[663,6100,6102,6151,6154],{"className":6101},[1032,3627],[663,6103,6105,6117],{"className":6104},[1991,3627],[663,6106,6108,6111,6114],{"className":6107},[1991,3627],[663,6109,5484],{"className":6110},[3627],[663,6112,5488],{"className":6113},[3627],[663,6115,1996],{"className":6116,"style":1995},[3627],[663,6118,6120],{"className":6119},[3598],[663,6121,6123,6143],{"className":6122},[3602,3603],[663,6124,6126,6140],{"className":6125},[3607],[663,6127,6129],{"className":6128,"style":5504},[3611],[663,6130,6131,6134],{"style":5507},[663,6132],{"className":6133,"style":5511},[3619],[663,6135,6137],{"className":6136},[3624,5515,5516,3627],[663,6138,3742],{"className":6139},[1032,1120,3627],[663,6141,3635],{"className":6142},[3634],[663,6144,6146],{"className":6145},[3607],[663,6147,6149],{"className":6148,"style":5529},[3611],[663,6150],{},[663,6152],{"className":6153,"style":5535},[1724,3627],[663,6155,3707],{"className":6156},[1032,1120,3627],[663,6158,1094],{"className":6159},[1124],[1188,6161,6162],{},[663,6163,6165,6217],{"className":6164},[988],[663,6166,6168],{"className":6167},[992],[994,6169,6170],{"xmlns":996},[998,6171,6172,6214],{},[1001,6173,6174,6176,6178,6180,6182,6184,6186,6188,6206,6208,6210,6212],{},[1081,6175,3831],{},[1004,6177,1088],{"stretchy":1087},[1081,6179,1091],{},[1004,6181,1094],{"stretchy":1087},[1004,6183,694],{},[1081,6185,1957],{"mathvariant":1956},[1004,6187,1088],{"stretchy":1087},[5414,6189,6190,6192],{},[1081,6191,1091],{},[1001,6193,6194,6204],{},[3562,6195,6196,6202],{},[1001,6197,6198,6200],{},[1081,6199,1962],{},[1004,6201,1965],{},[1081,6203,3742],{},[1081,6205,3707],{},[1081,6207,1962],{},[1004,6209,1965],{},[1081,6211,1091],{},[1004,6213,1094],{"stretchy":1087},[1011,6215,6216],{"encoding":1013},"T(n) = \\Theta(n^{\\log_b a} \\log n)",[663,6218,6220,6247],{"className":6219,"ariaHidden":1019},[1018],[663,6221,6223,6226,6229,6232,6235,6238,6241,6244],{"className":6222},[1023],[663,6224],{"className":6225,"style":1107},[1027],[663,6227,3831],{"className":6228,"style":3884},[1032,1120],[663,6230,1088],{"className":6231},[1116],[663,6233,1091],{"className":6234},[1032,1120],[663,6236,1094],{"className":6237},[1124],[663,6239],{"className":6240,"style":1725},[1724],[663,6242,694],{"className":6243},[1720],[663,6245],{"className":6246,"style":1725},[1724],[663,6248,6250,6253,6256,6259,6343,6346,6351,6354,6357],{"className":6249},[1023],[663,6251],{"className":6252,"style":5696},[1027],[663,6254,1957],{"className":6255},[1032],[663,6257,1088],{"className":6258},[1116],[663,6260,6262,6265],{"className":6261},[1032],[663,6263,1091],{"className":6264},[1032,1120],[663,6266,6268],{"className":6267},[3598],[663,6269,6271],{"className":6270},[3602],[663,6272,6274],{"className":6273},[3607],[663,6275,6277],{"className":6276,"style":5444},[3611],[663,6278,6279,6282],{"style":5465},[663,6280],{"className":6281,"style":3620},[3619],[663,6283,6285],{"className":6284},[3624,3625,3626,3627],[663,6286,6288,6337,6340],{"className":6287},[1032,3627],[663,6289,6291,6303],{"className":6290},[1991,3627],[663,6292,6294,6297,6300],{"className":6293},[1991,3627],[663,6295,5484],{"className":6296},[3627],[663,6298,5488],{"className":6299},[3627],[663,6301,1996],{"className":6302,"style":1995},[3627],[663,6304,6306],{"className":6305},[3598],[663,6307,6309,6329],{"className":6308},[3602,3603],[663,6310,6312,6326],{"className":6311},[3607],[663,6313,6315],{"className":6314,"style":5504},[3611],[663,6316,6317,6320],{"style":5507},[663,6318],{"className":6319,"style":5511},[3619],[663,6321,6323],{"className":6322},[3624,5515,5516,3627],[663,6324,3742],{"className":6325},[1032,1120,3627],[663,6327,3635],{"className":6328},[3634],[663,6330,6332],{"className":6331},[3607],[663,6333,6335],{"className":6334,"style":5529},[3611],[663,6336],{},[663,6338],{"className":6339,"style":5535},[1724,3627],[663,6341,3707],{"className":6342},[1032,1120,3627],[663,6344],{"className":6345,"style":2000},[1724],[663,6347,1992,6349],{"className":6348},[1991],[663,6350,1996],{"style":1995},[663,6352],{"className":6353,"style":2000},[1724],[663,6355,1091],{"className":6356},[1032,1120],[663,6358,1094],{"className":6359},[1124],[1170,6361,6362,6364,6554],{},[1188,6363,828],{},[1188,6365,6366],{},[663,6367,6369,6419],{"className":6368},[988],[663,6370,6372],{"className":6371},[992],[994,6373,6374],{"xmlns":996},[998,6375,6376,6416],{},[1001,6377,6378,6380,6382,6384,6386,6388,6390,6392,6414],{},[1081,6379,3779],{},[1004,6381,1088],{"stretchy":1087},[1081,6383,1091],{},[1004,6385,1094],{"stretchy":1087},[1004,6387,694],{},[1081,6389,4835],{"mathvariant":1956},[1004,6391,1088],{"stretchy":1087},[5414,6393,6394,6396],{},[1081,6395,1091],{},[1001,6397,6398,6408,6410,6412],{},[3562,6399,6400,6406],{},[1001,6401,6402,6404],{},[1081,6403,1962],{},[1004,6405,1965],{},[1081,6407,3742],{},[1081,6409,3707],{},[1004,6411,924],{},[1081,6413,5654],{},[1004,6415,1094],{"stretchy":1087},[1011,6417,6418],{"encoding":1013},"f(n) = \\Omega(n^{\\log_b a + \\varepsilon})",[663,6420,6422,6449],{"className":6421,"ariaHidden":1019},[1018],[663,6423,6425,6428,6431,6434,6437,6440,6443,6446],{"className":6424},[1023],[663,6426],{"className":6427,"style":1107},[1027],[663,6429,3779],{"className":6430,"style":3801},[1032,1120],[663,6432,1088],{"className":6433},[1116],[663,6435,1091],{"className":6436},[1032,1120],[663,6438,1094],{"className":6439},[1124],[663,6441],{"className":6442,"style":1725},[1724],[663,6444,694],{"className":6445},[1720],[663,6447],{"className":6448,"style":1725},[1724],[663,6450,6452,6455,6458,6461,6551],{"className":6451},[1023],[663,6453],{"className":6454,"style":5696},[1027],[663,6456,4835],{"className":6457},[1032],[663,6459,1088],{"className":6460},[1116],[663,6462,6464,6467],{"className":6463},[1032],[663,6465,1091],{"className":6466},[1032,1120],[663,6468,6470],{"className":6469},[3598],[663,6471,6473],{"className":6472},[3602],[663,6474,6476],{"className":6475},[3607],[663,6477,6479],{"className":6478,"style":5444},[3611],[663,6480,6481,6484],{"style":5465},[663,6482],{"className":6483,"style":3620},[3619],[663,6485,6487],{"className":6486},[3624,3625,3626,3627],[663,6488,6490,6539,6542,6545,6548],{"className":6489},[1032,3627],[663,6491,6493,6505],{"className":6492},[1991,3627],[663,6494,6496,6499,6502],{"className":6495},[1991,3627],[663,6497,5484],{"className":6498},[3627],[663,6500,5488],{"className":6501},[3627],[663,6503,1996],{"className":6504,"style":1995},[3627],[663,6506,6508],{"className":6507},[3598],[663,6509,6511,6531],{"className":6510},[3602,3603],[663,6512,6514,6528],{"className":6513},[3607],[663,6515,6517],{"className":6516,"style":5504},[3611],[663,6518,6519,6522],{"style":5507},[663,6520],{"className":6521,"style":5511},[3619],[663,6523,6525],{"className":6524},[3624,5515,5516,3627],[663,6526,3742],{"className":6527},[1032,1120,3627],[663,6529,3635],{"className":6530},[3634],[663,6532,6534],{"className":6533},[3607],[663,6535,6537],{"className":6536,"style":5529},[3611],[663,6538],{},[663,6540],{"className":6541,"style":5535},[1724,3627],[663,6543,3707],{"className":6544},[1032,1120,3627],[663,6546,924],{"className":6547},[2128,3627],[663,6549,5654],{"className":6550},[1032,1120,3627],[663,6552,1094],{"className":6553},[1124],[1188,6555,6556],{},[663,6557,6559,6595],{"className":6558},[988],[663,6560,6562],{"className":6561},[992],[994,6563,6564],{"xmlns":996},[998,6565,6566,6592],{},[1001,6567,6568,6570,6572,6574,6576,6578,6580,6582,6584,6586,6588,6590],{},[1081,6569,3831],{},[1004,6571,1088],{"stretchy":1087},[1081,6573,1091],{},[1004,6575,1094],{"stretchy":1087},[1004,6577,694],{},[1081,6579,1957],{"mathvariant":1956},[1004,6581,1088],{"stretchy":1087},[1081,6583,3779],{},[1004,6585,1088],{"stretchy":1087},[1081,6587,1091],{},[1004,6589,1094],{"stretchy":1087},[1004,6591,1094],{"stretchy":1087},[1011,6593,6594],{"encoding":1013},"T(n) = \\Theta(f(n))",[663,6596,6598,6625],{"className":6597,"ariaHidden":1019},[1018],[663,6599,6601,6604,6607,6610,6613,6616,6619,6622],{"className":6600},[1023],[663,6602],{"className":6603,"style":1107},[1027],[663,6605,3831],{"className":6606,"style":3884},[1032,1120],[663,6608,1088],{"className":6609},[1116],[663,6611,1091],{"className":6612},[1032,1120],[663,6614,1094],{"className":6615},[1124],[663,6617],{"className":6618,"style":1725},[1724],[663,6620,694],{"className":6621},[1720],[663,6623],{"className":6624,"style":1725},[1724],[663,6626,6628,6631,6634,6637,6640,6643,6646],{"className":6627},[1023],[663,6629],{"className":6630,"style":1107},[1027],[663,6632,1957],{"className":6633},[1032],[663,6635,1088],{"className":6636},[1116],[663,6638,3779],{"className":6639,"style":3801},[1032,1120],[663,6641,1088],{"className":6642},[1116],[663,6644,1091],{"className":6645},[1032,1120],[663,6647,4813],{"className":6648},[1124],[599,6650,6651,6652,6655],{},"En pratique, ",[603,6653,6654],{},"seul le cas 2 est à retenir"," : il couvre le tri fusion et la\nrecherche dichotomique, et c'est celui que vous rencontrerez au baccalauréat.\nLes cas 1 et 3 relèvent de la culture générale — utiles si vous croisez des\nrécurrences plus exotiques en études supérieures, hors-programme strict ici.",[594,6657,6659],{"id":6658},"tri-fusion-lexemple-canonique","Tri fusion — l'exemple canonique",[599,6661,2372,6662,2376,6665,6668,6669,6672],{},[603,6663,6664],{},"tri fusion",[1416,6666,6667],{},"merge sort",") est l'exemple type. On divise le tableau\nen deux moitiés, on trie chacune récursivement, puis on ",[603,6670,6671],{},"fusionne"," les\ndeux moitiés triées en une seule.",[654,6674,6676],{"className":656,"code":6675,"language":658,"meta":659,"style":659},"def fusionner(gauche, droite):\n    \"\"\"Fusionne deux listes déjà triées en une liste triée.\"\"\"\n    resultat = []\n    i, j = 0, 0\n    while i \u003C len(gauche) and j \u003C len(droite):\n        if gauche[i] \u003C= droite[j]:\n            resultat.append(gauche[i]); i += 1\n        else:\n            resultat.append(droite[j]); j += 1\n    resultat.extend(gauche[i:])\n    resultat.extend(droite[j:])\n    return resultat\n\ndef tri_fusion(tab):\n    n = len(tab)\n    if n \u003C= 1:                          # cas de base\n        return tab\n    milieu = n \u002F\u002F 2\n    g = tri_fusion(tab[:milieu])        # régner sur la gauche\n    d = tri_fusion(tab[milieu:])        # régner sur la droite\n    return fusionner(g, d)              # combiner\n\n# >>> tri_fusion([5, 2, 8, 1, 4, 7, 3, 6])\n# [1, 2, 3, 4, 5, 6, 7, 8]\n",[646,6677,6678,6688,6693,6703,6718,6746,6759,6770,6777,6786,6791,6796,6803,6807,6817,6829,6846,6853,6868,6881,6894,6904,6908,6913],{"__ignoreMap":659},[663,6679,6680,6682,6685],{"class":665,"line":666},[663,6681,877],{"class":669},[663,6683,6684],{"class":673}," fusionner",[663,6686,6687],{"class":677},"(gauche, droite):\n",[663,6689,6690],{"class":665,"line":681},[663,6691,6692],{"class":1271},"    \"\"\"Fusionne deux listes déjà triées en une liste triée.\"\"\"\n",[663,6694,6695,6698,6700],{"class":665,"line":709},[663,6696,6697],{"class":677},"    resultat ",[663,6699,694],{"class":669},[663,6701,6702],{"class":677}," []\n",[663,6704,6705,6708,6710,6713,6715],{"class":665,"line":723},[663,6706,6707],{"class":677},"    i, j ",[663,6709,694],{"class":669},[663,6711,6712],{"class":687}," 0",[663,6714,842],{"class":677},[663,6716,6717],{"class":687},"0\n",[663,6719,6720,6722,6725,6727,6730,6733,6736,6739,6741,6743],{"class":665,"line":736},[663,6721,1485],{"class":669},[663,6723,6724],{"class":677}," i ",[663,6726,1701],{"class":669},[663,6728,6729],{"class":687}," len",[663,6731,6732],{"class":677},"(gauche) ",[663,6734,6735],{"class":669},"and",[663,6737,6738],{"class":677}," j ",[663,6740,1701],{"class":669},[663,6742,6729],{"class":687},[663,6744,6745],{"class":677},"(droite):\n",[663,6747,6748,6750,6753,6756],{"class":665,"line":749},[663,6749,1523],{"class":669},[663,6751,6752],{"class":677}," gauche[i] ",[663,6754,6755],{"class":669},"\u003C=",[663,6757,6758],{"class":677}," droite[j]:\n",[663,6760,6761,6764,6767],{"class":665,"line":756},[663,6762,6763],{"class":677},"            resultat.append(gauche[i]); i ",[663,6765,6766],{"class":669},"+=",[663,6768,6769],{"class":687}," 1\n",[663,6771,6772,6775],{"class":665,"line":763},[663,6773,6774],{"class":669},"        else",[663,6776,678],{"class":677},[663,6778,6779,6782,6784],{"class":665,"line":769},[663,6780,6781],{"class":677},"            resultat.append(droite[j]); j ",[663,6783,6766],{"class":669},[663,6785,6769],{"class":687},[663,6787,6788],{"class":665,"line":775},[663,6789,6790],{"class":677},"    resultat.extend(gauche[i:])\n",[663,6792,6793],{"class":665,"line":781},[663,6794,6795],{"class":677},"    resultat.extend(droite[j:])\n",[663,6797,6798,6800],{"class":665,"line":787},[663,6799,912],{"class":669},[663,6801,6802],{"class":677}," resultat\n",[663,6804,6805],{"class":665,"line":793},[663,6806,753],{"emptyLinePlaceholder":752},[663,6808,6809,6811,6814],{"class":665,"line":810},[663,6810,877],{"class":669},[663,6812,6813],{"class":673}," tri_fusion",[663,6815,6816],{"class":677},"(tab):\n",[663,6818,6819,6822,6824,6826],{"class":665,"line":834},[663,6820,6821],{"class":677},"    n ",[663,6823,694],{"class":669},[663,6825,6729],{"class":687},[663,6827,6828],{"class":677},"(tab)\n",[663,6830,6831,6833,6836,6838,6840,6843],{"class":665,"line":1371},[663,6832,888],{"class":669},[663,6834,6835],{"class":677}," n ",[663,6837,6755],{"class":669},[663,6839,915],{"class":687},[663,6841,6842],{"class":677},":                          ",[663,6844,6845],{"class":759},"# cas de base\n",[663,6847,6848,6850],{"class":665,"line":1377},[663,6849,904],{"class":669},[663,6851,6852],{"class":677}," tab\n",[663,6854,6855,6858,6860,6862,6865],{"class":665,"line":2546},[663,6856,6857],{"class":677},"    milieu ",[663,6859,694],{"class":669},[663,6861,6835],{"class":677},[663,6863,6864],{"class":669},"\u002F\u002F",[663,6866,6867],{"class":687}," 2\n",[663,6869,6870,6873,6875,6878],{"class":665,"line":2552},[663,6871,6872],{"class":677},"    g ",[663,6874,694],{"class":669},[663,6876,6877],{"class":677}," tri_fusion(tab[:milieu])        ",[663,6879,6880],{"class":759},"# régner sur la gauche\n",[663,6882,6883,6886,6888,6891],{"class":665,"line":2557},[663,6884,6885],{"class":677},"    d ",[663,6887,694],{"class":669},[663,6889,6890],{"class":677}," tri_fusion(tab[milieu:])        ",[663,6892,6893],{"class":759},"# régner sur la droite\n",[663,6895,6896,6898,6901],{"class":665,"line":2568},[663,6897,912],{"class":669},[663,6899,6900],{"class":677}," fusionner(g, d)              ",[663,6902,6903],{"class":759},"# combiner\n",[663,6905,6906],{"class":665,"line":2581},[663,6907,753],{"emptyLinePlaceholder":752},[663,6909,6910],{"class":665,"line":2587},[663,6911,6912],{"class":759},"# >>> tri_fusion([5, 2, 8, 1, 4, 7, 3, 6])\n",[663,6914,6916],{"class":665,"line":6915},24,[663,6917,6918],{"class":759},"# [1, 2, 3, 4, 5, 6, 7, 8]\n",[599,6920,6921,6924,6925,3722,6976,7011,7012,7064,7065,7146,7147,7468,7469,7550],{},[603,6922,6923],{},"Analyse de coût"," : on découpe en ",[663,6926,6928,6946],{"className":6927},[988],[663,6929,6931],{"className":6930},[992],[994,6932,6933],{"xmlns":996},[998,6934,6935,6943],{},[1001,6936,6937,6939,6941],{},[1081,6938,3707],{},[1004,6940,694],{},[1008,6942,816],{},[1011,6944,6945],{"encoding":1013},"a = 2",[663,6947,6949,6967],{"className":6948,"ariaHidden":1019},[1018],[663,6950,6952,6955,6958,6961,6964],{"className":6951},[1023],[663,6953],{"className":6954,"style":1681},[1027],[663,6956,3707],{"className":6957},[1032,1120],[663,6959],{"className":6960,"style":1725},[1724],[663,6962,694],{"className":6963},[1720],[663,6965],{"className":6966,"style":1725},[1724],[663,6968,6970,6973],{"className":6969},[1023],[663,6971],{"className":6972,"style":1063},[1027],[663,6974,816],{"className":6975},[1032],[663,6977,6979,6996],{"className":6978},[988],[663,6980,6982],{"className":6981},[992],[994,6983,6984],{"xmlns":996},[998,6985,6986,6994],{},[1001,6987,6988,6990,6992],{},[1081,6989,1091],{},[1081,6991,3739],{"mathvariant":1956},[1008,6993,816],{},[1011,6995,4175],{"encoding":1013},[663,6997,6999],{"className":6998,"ariaHidden":1019},[1018],[663,7000,7002,7005,7008],{"className":7001},[1023],[663,7003],{"className":7004,"style":1107},[1027],[663,7006,1091],{"className":7007},[1032,1120],[663,7009,4094],{"className":7010},[1032],"\n(donc ",[663,7013,7015,7033],{"className":7014},[988],[663,7016,7018],{"className":7017},[992],[994,7019,7020],{"xmlns":996},[998,7021,7022,7030],{},[1001,7023,7024,7026,7028],{},[1081,7025,3742],{},[1004,7027,694],{},[1008,7029,816],{},[1011,7031,7032],{"encoding":1013},"b = 2",[663,7034,7036,7055],{"className":7035,"ariaHidden":1019},[1018],[663,7037,7039,7043,7046,7049,7052],{"className":7038},[1023],[663,7040],{"className":7041,"style":7042},[1027],"height:0.6944em;",[663,7044,3742],{"className":7045},[1032,1120],[663,7047],{"className":7048,"style":1725},[1724],[663,7050,694],{"className":7051},[1720],[663,7053],{"className":7054,"style":1725},[1724],[663,7056,7058,7061],{"className":7057},[1023],[663,7059],{"className":7060,"style":1063},[1027],[663,7062,816],{"className":7063},[1032],"), la fusion linéaire coûte ",[663,7066,7068,7098],{"className":7067},[988],[663,7069,7071],{"className":7070},[992],[994,7072,7073],{"xmlns":996},[998,7074,7075,7095],{},[1001,7076,7077,7079,7081,7083,7085,7087,7089,7091,7093],{},[1081,7078,3779],{},[1004,7080,1088],{"stretchy":1087},[1081,7082,1091],{},[1004,7084,1094],{"stretchy":1087},[1004,7086,694],{},[1081,7088,1084],{"mathvariant":1083},[1004,7090,1088],{"stretchy":1087},[1081,7092,1091],{},[1004,7094,1094],{"stretchy":1087},[1011,7096,7097],{"encoding":1013},"f(n) = \\mathcal{O}(n)",[663,7099,7101,7128],{"className":7100,"ariaHidden":1019},[1018],[663,7102,7104,7107,7110,7113,7116,7119,7122,7125],{"className":7103},[1023],[663,7105],{"className":7106,"style":1107},[1027],[663,7108,3779],{"className":7109,"style":3801},[1032,1120],[663,7111,1088],{"className":7112},[1116],[663,7114,1091],{"className":7115},[1032,1120],[663,7117,1094],{"className":7118},[1124],[663,7120],{"className":7121,"style":1725},[1724],[663,7123,694],{"className":7124},[1720],[663,7126],{"className":7127,"style":1725},[1724],[663,7129,7131,7134,7137,7140,7143],{"className":7130},[1023],[663,7132],{"className":7133,"style":1107},[1027],[663,7135,1084],{"className":7136,"style":1112},[1032,1111],[663,7138,1088],{"className":7139},[1116],[663,7141,1091],{"className":7142},[1032,1120],[663,7144,1094],{"className":7145},[1124],". On a\n",[663,7148,7150,7212],{"className":7149},[988],[663,7151,7153],{"className":7152},[992],[994,7154,7155],{"xmlns":996},[998,7156,7157,7209],{},[1001,7158,7159,7177,7179,7197,7199,7205,7207],{},[5414,7160,7161,7163],{},[1081,7162,1091],{},[1001,7164,7165,7175],{},[3562,7166,7167,7173],{},[1001,7168,7169,7171],{},[1081,7170,1962],{},[1004,7172,1965],{},[1081,7174,3742],{},[1081,7176,3707],{},[1004,7178,694],{},[5414,7180,7181,7183],{},[1081,7182,1091],{},[1001,7184,7185,7195],{},[3562,7186,7187,7193],{},[1001,7188,7189,7191],{},[1081,7190,1962],{},[1004,7192,1965],{},[1008,7194,816],{},[1008,7196,816],{},[1004,7198,694],{},[5414,7200,7201,7203],{},[1081,7202,1091],{},[1008,7204,822],{},[1004,7206,694],{},[1081,7208,1091],{},[1011,7210,7211],{"encoding":1013},"n^{\\log_b a} = n^{\\log_2 2} = n^1 = n",[663,7213,7215,7314,7414,7459],{"className":7214,"ariaHidden":1019},[1018],[663,7216,7218,7221,7305,7308,7311],{"className":7217},[1023],[663,7219],{"className":7220,"style":5444},[1027],[663,7222,7224,7227],{"className":7223},[1032],[663,7225,1091],{"className":7226},[1032,1120],[663,7228,7230],{"className":7229},[3598],[663,7231,7233],{"className":7232},[3602],[663,7234,7236],{"className":7235},[3607],[663,7237,7239],{"className":7238,"style":5444},[3611],[663,7240,7241,7244],{"style":5465},[663,7242],{"className":7243,"style":3620},[3619],[663,7245,7247],{"className":7246},[3624,3625,3626,3627],[663,7248,7250,7299,7302],{"className":7249},[1032,3627],[663,7251,7253,7265],{"className":7252},[1991,3627],[663,7254,7256,7259,7262],{"className":7255},[1991,3627],[663,7257,5484],{"className":7258},[3627],[663,7260,5488],{"className":7261},[3627],[663,7263,1996],{"className":7264,"style":1995},[3627],[663,7266,7268],{"className":7267},[3598],[663,7269,7271,7291],{"className":7270},[3602,3603],[663,7272,7274,7288],{"className":7273},[3607],[663,7275,7277],{"className":7276,"style":5504},[3611],[663,7278,7279,7282],{"style":5507},[663,7280],{"className":7281,"style":5511},[3619],[663,7283,7285],{"className":7284},[3624,5515,5516,3627],[663,7286,3742],{"className":7287},[1032,1120,3627],[663,7289,3635],{"className":7290},[3634],[663,7292,7294],{"className":7293},[3607],[663,7295,7297],{"className":7296,"style":5529},[3611],[663,7298],{},[663,7300],{"className":7301,"style":5535},[1724,3627],[663,7303,3707],{"className":7304},[1032,1120,3627],[663,7306],{"className":7307,"style":1725},[1724],[663,7309,694],{"className":7310},[1720],[663,7312],{"className":7313,"style":1725},[1724],[663,7315,7317,7320,7405,7408,7411],{"className":7316},[1023],[663,7318],{"className":7319,"style":5444},[1027],[663,7321,7323,7326],{"className":7322},[1032],[663,7324,1091],{"className":7325},[1032,1120],[663,7327,7329],{"className":7328},[3598],[663,7330,7332],{"className":7331},[3602],[663,7333,7335],{"className":7334},[3607],[663,7336,7338],{"className":7337,"style":5444},[3611],[663,7339,7340,7343],{"style":5465},[663,7341],{"className":7342,"style":3620},[3619],[663,7344,7346],{"className":7345},[3624,3625,3626,3627],[663,7347,7349,7399,7402],{"className":7348},[1032,3627],[663,7350,7352,7364],{"className":7351},[1991,3627],[663,7353,7355,7358,7361],{"className":7354},[1991,3627],[663,7356,5484],{"className":7357},[3627],[663,7359,5488],{"className":7360},[3627],[663,7362,1996],{"className":7363,"style":1995},[3627],[663,7365,7367],{"className":7366},[3598],[663,7368,7370,7391],{"className":7369},[3602,3603],[663,7371,7373,7388],{"className":7372},[3607],[663,7374,7377],{"className":7375,"style":7376},[3611],"height:0.1944em;",[663,7378,7379,7382],{"style":5507},[663,7380],{"className":7381,"style":5511},[3619],[663,7383,7385],{"className":7384},[3624,5515,5516,3627],[663,7386,816],{"className":7387},[1032,3627],[663,7389,3635],{"className":7390},[3634],[663,7392,7394],{"className":7393},[3607],[663,7395,7397],{"className":7396,"style":5529},[3611],[663,7398],{},[663,7400],{"className":7401,"style":5535},[1724,3627],[663,7403,816],{"className":7404},[1032,3627],[663,7406],{"className":7407,"style":1725},[1724],[663,7409,694],{"className":7410},[1720],[663,7412],{"className":7413,"style":1725},[1724],[663,7415,7417,7421,7450,7453,7456],{"className":7416},[1023],[663,7418],{"className":7419,"style":7420},[1027],"height:0.8141em;",[663,7422,7424,7427],{"className":7423},[1032],[663,7425,1091],{"className":7426},[1032,1120],[663,7428,7430],{"className":7429},[3598],[663,7431,7433],{"className":7432},[3602],[663,7434,7436],{"className":7435},[3607],[663,7437,7439],{"className":7438,"style":7420},[3611],[663,7440,7441,7444],{"style":5465},[663,7442],{"className":7443,"style":3620},[3619],[663,7445,7447],{"className":7446},[3624,3625,3626,3627],[663,7448,822],{"className":7449},[1032,3627],[663,7451],{"className":7452,"style":1725},[1724],[663,7454,694],{"className":7455},[1720],[663,7457],{"className":7458,"style":1725},[1724],[663,7460,7462,7465],{"className":7461},[1023],[663,7463],{"className":7464,"style":1681},[1027],[663,7466,1091],{"className":7467},[1032,1120],", donc ",[663,7470,7472,7502],{"className":7471},[988],[663,7473,7475],{"className":7474},[992],[994,7476,7477],{"xmlns":996},[998,7478,7479,7499],{},[1001,7480,7481,7483,7485,7487,7489,7491,7493,7495,7497],{},[1081,7482,3779],{},[1004,7484,1088],{"stretchy":1087},[1081,7486,1091],{},[1004,7488,1094],{"stretchy":1087},[1004,7490,694],{},[1081,7492,1957],{"mathvariant":1956},[1004,7494,1088],{"stretchy":1087},[1081,7496,1091],{},[1004,7498,1094],{"stretchy":1087},[1011,7500,7501],{"encoding":1013},"f(n) = \\Theta(n)",[663,7503,7505,7532],{"className":7504,"ariaHidden":1019},[1018],[663,7506,7508,7511,7514,7517,7520,7523,7526,7529],{"className":7507},[1023],[663,7509],{"className":7510,"style":1107},[1027],[663,7512,3779],{"className":7513,"style":3801},[1032,1120],[663,7515,1088],{"className":7516},[1116],[663,7518,1091],{"className":7519},[1032,1120],[663,7521,1094],{"className":7522},[1124],[663,7524],{"className":7525,"style":1725},[1724],[663,7527,694],{"className":7528},[1720],[663,7530],{"className":7531,"style":1725},[1724],[663,7533,7535,7538,7541,7544,7547],{"className":7534},[1023],[663,7536],{"className":7537,"style":1107},[1027],[663,7539,1957],{"className":7540},[1032],[663,7542,1088],{"className":7543},[1116],[663,7545,1091],{"className":7546},[1032,1120],[663,7548,1094],{"className":7549},[1124]," — c'est\nle cas 2 du théorème maître :",[663,7552,7554],{"className":7553},[3815],[663,7555,7557,7639],{"className":7556},[988],[663,7558,7560],{"className":7559},[992],[994,7561,7562],{"xmlns":996,"display":3824},[998,7563,7564,7636],{},[1001,7565,7566,7568,7570,7572,7574,7576,7578,7580,7582,7584,7586,7588,7590,7592,7594,7596,7598,7600,7602,7605,7608,7610,7612,7614,7616,7618,7620,7622,7624,7626,7628,7630,7632,7634],{},[1081,7567,3831],{},[1004,7569,1088],{"stretchy":1087},[1081,7571,1091],{},[1004,7573,1094],{"stretchy":1087},[1004,7575,694],{},[1008,7577,816],{},[1004,7579,3844],{},[1081,7581,3831],{},[1004,7583,1088],{"stretchy":1087},[1081,7585,1091],{},[1081,7587,3739],{"mathvariant":1956},[1008,7589,816],{},[1004,7591,1094],{"stretchy":1087},[1004,7593,924],{},[1081,7595,1084],{"mathvariant":1083},[1004,7597,1088],{"stretchy":1087},[1081,7599,1091],{},[1004,7601,1094],{"stretchy":1087},[4012,7603,7604],{},"  ",[1004,7606,7607],{},"⟹",[4012,7609,7604],{},[1081,7611,3831],{},[1004,7613,1088],{"stretchy":1087},[1081,7615,1091],{},[1004,7617,1094],{"stretchy":1087},[1004,7619,694],{},[1081,7621,1957],{"mathvariant":1956},[1004,7623,1088],{"stretchy":1087},[1081,7625,1091],{},[1081,7627,1962],{},[1004,7629,1965],{},[1081,7631,1091],{},[1004,7633,1094],{"stretchy":1087},[1081,7635,610],{"mathvariant":1956},[1011,7637,7638],{"encoding":1013},"T(n) = 2 \\cdot T(n\u002F2) + \\mathcal{O}(n) \\;\\Longrightarrow\\; T(n) = \\Theta(n \\log n).",[663,7640,7642,7669,7687,7717,7750,7777],{"className":7641,"ariaHidden":1019},[1018],[663,7643,7645,7648,7651,7654,7657,7660,7663,7666],{"className":7644},[1023],[663,7646],{"className":7647,"style":1107},[1027],[663,7649,3831],{"className":7650,"style":3884},[1032,1120],[663,7652,1088],{"className":7653},[1116],[663,7655,1091],{"className":7656},[1032,1120],[663,7658,1094],{"className":7659},[1124],[663,7661],{"className":7662,"style":1725},[1724],[663,7664,694],{"className":7665},[1720],[663,7667],{"className":7668,"style":1725},[1724],[663,7670,7672,7675,7678,7681,7684],{"className":7671},[1023],[663,7673],{"className":7674,"style":1063},[1027],[663,7676,816],{"className":7677},[1032],[663,7679],{"className":7680,"style":2124},[1724],[663,7682,3844],{"className":7683},[2128],[663,7685],{"className":7686,"style":2124},[1724],[663,7688,7690,7693,7696,7699,7702,7705,7708,7711,7714],{"className":7689},[1023],[663,7691],{"className":7692,"style":1107},[1027],[663,7694,3831],{"className":7695,"style":3884},[1032,1120],[663,7697,1088],{"className":7698},[1116],[663,7700,1091],{"className":7701},[1032,1120],[663,7703,4094],{"className":7704},[1032],[663,7706,1094],{"className":7707},[1124],[663,7709],{"className":7710,"style":2124},[1724],[663,7712,924],{"className":7713},[2128],[663,7715],{"className":7716,"style":2124},[1724],[663,7718,7720,7723,7726,7729,7732,7735,7738,7741,7744,7747],{"className":7719},[1023],[663,7721],{"className":7722,"style":1107},[1027],[663,7724,1084],{"className":7725,"style":1112},[1032,1111],[663,7727,1088],{"className":7728},[1116],[663,7730,1091],{"className":7731},[1032,1120],[663,7733,1094],{"className":7734},[1124],[663,7736],{"className":7737,"style":1725},[1724],[663,7739],{"className":7740,"style":1725},[1724],[663,7742,7607],{"className":7743},[1720],[663,7745],{"className":7746,"style":1725},[1724],[663,7748],{"className":7749,"style":1725},[1724],[663,7751,7753,7756,7759,7762,7765,7768,7771,7774],{"className":7752},[1023],[663,7754],{"className":7755,"style":1107},[1027],[663,7757,3831],{"className":7758,"style":3884},[1032,1120],[663,7760,1088],{"className":7761},[1116],[663,7763,1091],{"className":7764},[1032,1120],[663,7766,1094],{"className":7767},[1124],[663,7769],{"className":7770,"style":1725},[1724],[663,7772,694],{"className":7773},[1720],[663,7775],{"className":7776,"style":1725},[1724],[663,7778,7780,7783,7786,7789,7792,7795,7800,7803,7806,7809],{"className":7779},[1023],[663,7781],{"className":7782,"style":1107},[1027],[663,7784,1957],{"className":7785},[1032],[663,7787,1088],{"className":7788},[1116],[663,7790,1091],{"className":7791},[1032,1120],[663,7793],{"className":7794,"style":2000},[1724],[663,7796,1992,7798],{"className":7797},[1991],[663,7799,1996],{"style":1995},[663,7801],{"className":7802,"style":2000},[1724],[663,7804,1091],{"className":7805},[1032,1120],[663,7807,1094],{"className":7808},[1124],[663,7810,610],{"className":7811},[1032],[599,7813,7814,7815,7818],{},"Le tri fusion ",[603,7816,7817],{},"garantit"," ce coût en pire cas, ce qui le rend supérieur\nau tri rapide pour des données potentiellement adverses.",[1127,7820,7822,7827],{"correct":822,"slug":7821},"diviser-pour-regner-c1",[1131,7823,7824],{"v-slot:question":659},[599,7825,7826],{},"Pour T(n) = 2 T(n\u002F2) + O(n), la complexité est…",[1131,7828,7829],{"v-slot:choices":659},[1139,7830,7831,7834,7837],{},[1142,7832,7833],{},"O(n)",[1142,7835,7836],{},"O(n log n)",[1142,7838,7839],{},"O(n²)",[594,7841,7843],{"id":7842},"un-mot-sur-le-coût-en-mémoire","Un mot sur le coût en mémoire",[599,7845,7846,7847,7890,7891,7894,7895,610],{},"Le tri fusion exposé ci-dessus crée une nouvelle liste à chaque appel — son\ncoût mémoire est en ",[663,7848,7850,7869],{"className":7849},[988],[663,7851,7853],{"className":7852},[992],[994,7854,7855],{"xmlns":996},[998,7856,7857,7867],{},[1001,7858,7859,7861,7863,7865],{},[1081,7860,1084],{"mathvariant":1083},[1004,7862,1088],{"stretchy":1087},[1081,7864,1091],{},[1004,7866,1094],{"stretchy":1087},[1011,7868,1097],{"encoding":1013},[663,7870,7872],{"className":7871,"ariaHidden":1019},[1018],[663,7873,7875,7878,7881,7884,7887],{"className":7874},[1023],[663,7876],{"className":7877,"style":1107},[1027],[663,7879,1084],{"className":7880,"style":1112},[1032,1111],[663,7882,1088],{"className":7883},[1116],[663,7885,1091],{"className":7886},[1032,1120],[663,7888,1094],{"className":7889},[1124],". Des implémentations ",[603,7892,7893],{},"en place"," (qui\nne créent pas de copies) existent mais sont plus délicates à écrire. C'est\nl'un des compromis classiques de l'algorithmique : ",[603,7896,7897],{},"gagner en mémoire au\nprix de la simplicité du code",[594,7899,7901],{"id":7900},"autre-exemple-rotation-dune-image-bitmap","Autre exemple : rotation d'une image bitmap",[599,7903,7904,7905,7908,7909,7984,7985,610],{},"Une image bitmap est un tableau 2D de pixels. La ",[603,7906,7907],{},"rotation d'un quart de\ntour"," se résout naïvement en allouant une seconde image et en y recopiant\nles pixels permutés — coût mémoire ",[663,7910,7912,7936],{"className":7911},[988],[663,7913,7915],{"className":7914},[992],[994,7916,7917],{"xmlns":996},[998,7918,7919,7933],{},[1001,7920,7921,7923,7925,7931],{},[1081,7922,1084],{"mathvariant":1083},[1004,7924,1088],{"stretchy":1087},[5414,7926,7927,7929],{},[1081,7928,1091],{},[1008,7930,816],{},[1004,7932,1094],{"stretchy":1087},[1011,7934,7935],{"encoding":1013},"\\mathcal{O}(n^2)",[663,7937,7939],{"className":7938,"ariaHidden":1019},[1018],[663,7940,7942,7946,7949,7952,7981],{"className":7941},[1023],[663,7943],{"className":7944,"style":7945},[1027],"height:1.0641em;vertical-align:-0.25em;",[663,7947,1084],{"className":7948,"style":1112},[1032,1111],[663,7950,1088],{"className":7951},[1116],[663,7953,7955,7958],{"className":7954},[1032],[663,7956,1091],{"className":7957},[1032,1120],[663,7959,7961],{"className":7960},[3598],[663,7962,7964],{"className":7963},[3602],[663,7965,7967],{"className":7966},[3607],[663,7968,7970],{"className":7969,"style":7420},[3611],[663,7971,7972,7975],{"style":5465},[663,7973],{"className":7974,"style":3620},[3619],[663,7976,7978],{"className":7977},[3624,3625,3626,3627],[663,7979,816],{"className":7980},[1032,3627],[663,7982,1094],{"className":7983},[1124]," pour une image\n",[663,7986,7988,8006],{"className":7987},[988],[663,7989,7991],{"className":7990},[992],[994,7992,7993],{"xmlns":996},[998,7994,7995,8003],{},[1001,7996,7997,7999,8001],{},[1081,7998,1091],{},[1004,8000,4634],{},[1081,8002,1091],{},[1011,8004,8005],{"encoding":1013},"n \\times n",[663,8007,8009,8027],{"className":8008,"ariaHidden":1019},[1018],[663,8010,8012,8015,8018,8021,8024],{"className":8011},[1023],[663,8013],{"className":8014,"style":2117},[1027],[663,8016,1091],{"className":8017},[1032,1120],[663,8019],{"className":8020,"style":2124},[1724],[663,8022,4634],{"className":8023},[2128],[663,8025],{"className":8026,"style":2124},[1724],[663,8028,8030,8033],{"className":8029},[1023],[663,8031],{"className":8032,"style":1681},[1027],[663,8034,1091],{"className":8035},[1032,1120],[599,8037,8038,8039,8042,8043,8045,8046,8049],{},"L'approche ",[603,8040,8041],{},"diviser pour régner"," divise l'image en quatre quadrants,\nfait pivoter chaque quadrant récursivement, puis échange les quadrants\ndeux à deux ",[603,8044,7893],{},". Le coût mémoire devient ",[603,8047,8048],{},"constant"," (en\nignorant la pile d'appels), au prix d'un code plus subtil.",[2078,8051,8052],{},[599,8053,8054,8055,8105,8106,8161,8162,8217,8218,610],{},"La récursion garde une pile d'appels — ce n'est jamais strictement de la\nmémoire « constante ». Pour une image ",[663,8056,8058,8075],{"className":8057},[988],[663,8059,8061],{"className":8060},[992],[994,8062,8063],{"xmlns":996},[998,8064,8065,8073],{},[1001,8066,8067,8069,8071],{},[1081,8068,1091],{},[1004,8070,4634],{},[1081,8072,1091],{},[1011,8074,8005],{"encoding":1013},[663,8076,8078,8096],{"className":8077,"ariaHidden":1019},[1018],[663,8079,8081,8084,8087,8090,8093],{"className":8080},[1023],[663,8082],{"className":8083,"style":2117},[1027],[663,8085,1091],{"className":8086},[1032,1120],[663,8088],{"className":8089,"style":2124},[1724],[663,8091,4634],{"className":8092},[2128],[663,8094],{"className":8095,"style":2124},[1724],[663,8097,8099,8102],{"className":8098},[1023],[663,8100],{"className":8101,"style":1681},[1027],[663,8103,1091],{"className":8104},[1032,1120],", la profondeur récursive\nest ",[663,8107,8109,8132],{"className":8108},[988],[663,8110,8112],{"className":8111},[992],[994,8113,8114],{"xmlns":996},[998,8115,8116,8130],{},[1001,8117,8118,8120,8122,8124,8126,8128],{},[1081,8119,1084],{"mathvariant":1083},[1004,8121,1088],{"stretchy":1087},[1081,8123,1962],{},[1004,8125,1965],{},[1081,8127,1091],{},[1004,8129,1094],{"stretchy":1087},[1011,8131,2042],{"encoding":1013},[663,8133,8135],{"className":8134,"ariaHidden":1019},[1018],[663,8136,8138,8141,8144,8147,8152,8155,8158],{"className":8137},[1023],[663,8139],{"className":8140,"style":1107},[1027],[663,8142,1084],{"className":8143,"style":1112},[1032,1111],[663,8145,1088],{"className":8146},[1116],[663,8148,1992,8150],{"className":8149},[1991],[663,8151,1996],{"style":1995},[663,8153],{"className":8154,"style":2000},[1724],[663,8156,1091],{"className":8157},[1032,1120],[663,8159,1094],{"className":8160},[1124],", donc la mémoire totale est dominée par la\nrécursion, soit ",[663,8163,8165,8188],{"className":8164},[988],[663,8166,8168],{"className":8167},[992],[994,8169,8170],{"xmlns":996},[998,8171,8172,8186],{},[1001,8173,8174,8176,8178,8180,8182,8184],{},[1081,8175,1084],{"mathvariant":1083},[1004,8177,1088],{"stretchy":1087},[1081,8179,1962],{},[1004,8181,1965],{},[1081,8183,1091],{},[1004,8185,1094],{"stretchy":1087},[1011,8187,2042],{"encoding":1013},[663,8189,8191],{"className":8190,"ariaHidden":1019},[1018],[663,8192,8194,8197,8200,8203,8208,8211,8214],{"className":8193},[1023],[663,8195],{"className":8196,"style":1107},[1027],[663,8198,1084],{"className":8199,"style":1112},[1032,1111],[663,8201,1088],{"className":8202},[1116],[663,8204,1992,8206],{"className":8205},[1991],[663,8207,1996],{"style":1995},[663,8209],{"className":8210,"style":2000},[1724],[663,8212,1091],{"className":8213},[1032,1120],[663,8215,1094],{"className":8216},[1124]," — très inférieur à ",[663,8219,8221,8244],{"className":8220},[988],[663,8222,8224],{"className":8223},[992],[994,8225,8226],{"xmlns":996},[998,8227,8228,8242],{},[1001,8229,8230,8232,8234,8240],{},[1081,8231,1084],{"mathvariant":1083},[1004,8233,1088],{"stretchy":1087},[5414,8235,8236,8238],{},[1081,8237,1091],{},[1008,8239,816],{},[1004,8241,1094],{"stretchy":1087},[1011,8243,7935],{"encoding":1013},[663,8245,8247],{"className":8246,"ariaHidden":1019},[1018],[663,8248,8250,8253,8256,8259,8288],{"className":8249},[1023],[663,8251],{"className":8252,"style":7945},[1027],[663,8254,1084],{"className":8255,"style":1112},[1032,1111],[663,8257,1088],{"className":8258},[1116],[663,8260,8262,8265],{"className":8261},[1032],[663,8263,1091],{"className":8264},[1032,1120],[663,8266,8268],{"className":8267},[3598],[663,8269,8271],{"className":8270},[3602],[663,8272,8274],{"className":8273},[3607],[663,8275,8277],{"className":8276,"style":7420},[3611],[663,8278,8279,8282],{"style":5465},[663,8280],{"className":8281,"style":3620},[3619],[663,8283,8285],{"className":8284},[3624,3625,3626,3627],[663,8286,816],{"className":8287},[1032,3627],[663,8289,1094],{"className":8290},[1124],[594,8292,8294],{"id":8293},"recette-pour-reconnaître-un-problème-diviser-pour-régner","Recette pour reconnaître un problème « diviser pour régner »",[599,8296,8297],{},"Trois indices :",[1139,8299,8300,8307,8310],{},[1142,8301,8302,8303,8306],{},"Le problème se ",[603,8304,8305],{},"décompose naturellement"," en sous-problèmes du même type.",[1142,8308,8309],{},"La résolution d'un cas de base (taille 0 ou 1) est triviale.",[1142,8311,8312],{},"Recombiner les sous-solutions coûte beaucoup moins que le problème entier.",[1127,8314,8316,8321],{"correct":1051,"slug":8315},"diviser-pour-regner-c2",[1131,8317,8318],{"v-slot:question":659},[599,8319,8320],{},"Le tri fusion garantit un coût en O(n log n) dans le pire cas.",[1131,8322,8323],{"v-slot:choices":659},[1139,8324,8325,8328],{},[1142,8326,8327],{},"vrai",[1142,8329,8330],{},"faux",[594,8332,2189],{"id":2188},[599,8334,8335,8336,8339,8340,8403,8404,8407,8408,8498,8499,8572,8573,8576,8577,3679],{},"D'autres algorithmes célèbres reposent sur cette méthode : la ",[603,8337,8338],{},"transformée\nde Fourier rapide"," (FFT, ",[663,8341,8343,8368],{"className":8342},[988],[663,8344,8346],{"className":8345},[992],[994,8347,8348],{"xmlns":996},[998,8349,8350,8366],{},[1001,8351,8352,8354,8356,8358,8360,8362,8364],{},[1081,8353,1084],{"mathvariant":1083},[1004,8355,1088],{"stretchy":1087},[1081,8357,1091],{},[1081,8359,1962],{},[1004,8361,1965],{},[1081,8363,1091],{},[1004,8365,1094],{"stretchy":1087},[1011,8367,4705],{"encoding":1013},[663,8369,8371],{"className":8370,"ariaHidden":1019},[1018],[663,8372,8374,8377,8380,8383,8386,8389,8394,8397,8400],{"className":8373},[1023],[663,8375],{"className":8376,"style":1107},[1027],[663,8378,1084],{"className":8379,"style":1112},[1032,1111],[663,8381,1088],{"className":8382},[1116],[663,8384,1091],{"className":8385},[1032,1120],[663,8387],{"className":8388,"style":2000},[1724],[663,8390,1992,8392],{"className":8391},[1991],[663,8393,1996],{"style":1995},[663,8395],{"className":8396,"style":2000},[1724],[663,8398,1091],{"className":8399},[1032,1120],[663,8401,1094],{"className":8402},[1124]," pour traiter le signal),\nl'algorithme de ",[603,8405,8406],{},"Karatsuba"," pour la multiplication d'entiers en\n",[663,8409,8411,8436],{"className":8410},[988],[663,8412,8414],{"className":8413},[992],[994,8415,8416],{"xmlns":996},[998,8417,8418,8433],{},[1001,8419,8420,8422,8424,8431],{},[1081,8421,1084],{"mathvariant":1083},[1004,8423,1088],{"stretchy":1087},[5414,8425,8426,8428],{},[1081,8427,1091],{},[1008,8429,8430],{},"1,58",[1004,8432,1094],{"stretchy":1087},[1011,8434,8435],{"encoding":1013},"\\mathcal{O}(n^{1{,}58})",[663,8437,8439],{"className":8438,"ariaHidden":1019},[1018],[663,8440,8442,8445,8448,8451,8495],{"className":8441},[1023],[663,8443],{"className":8444,"style":7945},[1027],[663,8446,1084],{"className":8447,"style":1112},[1032,1111],[663,8449,1088],{"className":8450},[1116],[663,8452,8454,8457],{"className":8453},[1032],[663,8455,1091],{"className":8456},[1032,1120],[663,8458,8460],{"className":8459},[3598],[663,8461,8463],{"className":8462},[3602],[663,8464,8466],{"className":8465},[3607],[663,8467,8469],{"className":8468,"style":7420},[3611],[663,8470,8471,8474],{"style":5465},[663,8472],{"className":8473,"style":3620},[3619],[663,8475,8477],{"className":8476},[3624,3625,3626,3627],[663,8478,8480,8483,8491],{"className":8479},[1032,3627],[663,8481,822],{"className":8482},[1032,3627],[663,8484,8486],{"className":8485},[1032,3627],[663,8487,8490],{"className":8488},[8489,3627],"mpunct",",",[663,8492,8494],{"className":8493},[1032,3627],"58",[663,8496,1094],{"className":8497},[1124]," au lieu de ",[663,8500,8502,8525],{"className":8501},[988],[663,8503,8505],{"className":8504},[992],[994,8506,8507],{"xmlns":996},[998,8508,8509,8523],{},[1001,8510,8511,8513,8515,8521],{},[1081,8512,1084],{"mathvariant":1083},[1004,8514,1088],{"stretchy":1087},[5414,8516,8517,8519],{},[1081,8518,1091],{},[1008,8520,816],{},[1004,8522,1094],{"stretchy":1087},[1011,8524,7935],{"encoding":1013},[663,8526,8528],{"className":8527,"ariaHidden":1019},[1018],[663,8529,8531,8534,8537,8540,8569],{"className":8530},[1023],[663,8532],{"className":8533,"style":7945},[1027],[663,8535,1084],{"className":8536,"style":1112},[1032,1111],[663,8538,1088],{"className":8539},[1116],[663,8541,8543,8546],{"className":8542},[1032],[663,8544,1091],{"className":8545},[1032,1120],[663,8547,8549],{"className":8548},[3598],[663,8550,8552],{"className":8551},[3602],[663,8553,8555],{"className":8554},[3607],[663,8556,8558],{"className":8557,"style":7420},[3611],[663,8559,8560,8563],{"style":5465},[663,8561],{"className":8562,"style":3620},[3619],[663,8564,8566],{"className":8565},[3624,3625,3626,3627],[663,8567,816],{"className":8568},[1032,3627],[663,8570,1094],{"className":8571},[1124],", ou encore la\n",[603,8574,8575],{},"recherche dichotomique"," (cas particulier où ",[663,8578,8580,8598],{"className":8579},[988],[663,8581,8583],{"className":8582},[992],[994,8584,8585],{"xmlns":996},[998,8586,8587,8595],{},[1001,8588,8589,8591,8593],{},[1081,8590,3707],{},[1004,8592,694],{},[1008,8594,822],{},[1011,8596,8597],{"encoding":1013},"a = 1",[663,8599,8601,8619],{"className":8600,"ariaHidden":1019},[1018],[663,8602,8604,8607,8610,8613,8616],{"className":8603},[1023],[663,8605],{"className":8606,"style":1681},[1027],[663,8608,3707],{"className":8609},[1032,1120],[663,8611],{"className":8612,"style":1725},[1724],[663,8614,694],{"className":8615},[1720],[663,8617],{"className":8618,"style":1725},[1724],[663,8620,8622,8625],{"className":8621},[1023],[663,8623],{"className":8624,"style":1063},[1027],[663,8626,822],{"className":8627},[1032],[2198,8629,8630],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":659,"searchDepth":681,"depth":681,"links":8632},[8633,8634,8635,8636,8637,8638,8639,8640,8641],{"id":596,"depth":681,"text":597},{"id":3656,"depth":681,"text":3657},{"id":3978,"depth":681,"text":3979},{"id":5198,"depth":681,"text":5199},{"id":6658,"depth":681,"text":6659},{"id":7842,"depth":681,"text":7843},{"id":7900,"depth":681,"text":7901},{"id":8293,"depth":681,"text":8294},{"id":2188,"depth":681,"text":2189},"Casser un problème en sous-problèmes plus petits, les résoudre récursivement, combiner les résultats — la méthode qui donne le tri fusion et bien d'autres.",{},[8645,8647],{"slug":7821,"kind":2216,"question":7826,"choices":8646,"correct":822,"multi":2218,"explanation":659},[7833,7836,7839],{"slug":8315,"kind":2216,"question":8320,"choices":8648,"correct":1051,"multi":2218,"explanation":659},[8327,8330],{"title":574,"description":8642},"HvkICwPWrCcs23GpPXHN9IeCh5A69X9jnw2BcGqbQaY",{"id":8652,"title":578,"bo":8653,"body":8655,"description":12153,"eval":2211,"extension":2212,"labo":2211,"meta":12154,"navigation":752,"path":579,"quizzes":12155,"readingTime":666,"seo":12160,"stem":580,"tp":2211,"__hash__":12161},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.md",[8654],"TE04",{"type":591,"value":8656,"toc":12140},[8657,8659,8673,8684,8686,8690,8693,8707,8714,8718,8963,8968,9393,9398,9471,9702,9706,9709,9825,10053,10063,10067,10103,10257,10343,10363,10367,10659,10673,10677,10878,11129,11169,11173,11179,11303,11921,12090,12110,12112,12137],[594,8658,597],{"id":596},[599,8660,859,8661,8664,8665,8668,8669,8672],{},[603,8662,8663],{},"programmation dynamique"," est une méthode qui s'applique aux problèmes\ndont la solution se décompose en ",[603,8666,8667],{},"sous-problèmes qui se chevauchent",".\nPlutôt que de recalculer chaque sous-problème à chaque fois qu'on le\nrencontre, on ",[603,8670,8671],{},"mémorise"," son résultat. Cette idée simple transforme\nsouvent un algorithme exponentiel en un algorithme polynomial.",[599,8674,8675,8676,8679,8680,8683],{},"C'est exactement la posture du ",[603,8677,8678],{},"caissier"," qui, pour rendre la monnaie,\nn'invente pas chaque fois la combinaison : il connaît déjà le rendu pour\nles petites sommes courantes et les combine. C'est aussi celle du joueur\nde ",[603,8681,8682],{},"Sudoku"," qui, plutôt que de tout recommencer, note dans chaque case\nles chiffres encore possibles — il mémorise ce qu'il a déjà déduit pour ne\npas le redéduire à chaque coup.",[636,8685],{"code":8654},[594,8687,8689],{"id":8688},"les-deux-conditions-dapplication","Les deux conditions d'application",[599,8691,8692],{},"Un problème se prête à la programmation dynamique si :",[3662,8694,8695,8701],{},[1142,8696,8697,8700],{},[603,8698,8699],{},"Sous-structure optimale"," — la solution optimale du problème se construit\nà partir des solutions optimales de ses sous-problèmes.",[1142,8702,8703,8706],{},[603,8704,8705],{},"Chevauchement des sous-problèmes"," — les mêmes sous-problèmes apparaissent\nplusieurs fois dans la résolution récursive naïve.",[599,8708,8709,8710,8713],{},"Sans la condition 2, diviser pour régner suffit (chaque sous-problème est\nunique). Avec la condition 2, on ",[603,8711,8712],{},"doit"," mémoriser pour ne pas exploser.",[594,8715,8717],{"id":8716},"exemple-central-le-rendu-de-monnaie","Exemple central : le rendu de monnaie",[599,8719,8720,8723,8724,8904,8905,8933,8934,8962],{},[603,8721,8722],{},"Problème"," : étant donné un système de pièces ",[663,8725,8727,8771],{"className":8726},[988],[663,8728,8730],{"className":8729},[992],[994,8731,8732],{"xmlns":996},[998,8733,8734,8768],{},[1001,8735,8736,8739,8741,8744,8750,8752,8758,8760,8763,8765],{},[1081,8737,8738],{},"P",[1004,8740,694],{},[1004,8742,8743],{"stretchy":1087},"{",[3562,8745,8746,8748],{},[1081,8747,599],{},[1008,8749,822],{},[1004,8751,8490],{"separator":1019},[3562,8753,8754,8756],{},[1081,8755,599],{},[1008,8757,816],{},[1004,8759,8490],{"separator":1019},[1004,8761,8762],{},"…",[4012,8764,4014],{},[1004,8766,8767],{"stretchy":1087},"}",[1011,8769,8770],{"encoding":1013},"P = \\{p_1, p_2, \\dots\\}",[663,8772,8774,8793],{"className":8773,"ariaHidden":1019},[1018],[663,8775,8777,8781,8784,8787,8790],{"className":8776},[1023],[663,8778],{"className":8779,"style":8780},[1027],"height:0.6833em;",[663,8782,8738],{"className":8783,"style":3884},[1032,1120],[663,8785],{"className":8786,"style":1725},[1724],[663,8788,694],{"className":8789},[1720],[663,8791],{"className":8792,"style":1725},[1724],[663,8794,8796,8799,8802,8842,8845,8848,8888,8891,8894,8898,8901],{"className":8795},[1023],[663,8797],{"className":8798,"style":1107},[1027],[663,8800,8743],{"className":8801},[1116],[663,8803,8805,8808],{"className":8804},[1032],[663,8806,599],{"className":8807},[1032,1120],[663,8809,8811],{"className":8810},[3598],[663,8812,8814,8834],{"className":8813},[3602,3603],[663,8815,8817,8831],{"className":8816},[3607],[663,8818,8820],{"className":8819,"style":5001},[3611],[663,8821,8822,8825],{"style":5004},[663,8823],{"className":8824,"style":3620},[3619],[663,8826,8828],{"className":8827},[3624,3625,3626,3627],[663,8829,822],{"className":8830},[1032,3627],[663,8832,3635],{"className":8833},[3634],[663,8835,8837],{"className":8836},[3607],[663,8838,8840],{"className":8839,"style":5023},[3611],[663,8841],{},[663,8843,8490],{"className":8844},[8489],[663,8846],{"className":8847,"style":2000},[1724],[663,8849,8851,8854],{"className":8850},[1032],[663,8852,599],{"className":8853},[1032,1120],[663,8855,8857],{"className":8856},[3598],[663,8858,8860,8880],{"className":8859},[3602,3603],[663,8861,8863,8877],{"className":8862},[3607],[663,8864,8866],{"className":8865,"style":5001},[3611],[663,8867,8868,8871],{"style":5004},[663,8869],{"className":8870,"style":3620},[3619],[663,8872,8874],{"className":8873},[3624,3625,3626,3627],[663,8875,816],{"className":8876},[1032,3627],[663,8878,3635],{"className":8879},[3634],[663,8881,8883],{"className":8882},[3607],[663,8884,8886],{"className":8885,"style":5023},[3611],[663,8887],{},[663,8889,8490],{"className":8890},[8489],[663,8892],{"className":8893,"style":2000},[1724],[663,8895,8762],{"className":8896},[8897],"minner",[663,8899],{"className":8900,"style":2000},[1724],[663,8902,8767],{"className":8903},[1124]," et\nune somme ",[663,8906,8908,8921],{"className":8907},[988],[663,8909,8911],{"className":8910},[992],[994,8912,8913],{"xmlns":996},[998,8914,8915,8919],{},[1001,8916,8917],{},[1081,8918,1091],{},[1011,8920,1091],{"encoding":1013},[663,8922,8924],{"className":8923,"ariaHidden":1019},[1018],[663,8925,8927,8930],{"className":8926},[1023],[663,8928],{"className":8929,"style":1681},[1027],[663,8931,1091],{"className":8932},[1032,1120],", combien de pièces au minimum pour rendre exactement ",[663,8935,8937,8950],{"className":8936},[988],[663,8938,8940],{"className":8939},[992],[994,8941,8942],{"xmlns":996},[998,8943,8944,8948],{},[1001,8945,8946],{},[1081,8947,1091],{},[1011,8949,1091],{"encoding":1013},[663,8951,8953],{"className":8952,"ariaHidden":1019},[1018],[663,8954,8956,8959],{"className":8955},[1023],[663,8957],{"className":8958,"style":1681},[1027],[663,8960,1091],{"className":8961},[1032,1120]," ?",[599,8964,8965,5539],{},[603,8966,8967],{},"Équation de récurrence",[663,8969,8971],{"className":8970},[3815],[663,8972,8974,9095],{"className":8973},[988],[663,8975,8977],{"className":8976},[992],[994,8978,8979],{"xmlns":996,"display":3824},[998,8980,8981,9092],{},[1001,8982,8983,8986,8988,8990,8992,8994],{},[4012,8984,8985],{},"rendre",[1004,8987,1088],{"stretchy":1087},[1081,8989,1091],{},[1004,8991,1094],{"stretchy":1087},[1004,8993,694],{},[1001,8995,8996,8998],{},[1004,8997,8743],{"fence":1019},[8999,9000,9004,9032],"mtable",{"rowspacing":9001,"columnalign":9002,"columnspacing":9003},"0.36em","left left","1em",[9005,9006,9007,9015],"mtr",{},[9008,9009,9010],"mtd",{},[9011,9012,9013],"mstyle",{"scriptlevel":1051,"displaystyle":1087},[1008,9014,1051],{},[9008,9016,9017],{},[9011,9018,9019],{"scriptlevel":1051,"displaystyle":1087},[1001,9020,9021,9024,9026,9028,9030],{},[4012,9022,9023],{},"si ",[1081,9025,1091],{},[1004,9027,694],{},[1008,9029,1051],{},[1004,9031,8490],{"separator":1019},[9005,9033,9034,9085],{},[9008,9035,9036],{},[9011,9037,9038],{"scriptlevel":1051,"displaystyle":1087},[1001,9039,9040,9042,9044,9073,9075,9077,9079,9081,9083],{},[1008,9041,822],{},[1004,9043,924],{},[3562,9045,9046,9053],{},[1001,9047,9048,9051],{},[1081,9049,9050],{},"min",[1004,9052,1965],{},[1001,9054,9055,9057,9060,9062,9064,9066,9068,9071],{},[1081,9056,599],{},[1004,9058,9059],{},"∈",[1081,9061,8738],{},[1004,9063,8490],{"separator":1019},[4012,9065,4637],{},[1081,9067,599],{},[1004,9069,9070],{},"≤",[1081,9072,1091],{},[4012,9074,8985],{},[1004,9076,1088],{"stretchy":1087},[1081,9078,1091],{},[1004,9080,1006],{},[1081,9082,599],{},[1004,9084,1094],{"stretchy":1087},[9008,9086,9087],{},[9011,9088,9089],{"scriptlevel":1051,"displaystyle":1087},[4012,9090,9091],{},"sinon.",[1011,9093,9094],{"encoding":1013},"\\text{rendre}(n) = \\begin{cases}\n0 & \\text{si } n = 0,\\\\\n1 + \\min_{p \\in P,\\ p \\le n} \\text{rendre}(n - p) & \\text{sinon.}\n\\end{cases}",[663,9096,9098,9129],{"className":9097,"ariaHidden":1019},[1018],[663,9099,9101,9104,9111,9114,9117,9120,9123,9126],{"className":9100},[1023],[663,9102],{"className":9103,"style":1107},[1027],[663,9105,9108],{"className":9106},[1032,9107],"text",[663,9109,8985],{"className":9110},[1032],[663,9112,1088],{"className":9113},[1116],[663,9115,1091],{"className":9116},[1032,1120],[663,9118,1094],{"className":9119},[1124],[663,9121],{"className":9122,"style":1725},[1724],[663,9124,694],{"className":9125},[1720],[663,9127],{"className":9128,"style":1725},[1724],[663,9130,9132,9136],{"className":9131},[1023],[663,9133],{"className":9134,"style":9135},[1027],"height:3em;vertical-align:-1.25em;",[663,9137,9139,9149,9389],{"className":9138},[8897],[663,9140,9144],{"className":9141,"style":9143},[1116,9142],"delimcenter","top:0em;",[663,9145,8743],{"className":9146},[9147,9148],"delimsizing","size4",[663,9150,9152],{"className":9151},[1032],[663,9153,9155,9315,9320],{"className":9154},[8999],[663,9156,9159],{"className":9157},[9158],"col-align-l",[663,9160,9162,9306],{"className":9161},[3602,3603],[663,9163,9165,9303],{"className":9164},[3607],[663,9166,9169,9182],{"className":9167,"style":9168},[3611],"height:1.69em;",[663,9170,9172,9176],{"style":9171},"top:-3.69em;",[663,9173],{"className":9174,"style":9175},[3619],"height:3.008em;",[663,9177,9179],{"className":9178},[1032],[663,9180,1051],{"className":9181},[1032],[663,9183,9185,9188],{"style":9184},"top:-2.25em;",[663,9186],{"className":9187,"style":9175},[3619],[663,9189,9191,9194,9197,9200,9203,9273,9276,9282,9285,9288,9291,9294,9297,9300],{"className":9190},[1032],[663,9192,822],{"className":9193},[1032],[663,9195],{"className":9196,"style":2124},[1724],[663,9198,924],{"className":9199},[2128],[663,9201],{"className":9202,"style":2124},[1724],[663,9204,9206,9209],{"className":9205},[1991],[663,9207,9050],{"className":9208},[1991],[663,9210,9212],{"className":9211},[3598],[663,9213,9215,9264],{"className":9214},[3602,3603],[663,9216,9218,9261],{"className":9217},[3607],[663,9219,9222],{"className":9220,"style":9221},[3611],"height:0.3283em;",[663,9223,9225,9228],{"style":9224},"top:-2.55em;margin-right:0.05em;",[663,9226],{"className":9227,"style":3620},[3619],[663,9229,9231],{"className":9230},[3624,3625,3626,3627],[663,9232,9234,9237,9240,9243,9246,9252,9255,9258],{"className":9233},[1032,3627],[663,9235,599],{"className":9236},[1032,1120,3627],[663,9238,9059],{"className":9239},[1720,3627],[663,9241,8738],{"className":9242,"style":3884},[1032,1120,3627],[663,9244,8490],{"className":9245},[8489,3627],[663,9247,9249],{"className":9248},[1724,3627],[663,9250,4637],{"className":9251},[3627],[663,9253,599],{"className":9254},[1032,1120,3627],[663,9256,9070],{"className":9257},[1720,3627],[663,9259,1091],{"className":9260},[1032,1120,3627],[663,9262,3635],{"className":9263},[3634],[663,9265,9267],{"className":9266},[3607],[663,9268,9271],{"className":9269,"style":9270},[3611],"height:0.2861em;",[663,9272],{},[663,9274],{"className":9275,"style":2000},[1724],[663,9277,9279],{"className":9278},[1032,9107],[663,9280,8985],{"className":9281},[1032],[663,9283,1088],{"className":9284},[1116],[663,9286,1091],{"className":9287},[1032,1120],[663,9289],{"className":9290,"style":2124},[1724],[663,9292,1006],{"className":9293},[2128],[663,9295],{"className":9296,"style":2124},[1724],[663,9298,599],{"className":9299},[1032,1120],[663,9301,1094],{"className":9302},[1124],[663,9304,3635],{"className":9305},[3634],[663,9307,9309],{"className":9308},[3607],[663,9310,9313],{"className":9311,"style":9312},[3611],"height:1.19em;",[663,9314],{},[663,9316],{"className":9317,"style":9319},[9318],"arraycolsep","width:1em;",[663,9321,9323],{"className":9322},[9158],[663,9324,9326,9381],{"className":9325},[3602,3603],[663,9327,9329,9378],{"className":9328},[3607],[663,9330,9332,9364],{"className":9331,"style":9168},[3611],[663,9333,9334,9337],{"style":9171},[663,9335],{"className":9336,"style":9175},[3619],[663,9338,9340,9346,9349,9352,9355,9358,9361],{"className":9339},[1032],[663,9341,9343],{"className":9342},[1032,9107],[663,9344,9023],{"className":9345},[1032],[663,9347,1091],{"className":9348},[1032,1120],[663,9350],{"className":9351,"style":1725},[1724],[663,9353,694],{"className":9354},[1720],[663,9356],{"className":9357,"style":1725},[1724],[663,9359,1051],{"className":9360},[1032],[663,9362,8490],{"className":9363},[8489],[663,9365,9366,9369],{"style":9184},[663,9367],{"className":9368,"style":9175},[3619],[663,9370,9372],{"className":9371},[1032],[663,9373,9375],{"className":9374},[1032,9107],[663,9376,9091],{"className":9377},[1032],[663,9379,3635],{"className":9380},[3634],[663,9382,9384],{"className":9383},[3607],[663,9385,9387],{"className":9386,"style":9312},[3611],[663,9388],{},[663,9390],{"className":9391},[1124,9392],"nulldelimiter",[9394,9395,9397],"h3",{"id":9396},"version-récursive-naïve-exponentielle","Version récursive naïve — exponentielle",[654,9399,9401],{"className":656,"code":9400,"language":658,"meta":659,"style":659},"def rendre_naif(n, pieces):\n    if n == 0: return 0\n    return 1 + min(rendre_naif(n - p, pieces)\n                   for p in pieces if p \u003C= n)\n",[646,9402,9403,9413,9429,9448],{"__ignoreMap":659},[663,9404,9405,9407,9410],{"class":665,"line":666},[663,9406,877],{"class":669},[663,9408,9409],{"class":673}," rendre_naif",[663,9411,9412],{"class":677},"(n, pieces):\n",[663,9414,9415,9417,9419,9421,9423,9425,9427],{"class":665,"line":681},[663,9416,888],{"class":669},[663,9418,6835],{"class":677},[663,9420,1823],{"class":669},[663,9422,6712],{"class":687},[663,9424,1251],{"class":677},[663,9426,1810],{"class":669},[663,9428,907],{"class":687},[663,9430,9431,9433,9435,9437,9440,9443,9445],{"class":665,"line":709},[663,9432,912],{"class":669},[663,9434,915],{"class":687},[663,9436,918],{"class":669},[663,9438,9439],{"class":687}," min",[663,9441,9442],{"class":677},"(rendre_naif(n ",[663,9444,3162],{"class":669},[663,9446,9447],{"class":677}," p, pieces)\n",[663,9449,9450,9453,9456,9458,9461,9464,9466,9468],{"class":665,"line":723},[663,9451,9452],{"class":669},"                   for",[663,9454,9455],{"class":677}," p ",[663,9457,2438],{"class":669},[663,9459,9460],{"class":677}," pieces ",[663,9462,9463],{"class":669},"if",[663,9465,9455],{"class":677},[663,9467,6755],{"class":669},[663,9469,9470],{"class":677}," n)\n",[599,9472,9473,9474,2011,9526,9614,9615,9618,9619,9647,9648,610],{},"Pour ",[663,9475,9477,9496],{"className":9476},[988],[663,9478,9480],{"className":9479},[992],[994,9481,9482],{"xmlns":996},[998,9483,9484,9493],{},[1001,9485,9486,9488,9490],{},[1081,9487,1091],{},[1004,9489,694],{},[1008,9491,9492],{},"30",[1011,9494,9495],{"encoding":1013},"n = 30",[663,9497,9499,9517],{"className":9498,"ariaHidden":1019},[1018],[663,9500,9502,9505,9508,9511,9514],{"className":9501},[1023],[663,9503],{"className":9504,"style":1681},[1027],[663,9506,1091],{"className":9507},[1032,1120],[663,9509],{"className":9510,"style":1725},[1724],[663,9512,694],{"className":9513},[1720],[663,9515],{"className":9516,"style":1725},[1724],[663,9518,9520,9523],{"className":9519},[1023],[663,9521],{"className":9522,"style":1063},[1027],[663,9524,9492],{"className":9525},[1032],[663,9527,9529,9560],{"className":9528},[988],[663,9530,9532],{"className":9531},[992],[994,9533,9534],{"xmlns":996},[998,9535,9536,9557],{},[1001,9537,9538,9540,9542,9544,9546,9548,9550,9552,9555],{},[1081,9539,8738],{},[1004,9541,694],{},[1004,9543,8743],{"stretchy":1087},[1008,9545,822],{},[1004,9547,8490],{"separator":1019},[1008,9549,816],{},[1004,9551,8490],{"separator":1019},[1008,9553,9554],{},"5",[1004,9556,8767],{"stretchy":1087},[1011,9558,9559],{"encoding":1013},"P = \\{1, 2, 5\\}",[663,9561,9563,9581],{"className":9562,"ariaHidden":1019},[1018],[663,9564,9566,9569,9572,9575,9578],{"className":9565},[1023],[663,9567],{"className":9568,"style":8780},[1027],[663,9570,8738],{"className":9571,"style":3884},[1032,1120],[663,9573],{"className":9574,"style":1725},[1724],[663,9576,694],{"className":9577},[1720],[663,9579],{"className":9580,"style":1725},[1724],[663,9582,9584,9587,9590,9593,9596,9599,9602,9605,9608,9611],{"className":9583},[1023],[663,9585],{"className":9586,"style":1107},[1027],[663,9588,8743],{"className":9589},[1116],[663,9591,822],{"className":9592},[1032],[663,9594,8490],{"className":9595},[8489],[663,9597],{"className":9598,"style":2000},[1724],[663,9600,816],{"className":9601},[1032],[663,9603,8490],{"className":9604},[8489],[663,9606],{"className":9607,"style":2000},[1724],[663,9609,9554],{"className":9610},[1032],[663,9612,8767],{"className":9613},[1124],", cet algorithme calcule des millions de\nfois les mêmes sous-problèmes. Son coût est ",[603,9616,9617],{},"exponentiel"," en ",[663,9620,9622,9635],{"className":9621},[988],[663,9623,9625],{"className":9624},[992],[994,9626,9627],{"xmlns":996},[998,9628,9629,9633],{},[1001,9630,9631],{},[1081,9632,1091],{},[1011,9634,1091],{"encoding":1013},[663,9636,9638],{"className":9637,"ariaHidden":1019},[1018],[663,9639,9641,9644],{"className":9640},[1023],[663,9642],{"className":9643,"style":1681},[1027],[663,9645,1091],{"className":9646},[1032,1120]," — autant\ndire qu'il est inutilisable au-delà de ",[663,9649,9651,9671],{"className":9650},[988],[663,9652,9654],{"className":9653},[992],[994,9655,9656],{"xmlns":996},[998,9657,9658,9668],{},[1001,9659,9660,9662,9665],{},[1081,9661,1091],{},[1004,9663,9664],{},"≈",[1008,9666,9667],{},"25",[1011,9669,9670],{"encoding":1013},"n \\approx 25",[663,9672,9674,9693],{"className":9673,"ariaHidden":1019},[1018],[663,9675,9677,9681,9684,9687,9690],{"className":9676},[1023],[663,9678],{"className":9679,"style":9680},[1027],"height:0.4831em;",[663,9682,1091],{"className":9683},[1032,1120],[663,9685],{"className":9686,"style":1725},[1724],[663,9688,9664],{"className":9689},[1720],[663,9691],{"className":9692,"style":1725},[1724],[663,9694,9696,9699],{"className":9695},[1023],[663,9697],{"className":9698,"style":1063},[1027],[663,9700,9667],{"className":9701},[1032],[9394,9703,9705],{"id":9704},"version-mémoïsée-top-down","Version mémoïsée — top-down",[599,9707,9708],{},"On ajoute un cache (un dictionnaire) qui mémorise les résultats déjà\ncalculés.",[654,9710,9712],{"className":656,"code":9711,"language":658,"meta":659,"style":659},"def rendre_memo(n, pieces, cache=None):\n    if cache is None:\n        cache = {0: 0}\n    if n in cache:\n        return cache[n]\n    cache[n] = 1 + min(rendre_memo(n - p, pieces, cache)\n                       for p in pieces if p \u003C= n)\n    return cache[n]\n",[646,9713,9714,9730,9743,9761,9772,9779,9800,9819],{"__ignoreMap":659},[663,9715,9716,9718,9721,9724,9726,9728],{"class":665,"line":666},[663,9717,877],{"class":669},[663,9719,9720],{"class":673}," rendre_memo",[663,9722,9723],{"class":677},"(n, pieces, cache",[663,9725,694],{"class":669},[663,9727,652],{"class":687},[663,9729,706],{"class":677},[663,9731,9732,9734,9737,9739,9741],{"class":665,"line":681},[663,9733,888],{"class":669},[663,9735,9736],{"class":677}," cache ",[663,9738,894],{"class":669},[663,9740,897],{"class":687},[663,9742,678],{"class":677},[663,9744,9745,9748,9750,9753,9755,9757,9759],{"class":665,"line":709},[663,9746,9747],{"class":677},"        cache ",[663,9749,694],{"class":669},[663,9751,9752],{"class":677}," {",[663,9754,1051],{"class":687},[663,9756,1251],{"class":677},[663,9758,1051],{"class":687},[663,9760,2365],{"class":677},[663,9762,9763,9765,9767,9769],{"class":665,"line":723},[663,9764,888],{"class":669},[663,9766,6835],{"class":677},[663,9768,2438],{"class":669},[663,9770,9771],{"class":677}," cache:\n",[663,9773,9774,9776],{"class":665,"line":736},[663,9775,904],{"class":669},[663,9777,9778],{"class":677}," cache[n]\n",[663,9780,9781,9784,9786,9788,9790,9792,9795,9797],{"class":665,"line":749},[663,9782,9783],{"class":677},"    cache[n] ",[663,9785,694],{"class":669},[663,9787,915],{"class":687},[663,9789,918],{"class":669},[663,9791,9439],{"class":687},[663,9793,9794],{"class":677},"(rendre_memo(n ",[663,9796,3162],{"class":669},[663,9798,9799],{"class":677}," p, pieces, cache)\n",[663,9801,9802,9805,9807,9809,9811,9813,9815,9817],{"class":665,"line":756},[663,9803,9804],{"class":669},"                       for",[663,9806,9455],{"class":677},[663,9808,2438],{"class":669},[663,9810,9460],{"class":677},[663,9812,9463],{"class":669},[663,9814,9455],{"class":677},[663,9816,6755],{"class":669},[663,9818,9470],{"class":677},[663,9820,9821,9823],{"class":665,"line":763},[663,9822,912],{"class":669},[663,9824,9778],{"class":677},[599,9826,9827,9828,9856,9857,2011,9885,9913,9914,9917,9918,9972,9973,10049,10050,610],{},"Chaque valeur de ",[663,9829,9831,9844],{"className":9830},[988],[663,9832,9834],{"className":9833},[992],[994,9835,9836],{"xmlns":996},[998,9837,9838,9842],{},[1001,9839,9840],{},[1081,9841,1091],{},[1011,9843,1091],{"encoding":1013},[663,9845,9847],{"className":9846,"ariaHidden":1019},[1018],[663,9848,9850,9853],{"className":9849},[1023],[663,9851],{"className":9852,"style":1681},[1027],[663,9854,1091],{"className":9855},[1032,1120]," entre ",[663,9858,9860,9873],{"className":9859},[988],[663,9861,9863],{"className":9862},[992],[994,9864,9865],{"xmlns":996},[998,9866,9867,9871],{},[1001,9868,9869],{},[1008,9870,1051],{},[1011,9872,1051],{"encoding":1013},[663,9874,9876],{"className":9875,"ariaHidden":1019},[1018],[663,9877,9879,9882],{"className":9878},[1023],[663,9880],{"className":9881,"style":1063},[1027],[663,9883,1051],{"className":9884},[1032],[663,9886,9888,9901],{"className":9887},[988],[663,9889,9891],{"className":9890},[992],[994,9892,9893],{"xmlns":996},[998,9894,9895,9899],{},[1001,9896,9897],{},[1081,9898,1091],{},[1011,9900,1091],{"encoding":1013},[663,9902,9904],{"className":9903,"ariaHidden":1019},[1018],[663,9905,9907,9910],{"className":9906},[1023],[663,9908],{"className":9909,"style":1681},[1027],[663,9911,1091],{"className":9912},[1032,1120]," est calculée ",[603,9915,9916],{},"une seule fois",", en\n",[663,9919,9921,9945],{"className":9920},[988],[663,9922,9924],{"className":9923},[992],[994,9925,9926],{"xmlns":996},[998,9927,9928,9942],{},[1001,9929,9930,9932,9934,9936,9938,9940],{},[1081,9931,1084],{"mathvariant":1083},[1004,9933,1088],{"stretchy":1087},[1081,9935,2620],{"mathvariant":1956},[1081,9937,8738],{},[1081,9939,2620],{"mathvariant":1956},[1004,9941,1094],{"stretchy":1087},[1011,9943,9944],{"encoding":1013},"\\mathcal{O}(|P|)",[663,9946,9948],{"className":9947,"ariaHidden":1019},[1018],[663,9949,9951,9954,9957,9960,9963,9966,9969],{"className":9950},[1023],[663,9952],{"className":9953,"style":1107},[1027],[663,9955,1084],{"className":9956,"style":1112},[1032,1111],[663,9958,1088],{"className":9959},[1116],[663,9961,2620],{"className":9962},[1032],[663,9964,8738],{"className":9965,"style":3884},[1032,1120],[663,9967,2620],{"className":9968},[1032],[663,9970,1094],{"className":9971},[1124]," par valeur. Coût total : ",[663,9974,9976,10004],{"className":9975},[988],[663,9977,9979],{"className":9978},[992],[994,9980,9981],{"xmlns":996},[998,9982,9983,10001],{},[1001,9984,9985,9987,9989,9991,9993,9995,9997,9999],{},[1081,9986,1084],{"mathvariant":1083},[1004,9988,1088],{"stretchy":1087},[1081,9990,1091],{},[1004,9992,3844],{},[1081,9994,2620],{"mathvariant":1956},[1081,9996,8738],{},[1081,9998,2620],{"mathvariant":1956},[1004,10000,1094],{"stretchy":1087},[1011,10002,10003],{"encoding":1013},"\\mathcal{O}(n \\cdot |P|)",[663,10005,10007,10031],{"className":10006,"ariaHidden":1019},[1018],[663,10008,10010,10013,10016,10019,10022,10025,10028],{"className":10009},[1023],[663,10011],{"className":10012,"style":1107},[1027],[663,10014,1084],{"className":10015,"style":1112},[1032,1111],[663,10017,1088],{"className":10018},[1116],[663,10020,1091],{"className":10021},[1032,1120],[663,10023],{"className":10024,"style":2124},[1724],[663,10026,3844],{"className":10027},[2128],[663,10029],{"className":10030,"style":2124},[1724],[663,10032,10034,10037,10040,10043,10046],{"className":10033},[1023],[663,10035],{"className":10036,"style":1107},[1027],[663,10038,2620],{"className":10039},[1032],[663,10041,8738],{"className":10042,"style":3884},[1032,1120],[663,10044,2620],{"className":10045},[1032],[663,10047,1094],{"className":10048},[1124]," —\n",[603,10051,10052],{},"polynomial",[10054,10055,10056],"tip",{},[599,10057,10058,10059,10062],{},"Python facilite ce schéma grâce à ",[646,10060,10061],{},"functools.lru_cache"," qui mémorise\nautomatiquement les appels à une fonction. En classe, on l'écrit à la main\npour bien voir le mécanisme.",[9394,10064,10066],{"id":10065},"version-tabulée-bottom-up","Version tabulée — bottom-up",[599,10068,10069,10070,10098,10099,10102],{},"Au lieu de partir de ",[663,10071,10073,10086],{"className":10072},[988],[663,10074,10076],{"className":10075},[992],[994,10077,10078],{"xmlns":996},[998,10079,10080,10084],{},[1001,10081,10082],{},[1081,10083,1091],{},[1011,10085,1091],{"encoding":1013},[663,10087,10089],{"className":10088,"ariaHidden":1019},[1018],[663,10090,10092,10095],{"className":10091},[1023],[663,10093],{"className":10094,"style":1681},[1027],[663,10096,1091],{"className":10097},[1032,1120]," et descendre récursivement, on construit un\ntableau ",[646,10100,10101],{},"dp[0..n]"," de bas en haut.",[654,10104,10106],{"className":656,"code":10105,"language":658,"meta":659,"style":659},"def rendre_tabule(n, pieces):\n    INF = float('inf')\n    dp = [0] + [INF] * n                # dp[0] = 0, le reste à infini\n    for k in range(1, n + 1):\n        for p in pieces:\n            if p \u003C= k and dp[k - p] + 1 \u003C dp[k]:\n                dp[k] = dp[k - p] + 1\n    return dp[n]\n",[646,10107,10108,10117,10134,10167,10192,10203,10233,10250],{"__ignoreMap":659},[663,10109,10110,10112,10115],{"class":665,"line":666},[663,10111,877],{"class":669},[663,10113,10114],{"class":673}," rendre_tabule",[663,10116,9412],{"class":677},[663,10118,10119,10122,10124,10127,10129,10132],{"class":665,"line":681},[663,10120,10121],{"class":687},"    INF",[663,10123,1477],{"class":669},[663,10125,10126],{"class":687}," float",[663,10128,1088],{"class":677},[663,10130,10131],{"class":1271},"'inf'",[663,10133,1275],{"class":677},[663,10135,10136,10139,10141,10144,10146,10149,10151,10153,10156,10158,10161,10164],{"class":665,"line":709},[663,10137,10138],{"class":677},"    dp ",[663,10140,694],{"class":669},[663,10142,10143],{"class":677}," [",[663,10145,1051],{"class":687},[663,10147,10148],{"class":677},"] ",[663,10150,924],{"class":669},[663,10152,10143],{"class":677},[663,10154,10155],{"class":687},"INF",[663,10157,10148],{"class":677},[663,10159,10160],{"class":669},"*",[663,10162,10163],{"class":677}," n                ",[663,10165,10166],{"class":759},"# dp[0] = 0, le reste à infini\n",[663,10168,10169,10171,10174,10176,10179,10181,10183,10186,10188,10190],{"class":665,"line":723},[663,10170,3344],{"class":669},[663,10172,10173],{"class":677}," k ",[663,10175,2438],{"class":669},[663,10177,10178],{"class":687}," range",[663,10180,1088],{"class":677},[663,10182,822],{"class":687},[663,10184,10185],{"class":677},", n ",[663,10187,924],{"class":669},[663,10189,915],{"class":687},[663,10191,706],{"class":677},[663,10193,10194,10196,10198,10200],{"class":665,"line":736},[663,10195,2432],{"class":669},[663,10197,9455],{"class":677},[663,10199,2438],{"class":669},[663,10201,10202],{"class":677}," pieces:\n",[663,10204,10205,10207,10209,10211,10213,10215,10218,10220,10223,10225,10227,10230],{"class":665,"line":749},[663,10206,2446],{"class":669},[663,10208,9455],{"class":677},[663,10210,6755],{"class":669},[663,10212,10173],{"class":677},[663,10214,6735],{"class":669},[663,10216,10217],{"class":677}," dp[k ",[663,10219,3162],{"class":669},[663,10221,10222],{"class":677}," p] ",[663,10224,924],{"class":669},[663,10226,915],{"class":687},[663,10228,10229],{"class":669}," \u003C",[663,10231,10232],{"class":677}," dp[k]:\n",[663,10234,10235,10238,10240,10242,10244,10246,10248],{"class":665,"line":756},[663,10236,10237],{"class":677},"                dp[k] ",[663,10239,694],{"class":669},[663,10241,10217],{"class":677},[663,10243,3162],{"class":669},[663,10245,10222],{"class":677},[663,10247,924],{"class":669},[663,10249,6769],{"class":687},[663,10251,10252,10254],{"class":665,"line":763},[663,10253,912],{"class":669},[663,10255,10256],{"class":677}," dp[n]\n",[599,10258,2841,10259,10334,10335,10338,10339,10342],{},[663,10260,10262,10289],{"className":10261},[988],[663,10263,10265],{"className":10264},[992],[994,10266,10267],{"xmlns":996},[998,10268,10269,10287],{},[1001,10270,10271,10273,10275,10277,10279,10281,10283,10285],{},[1081,10272,1084],{"mathvariant":1083},[1004,10274,1088],{"stretchy":1087},[1081,10276,1091],{},[1004,10278,3844],{},[1081,10280,2620],{"mathvariant":1956},[1081,10282,8738],{},[1081,10284,2620],{"mathvariant":1956},[1004,10286,1094],{"stretchy":1087},[1011,10288,10003],{"encoding":1013},[663,10290,10292,10316],{"className":10291,"ariaHidden":1019},[1018],[663,10293,10295,10298,10301,10304,10307,10310,10313],{"className":10294},[1023],[663,10296],{"className":10297,"style":1107},[1027],[663,10299,1084],{"className":10300,"style":1112},[1032,1111],[663,10302,1088],{"className":10303},[1116],[663,10305,1091],{"className":10306},[1032,1120],[663,10308],{"className":10309,"style":2124},[1724],[663,10311,3844],{"className":10312},[2128],[663,10314],{"className":10315,"style":2124},[1724],[663,10317,10319,10322,10325,10328,10331],{"className":10318},[1023],[663,10320],{"className":10321,"style":1107},[1027],[663,10323,2620],{"className":10324},[1032],[663,10326,8738],{"className":10327,"style":3884},[1032,1120],[663,10329,2620],{"className":10330},[1032],[663,10332,1094],{"className":10333},[1124],". Mais on évite la récursion et\non peut souvent ",[603,10336,10337],{},"réduire la mémoire"," : si seul ",[646,10340,10341],{},"dp[n]"," nous intéresse,\nparfois deux lignes suffisent (cf. plus loin).",[1127,10344,10346,10351],{"correct":822,"slug":10345},"programmation-dynamique-c1",[1131,10347,10348],{"v-slot:question":659},[599,10349,10350],{},"Quelle est la complexité du rendu de monnaie tabulé ?",[1131,10352,10353],{"v-slot:choices":659},[1139,10354,10355,10357,10360],{},[1142,10356,7833],{},[1142,10358,10359],{},"O(n × |P|)",[1142,10361,10362],{},"O(2^n)",[594,10364,10366],{"id":10365},"top-down-vs-bottom-up-le-trade-off","Top-down vs bottom-up — le trade-off",[1164,10368,10369,10382],{},[1167,10370,10371],{},[1170,10372,10373,10376,10379],{},[1173,10374,10375],{},"Aspect",[1173,10377,10378],{},"Mémoïsation (top-down)",[1173,10380,10381],{},"Tabulation (bottom-up)",[1183,10383,10384,10395,10406,10608,10648],{},[1170,10385,10386,10389,10392],{},[1188,10387,10388],{},"Style",[1188,10390,10391],{},"récursion + cache",[1188,10393,10394],{},"boucles imbriquées",[1170,10396,10397,10400,10403],{},[1188,10398,10399],{},"Calcule",[1188,10401,10402],{},"uniquement les sous-problèmes utiles",[1188,10404,10405],{},"tous les sous-problèmes",[1170,10407,10408,10411,10514],{},[1188,10409,10410],{},"Mémoire",[1188,10412,10413],{},[663,10414,10416,10451],{"className":10415},[988],[663,10417,10419],{"className":10418},[992],[994,10420,10421],{"xmlns":996},[998,10422,10423,10448],{},[1001,10424,10425,10427,10429,10446],{},[1081,10426,1084],{"mathvariant":1083},[1004,10428,1088],{"stretchy":1087},[1001,10430,10431,10434,10443],{},[4012,10432,10433],{},"sous-probl",[10435,10436,10437,10440],"mover",{"accent":1019},[4012,10438,10439],{},"e",[1004,10441,10442],{},"ˋ",[4012,10444,10445],{},"mes vus",[1004,10447,1094],{"stretchy":1087},[1011,10449,10450],{"encoding":1013},"\\mathcal{O}(\\text{sous-problèmes vus})",[663,10452,10454],{"className":10453,"ariaHidden":1019},[1018],[663,10455,10457,10460,10463,10466,10511],{"className":10456},[1023],[663,10458],{"className":10459,"style":1107},[1027],[663,10461,1084],{"className":10462,"style":1112},[1032,1111],[663,10464,1088],{"className":10465},[1116],[663,10467,10469,10472,10508],{"className":10468},[1032,9107],[663,10470,10433],{"className":10471},[1032],[663,10473,10476],{"className":10474},[1032,10475],"accent",[663,10477,10479],{"className":10478},[3602],[663,10480,10482],{"className":10481},[3607],[663,10483,10485,10495],{"className":10484,"style":7042},[3611],[663,10486,10488,10492],{"style":10487},"top:-3em;",[663,10489],{"className":10490,"style":10491},[3619],"height:3em;",[663,10493,10439],{"className":10494},[1032],[663,10496,10497,10500],{"style":10487},[663,10498],{"className":10499,"style":10491},[3619],[663,10501,10505],{"className":10502,"style":10504},[10503],"accent-body","left:-0.25em;",[663,10506,10442],{"className":10507},[1032],[663,10509,10445],{"className":10510},[1032],[663,10512,1094],{"className":10513},[1124],[1188,10515,10516],{},[663,10517,10519,10550],{"className":10518},[988],[663,10520,10522],{"className":10521},[992],[994,10523,10524],{"xmlns":996},[998,10525,10526,10547],{},[1001,10527,10528,10530,10532,10545],{},[1081,10529,1084],{"mathvariant":1083},[1004,10531,1088],{"stretchy":1087},[1001,10533,10534,10536,10542],{},[4012,10535,10433],{},[10435,10537,10538,10540],{"accent":1019},[4012,10539,10439],{},[1004,10541,10442],{},[4012,10543,10544],{},"mes totaux",[1004,10546,1094],{"stretchy":1087},[1011,10548,10549],{"encoding":1013},"\\mathcal{O}(\\text{sous-problèmes totaux})",[663,10551,10553],{"className":10552,"ariaHidden":1019},[1018],[663,10554,10556,10559,10562,10565,10605],{"className":10555},[1023],[663,10557],{"className":10558,"style":1107},[1027],[663,10560,1084],{"className":10561,"style":1112},[1032,1111],[663,10563,1088],{"className":10564},[1116],[663,10566,10568,10571,10602],{"className":10567},[1032,9107],[663,10569,10433],{"className":10570},[1032],[663,10572,10574],{"className":10573},[1032,10475],[663,10575,10577],{"className":10576},[3602],[663,10578,10580],{"className":10579},[3607],[663,10581,10583,10591],{"className":10582,"style":7042},[3611],[663,10584,10585,10588],{"style":10487},[663,10586],{"className":10587,"style":10491},[3619],[663,10589,10439],{"className":10590},[1032],[663,10592,10593,10596],{"style":10487},[663,10594],{"className":10595,"style":10491},[3619],[663,10597,10599],{"className":10598,"style":10504},[10503],[663,10600,10442],{"className":10601},[1032],[663,10603,10544],{"className":10604},[1032],[663,10606,1094],{"className":10607},[1124],[1170,10609,10610,10613,10645],{},[1188,10611,10612],{},"Pile d'appels",[1188,10614,10615,10616,10644],{},"risque de débordement pour ",[663,10617,10619,10632],{"className":10618},[988],[663,10620,10622],{"className":10621},[992],[994,10623,10624],{"xmlns":996},[998,10625,10626,10630],{},[1001,10627,10628],{},[1081,10629,1091],{},[1011,10631,1091],{"encoding":1013},[663,10633,10635],{"className":10634,"ariaHidden":1019},[1018],[663,10636,10638,10641],{"className":10637},[1023],[663,10639],{"className":10640,"style":1681},[1027],[663,10642,1091],{"className":10643},[1032,1120]," grand",[1188,10646,10647],{},"aucun risque",[1170,10649,10650,10653,10656],{},[1188,10651,10652],{},"Lisibilité",[1188,10654,10655],{},"proche de l'équation mathématique",[1188,10657,10658],{},"proche d'une matrice à remplir",[599,10660,10661,10664,10665,10668,10669,10672],{},[603,10662,10663],{},"Règle pratique"," : utiliser ",[603,10666,10667],{},"mémoïsation"," quand la récurrence est claire\nmais la tabulation peu intuitive ; ",[603,10670,10671],{},"tabulation"," quand on cherche à\noptimiser la mémoire ou à éviter la récursion profonde.",[594,10674,10676],{"id":10675},"le-coût-en-mémoire-un-levier-essentiel","Le coût en mémoire — un levier essentiel",[599,10678,10679,10680,10732,10733,10784,10785,10788,10789,8498,10832,3679],{},"Beaucoup de problèmes de programmation dynamique peuvent voir leur mémoire\nréduite. Exemple : pour le plus court chemin sur une grille\n",[663,10681,10683,10702],{"className":10682},[988],[663,10684,10686],{"className":10685},[992],[994,10687,10688],{"xmlns":996},[998,10689,10690,10699],{},[1001,10691,10692,10695,10697],{},[1081,10693,10694],{},"m",[1004,10696,4634],{},[1081,10698,1091],{},[1011,10700,10701],{"encoding":1013},"m \\times n",[663,10703,10705,10723],{"className":10704,"ariaHidden":1019},[1018],[663,10706,10708,10711,10714,10717,10720],{"className":10707},[1023],[663,10709],{"className":10710,"style":2117},[1027],[663,10712,10694],{"className":10713},[1032,1120],[663,10715],{"className":10716,"style":2124},[1724],[663,10718,4634],{"className":10719},[2128],[663,10721],{"className":10722,"style":2124},[1724],[663,10724,10726,10729],{"className":10725},[1023],[663,10727],{"className":10728,"style":1681},[1027],[663,10730,1091],{"className":10731},[1032,1120],", la table de tailles ",[663,10734,10736,10754],{"className":10735},[988],[663,10737,10739],{"className":10738},[992],[994,10740,10741],{"xmlns":996},[998,10742,10743,10751],{},[1001,10744,10745,10747,10749],{},[1081,10746,10694],{},[1004,10748,3844],{},[1081,10750,1091],{},[1011,10752,10753],{"encoding":1013},"m \\cdot n",[663,10755,10757,10775],{"className":10756,"ariaHidden":1019},[1018],[663,10758,10760,10763,10766,10769,10772],{"className":10759},[1023],[663,10761],{"className":10762,"style":3909},[1027],[663,10764,10694],{"className":10765},[1032,1120],[663,10767],{"className":10768,"style":2124},[1724],[663,10770,3844],{"className":10771},[2128],[663,10773],{"className":10774,"style":2124},[1724],[663,10776,10778,10781],{"className":10777},[1023],[663,10779],{"className":10780,"style":1681},[1027],[663,10782,1091],{"className":10783},[1032,1120]," peut souvent être ramenée à\n",[603,10786,10787],{},"deux lignes"," car chaque case ne dépend que de la ligne précédente\n(",[663,10790,10792,10811],{"className":10791},[988],[663,10793,10795],{"className":10794},[992],[994,10796,10797],{"xmlns":996},[998,10798,10799,10809],{},[1001,10800,10801,10803,10805,10807],{},[1081,10802,1084],{"mathvariant":1083},[1004,10804,1088],{"stretchy":1087},[1081,10806,1091],{},[1004,10808,1094],{"stretchy":1087},[1011,10810,1097],{"encoding":1013},[663,10812,10814],{"className":10813,"ariaHidden":1019},[1018],[663,10815,10817,10820,10823,10826,10829],{"className":10816},[1023],[663,10818],{"className":10819,"style":1107},[1027],[663,10821,1084],{"className":10822,"style":1112},[1032,1111],[663,10824,1088],{"className":10825},[1116],[663,10827,1091],{"className":10828},[1032,1120],[663,10830,1094],{"className":10831},[1124],[663,10833,10835,10857],{"className":10834},[988],[663,10836,10838],{"className":10837},[992],[994,10839,10840],{"xmlns":996},[998,10841,10842,10854],{},[1001,10843,10844,10846,10848,10850,10852],{},[1081,10845,1084],{"mathvariant":1083},[1004,10847,1088],{"stretchy":1087},[1081,10849,10694],{},[1081,10851,1091],{},[1004,10853,1094],{"stretchy":1087},[1011,10855,10856],{"encoding":1013},"\\mathcal{O}(mn)",[663,10858,10860],{"className":10859,"ariaHidden":1019},[1018],[663,10861,10863,10866,10869,10872,10875],{"className":10862},[1023],[663,10864],{"className":10865,"style":1107},[1027],[663,10867,1084],{"className":10868,"style":1112},[1032,1111],[663,10870,1088],{"className":10871},[1116],[663,10873,1008],{"className":10874},[1032,1120],[663,10876,1094],{"className":10877},[1124],[654,10879,10881],{"className":656,"code":10880,"language":658,"meta":659,"style":659},"def plus_court_chemin_grille(grille):\n    \"\"\"Coût minimal en partant du coin haut-gauche, en bas-droite, déplacements bas\u002Fdroite.\"\"\"\n    m, n = len(grille), len(grille[0])\n    precedente = [0] * n\n    precedente[0] = grille[0][0]\n    for j in range(1, n):\n        precedente[j] = precedente[j-1] + grille[0][j]\n    for i in range(1, m):\n        courante = [0] * n\n        courante[0] = precedente[0] + grille[i][0]\n        for j in range(1, n):\n            courante[j] = grille[i][j] + min(courante[j-1], precedente[j])\n        precedente = courante\n    return precedente[n-1]\n",[646,10882,10883,10893,10898,10921,10939,10963,10980,11005,11022,11039,11066,11082,11106,11116],{"__ignoreMap":659},[663,10884,10885,10887,10890],{"class":665,"line":666},[663,10886,877],{"class":669},[663,10888,10889],{"class":673}," plus_court_chemin_grille",[663,10891,10892],{"class":677},"(grille):\n",[663,10894,10895],{"class":665,"line":681},[663,10896,10897],{"class":1271},"    \"\"\"Coût minimal en partant du coin haut-gauche, en bas-droite, déplacements bas\u002Fdroite.\"\"\"\n",[663,10899,10900,10903,10905,10907,10910,10913,10916,10918],{"class":665,"line":709},[663,10901,10902],{"class":677},"    m, n ",[663,10904,694],{"class":669},[663,10906,6729],{"class":687},[663,10908,10909],{"class":677},"(grille), ",[663,10911,10912],{"class":687},"len",[663,10914,10915],{"class":677},"(grille[",[663,10917,1051],{"class":687},[663,10919,10920],{"class":677},"])\n",[663,10922,10923,10926,10928,10930,10932,10934,10936],{"class":665,"line":723},[663,10924,10925],{"class":677},"    precedente ",[663,10927,694],{"class":669},[663,10929,10143],{"class":677},[663,10931,1051],{"class":687},[663,10933,10148],{"class":677},[663,10935,10160],{"class":669},[663,10937,10938],{"class":677}," n\n",[663,10940,10941,10944,10946,10948,10950,10953,10955,10958,10960],{"class":665,"line":736},[663,10942,10943],{"class":677},"    precedente[",[663,10945,1051],{"class":687},[663,10947,10148],{"class":677},[663,10949,694],{"class":669},[663,10951,10952],{"class":677}," grille[",[663,10954,1051],{"class":687},[663,10956,10957],{"class":677},"][",[663,10959,1051],{"class":687},[663,10961,10962],{"class":677},"]\n",[663,10964,10965,10967,10969,10971,10973,10975,10977],{"class":665,"line":749},[663,10966,3344],{"class":669},[663,10968,6738],{"class":677},[663,10970,2438],{"class":669},[663,10972,10178],{"class":687},[663,10974,1088],{"class":677},[663,10976,822],{"class":687},[663,10978,10979],{"class":677},", n):\n",[663,10981,10982,10985,10987,10990,10992,10994,10996,10998,11000,11002],{"class":665,"line":756},[663,10983,10984],{"class":677},"        precedente[j] ",[663,10986,694],{"class":669},[663,10988,10989],{"class":677}," precedente[j",[663,10991,3162],{"class":669},[663,10993,822],{"class":687},[663,10995,10148],{"class":677},[663,10997,924],{"class":669},[663,10999,10952],{"class":677},[663,11001,1051],{"class":687},[663,11003,11004],{"class":677},"][j]\n",[663,11006,11007,11009,11011,11013,11015,11017,11019],{"class":665,"line":763},[663,11008,3344],{"class":669},[663,11010,6724],{"class":677},[663,11012,2438],{"class":669},[663,11014,10178],{"class":687},[663,11016,1088],{"class":677},[663,11018,822],{"class":687},[663,11020,11021],{"class":677},", m):\n",[663,11023,11024,11027,11029,11031,11033,11035,11037],{"class":665,"line":769},[663,11025,11026],{"class":677},"        courante ",[663,11028,694],{"class":669},[663,11030,10143],{"class":677},[663,11032,1051],{"class":687},[663,11034,10148],{"class":677},[663,11036,10160],{"class":669},[663,11038,10938],{"class":677},[663,11040,11041,11044,11046,11048,11050,11053,11055,11057,11059,11062,11064],{"class":665,"line":775},[663,11042,11043],{"class":677},"        courante[",[663,11045,1051],{"class":687},[663,11047,10148],{"class":677},[663,11049,694],{"class":669},[663,11051,11052],{"class":677}," precedente[",[663,11054,1051],{"class":687},[663,11056,10148],{"class":677},[663,11058,924],{"class":669},[663,11060,11061],{"class":677}," grille[i][",[663,11063,1051],{"class":687},[663,11065,10962],{"class":677},[663,11067,11068,11070,11072,11074,11076,11078,11080],{"class":665,"line":781},[663,11069,2432],{"class":669},[663,11071,6738],{"class":677},[663,11073,2438],{"class":669},[663,11075,10178],{"class":687},[663,11077,1088],{"class":677},[663,11079,822],{"class":687},[663,11081,10979],{"class":677},[663,11083,11084,11087,11089,11092,11094,11096,11099,11101,11103],{"class":665,"line":787},[663,11085,11086],{"class":677},"            courante[j] ",[663,11088,694],{"class":669},[663,11090,11091],{"class":677}," grille[i][j] ",[663,11093,924],{"class":669},[663,11095,9439],{"class":687},[663,11097,11098],{"class":677},"(courante[j",[663,11100,3162],{"class":669},[663,11102,822],{"class":687},[663,11104,11105],{"class":677},"], precedente[j])\n",[663,11107,11108,11111,11113],{"class":665,"line":793},[663,11109,11110],{"class":677},"        precedente ",[663,11112,694],{"class":669},[663,11114,11115],{"class":677}," courante\n",[663,11117,11118,11120,11123,11125,11127],{"class":665,"line":810},[663,11119,912],{"class":669},[663,11121,11122],{"class":677}," precedente[n",[663,11124,3162],{"class":669},[663,11126,822],{"class":687},[663,11128,10962],{"class":677},[2078,11130,11131],{},[599,11132,11133,11134,11136,11137,11165,11166,610],{},"On garde ",[603,11135,10787],{}," plutôt que toute la table — gain mémoire d'un facteur\n",[663,11138,11140,11153],{"className":11139},[988],[663,11141,11143],{"className":11142},[992],[994,11144,11145],{"xmlns":996},[998,11146,11147,11151],{},[1001,11148,11149],{},[1081,11150,10694],{},[1011,11152,10694],{"encoding":1013},[663,11154,11156],{"className":11155,"ariaHidden":1019},[1018],[663,11157,11159,11162],{"className":11158},[1023],[663,11160],{"className":11161,"style":1681},[1027],[663,11163,10694],{"className":11164},[1032,1120],". C'est le compromis classique : ",[603,11167,11168],{},"plus de mémoire intermédiaire = code\nplus simple, moins de mémoire = code plus subtil",[594,11170,11172],{"id":11171},"alignement-de-séquences-un-survol","Alignement de séquences — un survol",[599,11174,3442,11175,11178],{},[603,11176,11177],{},"alignement de séquences"," est un problème central en bio-informatique :\nétant données deux chaînes (par exemple deux brins d'ADN), trouver l'alignement\nqui maximise le nombre de coïncidences en autorisant des insertions, des\nsuppressions et des substitutions.",[599,11180,11181,11182,11243,11244,2011,11273,11302],{},"L'équation de récurrence sur le score ",[663,11183,11185,11212],{"className":11184},[988],[663,11186,11188],{"className":11187},[992],[994,11189,11190],{"xmlns":996},[998,11191,11192,11209],{},[1001,11193,11194,11197,11199,11202,11204,11207],{},[1081,11195,11196],{},"S",[1004,11198,1088],{"stretchy":1087},[1081,11200,11201],{},"i",[1004,11203,8490],{"separator":1019},[1081,11205,11206],{},"j",[1004,11208,1094],{"stretchy":1087},[1011,11210,11211],{"encoding":1013},"S(i, j)",[663,11213,11215],{"className":11214,"ariaHidden":1019},[1018],[663,11216,11218,11221,11224,11227,11230,11233,11236,11240],{"className":11217},[1023],[663,11219],{"className":11220,"style":1107},[1027],[663,11222,11196],{"className":11223,"style":2685},[1032,1120],[663,11225,1088],{"className":11226},[1116],[663,11228,11201],{"className":11229},[1032,1120],[663,11231,8490],{"className":11232},[8489],[663,11234],{"className":11235,"style":2000},[1724],[663,11237,11206],{"className":11238,"style":11239},[1032,1120],"margin-right:0.0572em;",[663,11241,1094],{"className":11242},[1124]," entre les préfixes de longueurs\n",[663,11245,11247,11260],{"className":11246},[988],[663,11248,11250],{"className":11249},[992],[994,11251,11252],{"xmlns":996},[998,11253,11254,11258],{},[1001,11255,11256],{},[1081,11257,11201],{},[1011,11259,11201],{"encoding":1013},[663,11261,11263],{"className":11262,"ariaHidden":1019},[1018],[663,11264,11266,11270],{"className":11265},[1023],[663,11267],{"className":11268,"style":11269},[1027],"height:0.6595em;",[663,11271,11201],{"className":11272},[1032,1120],[663,11274,11276,11289],{"className":11275},[988],[663,11277,11279],{"className":11278},[992],[994,11280,11281],{"xmlns":996},[998,11282,11283,11287],{},[1001,11284,11285],{},[1081,11286,11206],{},[1011,11288,11206],{"encoding":1013},[663,11290,11292],{"className":11291,"ariaHidden":1019},[1018],[663,11293,11295,11299],{"className":11294},[1023],[663,11296],{"className":11297,"style":11298},[1027],"height:0.854em;vertical-align:-0.1944em;",[663,11300,11206],{"className":11301,"style":11239},[1032,1120]," est :",[663,11304,11306],{"className":11305},[3815],[663,11307,11309,11454],{"className":11308},[988],[663,11310,11312],{"className":11311},[992],[994,11313,11314],{"xmlns":996,"display":3824},[998,11315,11316,11451],{},[1001,11317,11318,11320,11322,11324,11326,11328,11330,11332,11335,11337],{},[1081,11319,11196],{},[1004,11321,1088],{"stretchy":1087},[1081,11323,11201],{},[1004,11325,8490],{"separator":1019},[1081,11327,11206],{},[1004,11329,1094],{"stretchy":1087},[1004,11331,694],{},[1081,11333,11334],{},"max",[1004,11336,1965],{},[1001,11338,11339,11341],{},[1004,11340,8743],{"fence":1019},[8999,11342,11343,11394,11423],{"rowspacing":9001,"columnalign":9002,"columnspacing":9003},[9005,11344,11345],{},[9008,11346,11347],{},[9011,11348,11349],{"scriptlevel":1051,"displaystyle":1087},[1001,11350,11351,11353,11355,11357,11359,11361,11363,11365,11367,11369,11371,11373,11376,11378,11384,11386,11392],{},[1081,11352,11196],{},[1004,11354,1088],{"stretchy":1087},[1081,11356,11201],{},[1004,11358,1006],{},[1008,11360,822],{},[1004,11362,8490],{"separator":1019},[1081,11364,11206],{},[1004,11366,1006],{},[1008,11368,822],{},[1004,11370,1094],{"stretchy":1087},[1004,11372,924],{},[4012,11374,11375],{},"match",[1004,11377,1088],{"stretchy":1087},[3562,11379,11380,11382],{},[1081,11381,3707],{},[1081,11383,11201],{},[1004,11385,8490],{"separator":1019},[3562,11387,11388,11390],{},[1081,11389,3742],{},[1081,11391,11206],{},[1004,11393,1094],{"stretchy":1087},[9005,11395,11396],{},[9008,11397,11398],{},[9011,11399,11400],{"scriptlevel":1051,"displaystyle":1087},[1001,11401,11402,11404,11406,11408,11410,11412,11414,11416,11418,11420],{},[1081,11403,11196],{},[1004,11405,1088],{"stretchy":1087},[1081,11407,11201],{},[1004,11409,1006],{},[1008,11411,822],{},[1004,11413,8490],{"separator":1019},[1081,11415,11206],{},[1004,11417,1094],{"stretchy":1087},[1004,11419,924],{},[4012,11421,11422],{},"indel",[9005,11424,11425],{},[9008,11426,11427],{},[9011,11428,11429],{"scriptlevel":1051,"displaystyle":1087},[1001,11430,11431,11433,11435,11437,11439,11441,11443,11445,11447,11449],{},[1081,11432,11196],{},[1004,11434,1088],{"stretchy":1087},[1081,11436,11201],{},[1004,11438,8490],{"separator":1019},[1081,11440,11206],{},[1004,11442,1006],{},[1008,11444,822],{},[1004,11446,1094],{"stretchy":1087},[1004,11448,924],{},[4012,11450,11422],{},[1011,11452,11453],{"encoding":1013},"S(i, j) = \\max \\begin{cases}\nS(i-1, j-1) + \\text{match}(a_i, b_j) \\\\\nS(i-1, j) + \\text{indel} \\\\\nS(i, j-1) + \\text{indel}\n\\end{cases}",[663,11455,11457,11493],{"className":11456,"ariaHidden":1019},[1018],[663,11458,11460,11463,11466,11469,11472,11475,11478,11481,11484,11487,11490],{"className":11459},[1023],[663,11461],{"className":11462,"style":1107},[1027],[663,11464,11196],{"className":11465,"style":2685},[1032,1120],[663,11467,1088],{"className":11468},[1116],[663,11470,11201],{"className":11471},[1032,1120],[663,11473,8490],{"className":11474},[8489],[663,11476],{"className":11477,"style":2000},[1724],[663,11479,11206],{"className":11480,"style":11239},[1032,1120],[663,11482,1094],{"className":11483},[1124],[663,11485],{"className":11486,"style":1725},[1724],[663,11488,694],{"className":11489},[1720],[663,11491],{"className":11492,"style":1725},[1724],[663,11494,11496,11500,11503,11506],{"className":11495},[1023],[663,11497],{"className":11498,"style":11499},[1027],"height:4.32em;vertical-align:-1.91em;",[663,11501,11334],{"className":11502},[1991],[663,11504],{"className":11505,"style":2000},[1724],[663,11507,11509,11611,11918],{"className":11508},[8897],[663,11510,11512],{"className":11511},[1116],[663,11513,11516],{"className":11514},[9147,11515],"mult",[663,11517,11519,11602],{"className":11518},[3602,3603],[663,11520,11522,11599],{"className":11521},[3607],[663,11523,11526,11541,11563,11575,11587],{"className":11524,"style":11525},[3611],"height:2.35em;",[663,11527,11529,11533],{"style":11528},"top:-2.2em;",[663,11530],{"className":11531,"style":11532},[3619],"height:3.15em;",[663,11534,11538],{"className":11535},[11536,11537],"delimsizinginner","delim-size4",[663,11539,11540],{},"⎩",[663,11542,11544,11547],{"style":11543},"top:-2.192em;",[663,11545],{"className":11546,"style":11532},[3619],[663,11548,11550],{"style":11549},"height:0.316em;width:0.8889em;",[11551,11552,11559],"svg",{"xmlns":11553,"width":11554,"height":11555,"style":11556,"viewBox":11557,"preserveAspectRatio":11558},"http:\u002F\u002Fwww.w3.org\u002F2000\u002Fsvg","0.8889em","0.316em","width:0.8889em","0 0 888.89 316","xMinYMin",[11560,11561],"path",{"d":11562},"M384 0 H504 V316 H384z M384 0 H504 V316 H384z",[663,11564,11566,11569],{"style":11565},"top:-3.15em;",[663,11567],{"className":11568,"style":11532},[3619],[663,11570,11572],{"className":11571},[11536,11537],[663,11573,11574],{},"⎨",[663,11576,11578,11581],{"style":11577},"top:-4.292em;",[663,11579],{"className":11580,"style":11532},[3619],[663,11582,11583],{"style":11549},[11551,11584,11585],{"xmlns":11553,"width":11554,"height":11555,"style":11556,"viewBox":11557,"preserveAspectRatio":11558},[11560,11586],{"d":11562},[663,11588,11590,11593],{"style":11589},"top:-4.6em;",[663,11591],{"className":11592,"style":11532},[3619],[663,11594,11596],{"className":11595},[11536,11537],[663,11597,11598],{},"⎧",[663,11600,3635],{"className":11601},[3634],[663,11603,11605],{"className":11604},[3607],[663,11606,11609],{"className":11607,"style":11608},[3611],"height:1.85em;",[663,11610],{},[663,11612,11614],{"className":11613},[1032],[663,11615,11617],{"className":11616},[8999],[663,11618,11620],{"className":11619},[9158],[663,11621,11623,11909],{"className":11622},[3602,3603],[663,11624,11626,11906],{"className":11625},[3607],[663,11627,11630,11792,11849],{"className":11628,"style":11629},[3611],"height:2.41em;",[663,11631,11633,11636],{"style":11632},"top:-4.41em;",[663,11634],{"className":11635,"style":9175},[3619],[663,11637,11639,11642,11645,11648,11651,11654,11657,11660,11663,11666,11669,11672,11675,11678,11681,11684,11687,11690,11693,11699,11702,11743,11746,11749,11789],{"className":11638},[1032],[663,11640,11196],{"className":11641,"style":2685},[1032,1120],[663,11643,1088],{"className":11644},[1116],[663,11646,11201],{"className":11647},[1032,1120],[663,11649],{"className":11650,"style":2124},[1724],[663,11652,1006],{"className":11653},[2128],[663,11655],{"className":11656,"style":2124},[1724],[663,11658,822],{"className":11659},[1032],[663,11661,8490],{"className":11662},[8489],[663,11664],{"className":11665,"style":2000},[1724],[663,11667,11206],{"className":11668,"style":11239},[1032,1120],[663,11670],{"className":11671,"style":2124},[1724],[663,11673,1006],{"className":11674},[2128],[663,11676],{"className":11677,"style":2124},[1724],[663,11679,822],{"className":11680},[1032],[663,11682,1094],{"className":11683},[1124],[663,11685],{"className":11686,"style":2124},[1724],[663,11688,924],{"className":11689},[2128],[663,11691],{"className":11692,"style":2124},[1724],[663,11694,11696],{"className":11695},[1032,9107],[663,11697,11375],{"className":11698},[1032],[663,11700,1088],{"className":11701},[1116],[663,11703,11705,11708],{"className":11704},[1032],[663,11706,3707],{"className":11707},[1032,1120],[663,11709,11711],{"className":11710},[3598],[663,11712,11714,11735],{"className":11713},[3602,3603],[663,11715,11717,11732],{"className":11716},[3607],[663,11718,11721],{"className":11719,"style":11720},[3611],"height:0.3117em;",[663,11722,11723,11726],{"style":5004},[663,11724],{"className":11725,"style":3620},[3619],[663,11727,11729],{"className":11728},[3624,3625,3626,3627],[663,11730,11201],{"className":11731},[1032,1120,3627],[663,11733,3635],{"className":11734},[3634],[663,11736,11738],{"className":11737},[3607],[663,11739,11741],{"className":11740,"style":5023},[3611],[663,11742],{},[663,11744,8490],{"className":11745},[8489],[663,11747],{"className":11748,"style":2000},[1724],[663,11750,11752,11755],{"className":11751},[1032],[663,11753,3742],{"className":11754},[1032,1120],[663,11756,11758],{"className":11757},[3598],[663,11759,11761,11781],{"className":11760},[3602,3603],[663,11762,11764,11778],{"className":11763},[3607],[663,11765,11767],{"className":11766,"style":11720},[3611],[663,11768,11769,11772],{"style":5004},[663,11770],{"className":11771,"style":3620},[3619],[663,11773,11775],{"className":11774},[3624,3625,3626,3627],[663,11776,11206],{"className":11777,"style":11239},[1032,1120,3627],[663,11779,3635],{"className":11780},[3634],[663,11782,11784],{"className":11783},[3607],[663,11785,11787],{"className":11786,"style":9270},[3611],[663,11788],{},[663,11790,1094],{"className":11791},[1124],[663,11793,11795,11798],{"style":11794},"top:-2.97em;",[663,11796],{"className":11797,"style":9175},[3619],[663,11799,11801,11804,11807,11810,11813,11816,11819,11822,11825,11828,11831,11834,11837,11840,11843],{"className":11800},[1032],[663,11802,11196],{"className":11803,"style":2685},[1032,1120],[663,11805,1088],{"className":11806},[1116],[663,11808,11201],{"className":11809},[1032,1120],[663,11811],{"className":11812,"style":2124},[1724],[663,11814,1006],{"className":11815},[2128],[663,11817],{"className":11818,"style":2124},[1724],[663,11820,822],{"className":11821},[1032],[663,11823,8490],{"className":11824},[8489],[663,11826],{"className":11827,"style":2000},[1724],[663,11829,11206],{"className":11830,"style":11239},[1032,1120],[663,11832,1094],{"className":11833},[1124],[663,11835],{"className":11836,"style":2124},[1724],[663,11838,924],{"className":11839},[2128],[663,11841],{"className":11842,"style":2124},[1724],[663,11844,11846],{"className":11845},[1032,9107],[663,11847,11422],{"className":11848},[1032],[663,11850,11852,11855],{"style":11851},"top:-1.53em;",[663,11853],{"className":11854,"style":9175},[3619],[663,11856,11858,11861,11864,11867,11870,11873,11876,11879,11882,11885,11888,11891,11894,11897,11900],{"className":11857},[1032],[663,11859,11196],{"className":11860,"style":2685},[1032,1120],[663,11862,1088],{"className":11863},[1116],[663,11865,11201],{"className":11866},[1032,1120],[663,11868,8490],{"className":11869},[8489],[663,11871],{"className":11872,"style":2000},[1724],[663,11874,11206],{"className":11875,"style":11239},[1032,1120],[663,11877],{"className":11878,"style":2124},[1724],[663,11880,1006],{"className":11881},[2128],[663,11883],{"className":11884,"style":2124},[1724],[663,11886,822],{"className":11887},[1032],[663,11889,1094],{"className":11890},[1124],[663,11892],{"className":11893,"style":2124},[1724],[663,11895,924],{"className":11896},[2128],[663,11898],{"className":11899,"style":2124},[1724],[663,11901,11903],{"className":11902},[1032,9107],[663,11904,11422],{"className":11905},[1032],[663,11907,3635],{"className":11908},[3634],[663,11910,11912],{"className":11911},[3607],[663,11913,11916],{"className":11914,"style":11915},[3611],"height:1.91em;",[663,11917],{},[663,11919],{"className":11920},[1124,9392],[599,11922,11923,11924,9618,11995,12081,12082,12085,12086,12089],{},"C'est exactement le schéma de programmation dynamique : on remplit une table\n",[663,11925,11927,11953],{"className":11926},[988],[663,11928,11930],{"className":11929},[992],[994,11931,11932],{"xmlns":996},[998,11933,11934,11950],{},[1001,11935,11936,11938,11940,11942,11944,11946,11948],{},[1081,11937,2620],{"mathvariant":1956},[1081,11939,3707],{},[1081,11941,2620],{"mathvariant":1956},[1004,11943,4634],{},[1081,11945,2620],{"mathvariant":1956},[1081,11947,3742],{},[1081,11949,2620],{"mathvariant":1956},[1011,11951,11952],{"encoding":1013},"|a| \\times |b|",[663,11954,11956,11980],{"className":11955,"ariaHidden":1019},[1018],[663,11957,11959,11962,11965,11968,11971,11974,11977],{"className":11958},[1023],[663,11960],{"className":11961,"style":1107},[1027],[663,11963,2620],{"className":11964},[1032],[663,11966,3707],{"className":11967},[1032,1120],[663,11969,2620],{"className":11970},[1032],[663,11972],{"className":11973,"style":2124},[1724],[663,11975,4634],{"className":11976},[2128],[663,11978],{"className":11979,"style":2124},[1724],[663,11981,11983,11986,11989,11992],{"className":11982},[1023],[663,11984],{"className":11985,"style":1107},[1027],[663,11987,2620],{"className":11988},[1032],[663,11990,3742],{"className":11991},[1032,1120],[663,11993,2620],{"className":11994},[1032],[663,11996,11998,12030],{"className":11997},[988],[663,11999,12001],{"className":12000},[992],[994,12002,12003],{"xmlns":996},[998,12004,12005,12027],{},[1001,12006,12007,12009,12011,12013,12015,12017,12019,12021,12023,12025],{},[1081,12008,1084],{"mathvariant":1083},[1004,12010,1088],{"stretchy":1087},[1081,12012,2620],{"mathvariant":1956},[1081,12014,3707],{},[1081,12016,2620],{"mathvariant":1956},[1004,12018,3844],{},[1081,12020,2620],{"mathvariant":1956},[1081,12022,3742],{},[1081,12024,2620],{"mathvariant":1956},[1004,12026,1094],{"stretchy":1087},[1011,12028,12029],{"encoding":1013},"\\mathcal{O}(|a| \\cdot |b|)",[663,12031,12033,12063],{"className":12032,"ariaHidden":1019},[1018],[663,12034,12036,12039,12042,12045,12048,12051,12054,12057,12060],{"className":12035},[1023],[663,12037],{"className":12038,"style":1107},[1027],[663,12040,1084],{"className":12041,"style":1112},[1032,1111],[663,12043,1088],{"className":12044},[1116],[663,12046,2620],{"className":12047},[1032],[663,12049,3707],{"className":12050},[1032,1120],[663,12052,2620],{"className":12053},[1032],[663,12055],{"className":12056,"style":2124},[1724],[663,12058,3844],{"className":12059},[2128],[663,12061],{"className":12062,"style":2124},[1724],[663,12064,12066,12069,12072,12075,12078],{"className":12065},[1023],[663,12067],{"className":12068,"style":1107},[1027],[663,12070,2620],{"className":12071},[1032],[663,12073,3742],{"className":12074},[1032,1120],[663,12076,2620],{"className":12077},[1032],[663,12079,1094],{"className":12080},[1124],". L'algorithme ",[603,12083,12084],{},"Needleman-Wunsch","\nfait cela et a révolutionné l'analyse de génomes ; l'outil ",[603,12087,12088],{},"BLAST",",\nutilisé quotidiennement par les biologistes pour comparer des séquences\nADN à une banque de référence, en est une descendance directe.",[1127,12091,12093,12098],{"correct":816,"slug":12092},"programmation-dynamique-c2",[1131,12094,12095],{"v-slot:question":659},[599,12096,12097],{},"Sans mémoïsation, le rendu de monnaie naïf est…",[1131,12099,12100],{"v-slot:choices":659},[1139,12101,12102,12105,12108],{},[1142,12103,12104],{},"linéaire",[1142,12106,12107],{},"quadratique",[1142,12109,9617],{},[594,12111,2189],{"id":2188},[599,12113,12114,12115,12118,12119,12122,12123,2376,12126,12129,12130,12133,12134,610],{},"La programmation dynamique est une technique très générale : elle s'applique\nau ",[603,12116,12117],{},"plus court chemin"," dans un DAG, à la ",[603,12120,12121],{},"distance d'édition"," (Levenshtein),\nau ",[603,12124,12125],{},"sac à dos",[1416,12127,12128],{},"knapsack","), à la ",[603,12131,12132],{},"multiplication de matrices chaînée",", à\nde nombreuses questions de théorie des jeux… La difficulté n'est pas dans\nl'algorithme mais dans l'",[603,12135,12136],{},"identification de la bonne récurrence",[2198,12138,12139],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sIIMD, html code.shiki .sIIMD{--shiki-light:#032F62;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sCsY4, html code.shiki .sCsY4{--shiki-light:#6A737D;--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":659,"searchDepth":681,"depth":681,"links":12141},[12142,12143,12144,12149,12150,12151,12152],{"id":596,"depth":681,"text":597},{"id":8688,"depth":681,"text":8689},{"id":8716,"depth":681,"text":8717,"children":12145},[12146,12147,12148],{"id":9396,"depth":709,"text":9397},{"id":9704,"depth":709,"text":9705},{"id":10065,"depth":709,"text":10066},{"id":10365,"depth":681,"text":10366},{"id":10675,"depth":681,"text":10676},{"id":11171,"depth":681,"text":11172},{"id":2188,"depth":681,"text":2189},"Mémoriser les sous-problèmes déjà résolus pour éviter de les recalculer — la stratégie qui transforme un exponentiel en polynomial.",{},[12156,12158],{"slug":10345,"kind":2216,"question":10350,"choices":12157,"correct":822,"multi":2218,"explanation":659},[7833,10359,10362],{"slug":12092,"kind":2216,"question":12097,"choices":12159,"correct":816,"multi":2218,"explanation":659},[12104,12107,9617],{"title":578,"description":12153},"105bkV_6wmtoTzYEGGPyudtZBu6i4ph_u48X_Be-sqk",{"id":12163,"title":582,"bo":12164,"body":12166,"description":13659,"eval":2211,"extension":2212,"labo":2211,"meta":13660,"navigation":752,"path":583,"quizzes":13661,"readingTime":666,"seo":13666,"stem":584,"tp":2211,"__hash__":13667},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.md",[12165],"TE05",{"type":591,"value":12167,"toc":13650},[12168,12170,12356,12367,12369,12373,12376,12466,12618,12622,12625,12646,12653,12765,12769,12837,13044,13324,13340,13361,13365,13375,13382,13389,13393,13396,13536,13542,13560,13562,13648],[594,12169,597],{"id":596},[599,12171,12172,12175,12176,12179,12180,12227,12228,12256,12257,12285,12286,12289,12290,12293,12294,12297,12298,12352,12353,610],{},[603,12173,12174],{},"Rechercher un motif dans un texte"," est une opération omniprésente : la\nbarre de recherche d'un éditeur de texte, la commande ",[646,12177,12178],{},"grep"," sous Unix, les\nfiltres anti-spam, la bio-informatique… Plutôt que de comparer le motif\ncaractère par caractère à toutes les positions du texte (force brute,\ncoût ",[663,12181,12183,12205],{"className":12182},[988],[663,12184,12186],{"className":12185},[992],[994,12187,12188],{"xmlns":996},[998,12189,12190,12202],{},[1001,12191,12192,12194,12196,12198,12200],{},[1081,12193,1084],{"mathvariant":1083},[1004,12195,1088],{"stretchy":1087},[1081,12197,1091],{},[1081,12199,10694],{},[1004,12201,1094],{"stretchy":1087},[1011,12203,12204],{"encoding":1013},"\\mathcal{O}(nm)",[663,12206,12208],{"className":12207,"ariaHidden":1019},[1018],[663,12209,12211,12214,12217,12220,12224],{"className":12210},[1023],[663,12212],{"className":12213,"style":1107},[1027],[663,12215,1084],{"className":12216,"style":1112},[1032,1111],[663,12218,1088],{"className":12219},[1116],[663,12221,12223],{"className":12222},[1032,1120],"nm",[663,12225,1094],{"className":12226},[1124]," avec ",[663,12229,12231,12244],{"className":12230},[988],[663,12232,12234],{"className":12233},[992],[994,12235,12236],{"xmlns":996},[998,12237,12238,12242],{},[1001,12239,12240],{},[1081,12241,1091],{},[1011,12243,1091],{"encoding":1013},[663,12245,12247],{"className":12246,"ariaHidden":1019},[1018],[663,12248,12250,12253],{"className":12249},[1023],[663,12251],{"className":12252,"style":1681},[1027],[663,12254,1091],{"className":12255},[1032,1120]," longueur du texte et ",[663,12258,12260,12273],{"className":12259},[988],[663,12261,12263],{"className":12262},[992],[994,12264,12265],{"xmlns":996},[998,12266,12267,12271],{},[1001,12268,12269],{},[1081,12270,10694],{},[1011,12272,10694],{"encoding":1013},[663,12274,12276],{"className":12275,"ariaHidden":1019},[1018],[663,12277,12279,12282],{"className":12278},[1023],[663,12280],{"className":12281,"style":1681},[1027],[663,12283,10694],{"className":12284},[1032,1120]," longueur du motif),\nl'algorithme de ",[603,12287,12288],{},"Boyer-Moore"," ",[603,12291,12292],{},"prétraite"," le motif pour pouvoir\neffectuer de ",[603,12295,12296],{},"grands sauts"," lors d'un échec, et descend parfois en\n",[663,12299,12301,12325],{"className":12300},[988],[663,12302,12304],{"className":12303},[992],[994,12305,12306],{"xmlns":996},[998,12307,12308,12322],{},[1001,12309,12310,12312,12314,12316,12318,12320],{},[1081,12311,1084],{"mathvariant":1083},[1004,12313,1088],{"stretchy":1087},[1081,12315,1091],{},[1081,12317,3739],{"mathvariant":1956},[1081,12319,10694],{},[1004,12321,1094],{"stretchy":1087},[1011,12323,12324],{"encoding":1013},"\\mathcal{O}(n\u002Fm)",[663,12326,12328],{"className":12327,"ariaHidden":1019},[1018],[663,12329,12331,12334,12337,12340,12343,12346,12349],{"className":12330},[1023],[663,12332],{"className":12333,"style":1107},[1027],[663,12335,1084],{"className":12336,"style":1112},[1032,1111],[663,12338,1088],{"className":12339},[1116],[663,12341,1091],{"className":12342},[1032,1120],[663,12344,3739],{"className":12345},[1032],[663,12347,10694],{"className":12348},[1032,1120],[663,12350,1094],{"className":12351},[1124]," — il ",[603,12354,12355],{},"saute des caractères du texte sans les regarder",[599,12357,12358,12359,12362,12363,12366],{},"Pensez à la façon dont vous cherchez un mot dans un ",[603,12360,12361],{},"livre papier"," : si\nvotre œil tombe sur une lettre qui n'appartient pas du tout au mot\nrecherché, vous tournez la page sans relire les mots autour — c'est\nl'intuition exacte de la ",[603,12364,12365],{},"règle du mauvais caractère"," introduite plus\nbas.",[636,12368],{"code":12165},[594,12370,12372],{"id":12371},"recherche-naïve-pour-comparer","Recherche naïve — pour comparer",[599,12374,12375],{},"L'algorithme naïf glisse le motif sur le texte, position par position, et\ncompare. Dès qu'un caractère diffère, on décale d'un cran et on recommence.",[654,12377,12379],{"className":656,"code":12378,"language":658,"meta":659,"style":659},"def recherche_naive(texte, motif):\n    n, m = len(texte), len(motif)\n    for i in range(n - m + 1):\n        if texte[i:i+m] == motif:\n            return i\n    return -1\n",[646,12380,12381,12391,12408,12432,12449,12457],{"__ignoreMap":659},[663,12382,12383,12385,12388],{"class":665,"line":666},[663,12384,877],{"class":669},[663,12386,12387],{"class":673}," recherche_naive",[663,12389,12390],{"class":677},"(texte, motif):\n",[663,12392,12393,12396,12398,12400,12403,12405],{"class":665,"line":681},[663,12394,12395],{"class":677},"    n, m ",[663,12397,694],{"class":669},[663,12399,6729],{"class":687},[663,12401,12402],{"class":677},"(texte), ",[663,12404,10912],{"class":687},[663,12406,12407],{"class":677},"(motif)\n",[663,12409,12410,12412,12414,12416,12418,12421,12423,12426,12428,12430],{"class":665,"line":709},[663,12411,3344],{"class":669},[663,12413,6724],{"class":677},[663,12415,2438],{"class":669},[663,12417,10178],{"class":687},[663,12419,12420],{"class":677},"(n ",[663,12422,3162],{"class":669},[663,12424,12425],{"class":677}," m ",[663,12427,924],{"class":669},[663,12429,915],{"class":687},[663,12431,706],{"class":677},[663,12433,12434,12436,12439,12441,12444,12446],{"class":665,"line":723},[663,12435,1523],{"class":669},[663,12437,12438],{"class":677}," texte[i:i",[663,12440,924],{"class":669},[663,12442,12443],{"class":677},"m] ",[663,12445,1823],{"class":669},[663,12447,12448],{"class":677}," motif:\n",[663,12450,12451,12454],{"class":665,"line":736},[663,12452,12453],{"class":669},"            return",[663,12455,12456],{"class":677}," i\n",[663,12458,12459,12461,12463],{"class":665,"line":749},[663,12460,912],{"class":669},[663,12462,959],{"class":669},[663,12464,12465],{"class":687},"1\n",[599,12467,12468,12469,12542,12543,12571,12572,12617],{},"Coût : jusqu'à ",[663,12470,12472,12494],{"className":12471},[988],[663,12473,12475],{"className":12474},[992],[994,12476,12477],{"xmlns":996},[998,12478,12479,12491],{},[1001,12480,12481,12483,12485,12487,12489],{},[1081,12482,1091],{},[1004,12484,1006],{},[1081,12486,10694],{},[1004,12488,924],{},[1008,12490,822],{},[1011,12492,12493],{"encoding":1013},"n - m + 1",[663,12495,12497,12515,12533],{"className":12496,"ariaHidden":1019},[1018],[663,12498,12500,12503,12506,12509,12512],{"className":12499},[1023],[663,12501],{"className":12502,"style":2117},[1027],[663,12504,1091],{"className":12505},[1032,1120],[663,12507],{"className":12508,"style":2124},[1724],[663,12510,1006],{"className":12511},[2128],[663,12513],{"className":12514,"style":2124},[1724],[663,12516,12518,12521,12524,12527,12530],{"className":12517},[1023],[663,12519],{"className":12520,"style":2117},[1027],[663,12522,10694],{"className":12523},[1032,1120],[663,12525],{"className":12526,"style":2124},[1724],[663,12528,924],{"className":12529},[2128],[663,12531],{"className":12532,"style":2124},[1724],[663,12534,12536,12539],{"className":12535},[1023],[663,12537],{"className":12538,"style":1063},[1027],[663,12540,822],{"className":12541},[1032]," tentatives, chacune jusqu'à ",[663,12544,12546,12559],{"className":12545},[988],[663,12547,12549],{"className":12548},[992],[994,12550,12551],{"xmlns":996},[998,12552,12553,12557],{},[1001,12554,12555],{},[1081,12556,10694],{},[1011,12558,10694],{"encoding":1013},[663,12560,12562],{"className":12561,"ariaHidden":1019},[1018],[663,12563,12565,12568],{"className":12564},[1023],[663,12566],{"className":12567,"style":1681},[1027],[663,12569,10694],{"className":12570},[1032,1120]," comparaisons, soit\n",[663,12573,12575,12596],{"className":12574},[988],[663,12576,12578],{"className":12577},[992],[994,12579,12580],{"xmlns":996},[998,12581,12582,12594],{},[1001,12583,12584,12586,12588,12590,12592],{},[1081,12585,1084],{"mathvariant":1083},[1004,12587,1088],{"stretchy":1087},[1081,12589,1091],{},[1081,12591,10694],{},[1004,12593,1094],{"stretchy":1087},[1011,12595,12204],{"encoding":1013},[663,12597,12599],{"className":12598,"ariaHidden":1019},[1018],[663,12600,12602,12605,12608,12611,12614],{"className":12601},[1023],[663,12603],{"className":12604,"style":1107},[1027],[663,12606,1084],{"className":12607,"style":1112},[1032,1111],[663,12609,1088],{"className":12610},[1116],[663,12612,12223],{"className":12613},[1032,1120],[663,12615,1094],{"className":12616},[1124]," en pire cas. Acceptable pour des petits textes, prohibitif\nsur des génomes ou des corpus.",[594,12619,12621],{"id":12620},"lintuition-de-boyer-moore","L'intuition de Boyer-Moore",[599,12623,12624],{},"Deux idées fondatrices, contre-intuitives :",[3662,12626,12627,12636],{},[1142,12628,12629,12632,12633,610],{},[603,12630,12631],{},"Comparer de droite à gauche"," : on aligne le motif à une position du\ntexte, puis on compare ses caractères en partant de la ",[603,12634,12635],{},"fin",[1142,12637,12638,12641,12642,12645],{},[603,12639,12640],{},"Prétraiter le motif"," pour savoir, en cas d'échec, ",[603,12643,12644],{},"combien de cases on\npeut sauter"," sans risquer de manquer une occurrence.",[599,12647,12648,12649,12652],{},"Le prétraitement consiste à construire une ",[603,12650,12651],{},"table du mauvais caractère"," :\npour chaque lettre de l'alphabet, on note sa position la plus à droite dans\nle motif.",[10054,12654,12655],{},[599,12656,12657,12658,12661,12662,12734,12735,12764],{},"L'intérêt ",[603,12659,12660],{},"majeur"," du prétraitement : on le calcule une seule fois, en\n",[663,12663,12665,12694],{"className":12664},[988],[663,12666,12668],{"className":12667},[992],[994,12669,12670],{"xmlns":996},[998,12671,12672,12691],{},[1001,12673,12674,12676,12678,12680,12682,12684,12687,12689],{},[1081,12675,1084],{"mathvariant":1083},[1004,12677,1088],{"stretchy":1087},[1081,12679,10694],{},[1004,12681,924],{},[1081,12683,2620],{"mathvariant":1956},[1081,12685,12686],{"mathvariant":1956},"Σ",[1081,12688,2620],{"mathvariant":1956},[1004,12690,1094],{"stretchy":1087},[1011,12692,12693],{"encoding":1013},"\\mathcal{O}(m + |\\Sigma|)",[663,12695,12697,12721],{"className":12696,"ariaHidden":1019},[1018],[663,12698,12700,12703,12706,12709,12712,12715,12718],{"className":12699},[1023],[663,12701],{"className":12702,"style":1107},[1027],[663,12704,1084],{"className":12705,"style":1112},[1032,1111],[663,12707,1088],{"className":12708},[1116],[663,12710,10694],{"className":12711},[1032,1120],[663,12713],{"className":12714,"style":2124},[1724],[663,12716,924],{"className":12717},[2128],[663,12719],{"className":12720,"style":2124},[1724],[663,12722,12724,12727,12731],{"className":12723},[1023],[663,12725],{"className":12726,"style":1107},[1027],[663,12728,12730],{"className":12729},[1032],"∣Σ∣",[663,12732,1094],{"className":12733},[1124]," où ",[663,12736,12738,12752],{"className":12737},[988],[663,12739,12741],{"className":12740},[992],[994,12742,12743],{"xmlns":996},[998,12744,12745,12749],{},[1001,12746,12747],{},[1081,12748,12686],{"mathvariant":1956},[1011,12750,12751],{"encoding":1013},"\\Sigma",[663,12753,12755],{"className":12754,"ariaHidden":1019},[1018],[663,12756,12758,12761],{"className":12757},[1023],[663,12759],{"className":12760,"style":8780},[1027],[663,12762,12686],{"className":12763},[1032]," est l'alphabet, et il est réutilisé\nà chaque échec. Le coût amortir vaut largement les comparaisons épargnées.",[594,12766,12768],{"id":12767},"la-règle-du-mauvais-caractère","La règle du mauvais caractère",[599,12770,12771,12772,12775,12776,12778,12779,12807,12808,12836],{},"Supposons qu'on compare le motif et le texte en partant de la droite, et que\nle premier caractère ",[603,12773,12774],{},"discordant"," soit ",[646,12777,4960],{}," dans le texte, à la position ",[663,12780,12782,12795],{"className":12781},[988],[663,12783,12785],{"className":12784},[992],[994,12786,12787],{"xmlns":996},[998,12788,12789,12793],{},[1001,12790,12791],{},[1081,12792,11201],{},[1011,12794,11201],{"encoding":1013},[663,12796,12798],{"className":12797,"ariaHidden":1019},[1018],[663,12799,12801,12804],{"className":12800},[1023],[663,12802],{"className":12803,"style":11269},[1027],[663,12805,11201],{"className":12806},[1032,1120],"\ndu texte alignée avec la position ",[663,12809,12811,12824],{"className":12810},[988],[663,12812,12814],{"className":12813},[992],[994,12815,12816],{"xmlns":996},[998,12817,12818,12822],{},[1001,12819,12820],{},[1081,12821,11206],{},[1011,12823,11206],{"encoding":1013},[663,12825,12827],{"className":12826,"ariaHidden":1019},[1018],[663,12828,12830,12833],{"className":12829},[1023],[663,12831],{"className":12832,"style":11298},[1027],[663,12834,11206],{"className":12835,"style":11239},[1032,1120]," du motif.",[1139,12838,12839,12904],{},[1142,12840,12841,12842,12844,12845,12848,12849,12900,12901,12903],{},"Si ",[646,12843,4960],{}," n'apparaît ",[603,12846,12847],{},"pas du tout"," dans le motif, on peut décaler de\n",[663,12850,12852,12870],{"className":12851},[988],[663,12853,12855],{"className":12854},[992],[994,12856,12857],{"xmlns":996},[998,12858,12859,12867],{},[1001,12860,12861,12863,12865],{},[1081,12862,11206],{},[1004,12864,924],{},[1008,12866,822],{},[1011,12868,12869],{"encoding":1013},"j + 1",[663,12871,12873,12891],{"className":12872,"ariaHidden":1019},[1018],[663,12874,12876,12879,12882,12885,12888],{"className":12875},[1023],[663,12877],{"className":12878,"style":11298},[1027],[663,12880,11206],{"className":12881,"style":11239},[1032,1120],[663,12883],{"className":12884,"style":2124},[1724],[663,12886,924],{"className":12887},[2128],[663,12889],{"className":12890,"style":2124},[1724],[663,12892,12894,12897],{"className":12893},[1023],[663,12895],{"className":12896,"style":1063},[1027],[663,12898,822],{"className":12899},[1032]," : aucune occurrence possible qui contiendrait ",[646,12902,4960],{}," à cette position.",[1142,12905,12841,12906,12908,12909,12939,12940,12992,12993,610],{},[646,12907,4960],{}," apparaît dans le motif à la position ",[663,12910,12912,12926],{"className":12911},[988],[663,12913,12915],{"className":12914},[992],[994,12916,12917],{"xmlns":996},[998,12918,12919,12924],{},[1001,12920,12921],{},[1081,12922,12923],{},"k",[1011,12925,12923],{"encoding":1013},[663,12927,12929],{"className":12928,"ariaHidden":1019},[1018],[663,12930,12932,12935],{"className":12931},[1023],[663,12933],{"className":12934,"style":7042},[1027],[663,12936,12923],{"className":12937,"style":12938},[1032,1120],"margin-right:0.0315em;"," la plus à droite (",[663,12941,12943,12961],{"className":12942},[988],[663,12944,12946],{"className":12945},[992],[994,12947,12948],{"xmlns":996},[998,12949,12950,12958],{},[1001,12951,12952,12954,12956],{},[1081,12953,12923],{},[1004,12955,1701],{},[1081,12957,11206],{},[1011,12959,12960],{"encoding":1013},"k \u003C j",[663,12962,12964,12983],{"className":12963,"ariaHidden":1019},[1018],[663,12965,12967,12971,12974,12977,12980],{"className":12966},[1023],[663,12968],{"className":12969,"style":12970},[1027],"height:0.7335em;vertical-align:-0.0391em;",[663,12972,12923],{"className":12973,"style":12938},[1032,1120],[663,12975],{"className":12976,"style":1725},[1724],[663,12978,1701],{"className":12979},[1720],[663,12981],{"className":12982,"style":1725},[1724],[663,12984,12986,12989],{"className":12985},[1023],[663,12987],{"className":12988,"style":11298},[1027],[663,12990,11206],{"className":12991,"style":11239},[1032,1120],"),\non décale pour aligner cette occurrence sur le texte : décalage de ",[663,12994,12996,13014],{"className":12995},[988],[663,12997,12999],{"className":12998},[992],[994,13000,13001],{"xmlns":996},[998,13002,13003,13011],{},[1001,13004,13005,13007,13009],{},[1081,13006,11206],{},[1004,13008,1006],{},[1081,13010,12923],{},[1011,13012,13013],{"encoding":1013},"j - k",[663,13015,13017,13035],{"className":13016,"ariaHidden":1019},[1018],[663,13018,13020,13023,13026,13029,13032],{"className":13019},[1023],[663,13021],{"className":13022,"style":11298},[1027],[663,13024,11206],{"className":13025,"style":11239},[1032,1120],[663,13027],{"className":13028,"style":2124},[1724],[663,13030,1006],{"className":13031},[2128],[663,13033],{"className":13034,"style":2124},[1724],[663,13036,13038,13041],{"className":13037},[1023],[663,13039],{"className":13040,"style":7042},[1027],[663,13042,12923],{"className":13043,"style":12938},[1032,1120],[654,13045,13047],{"className":656,"code":13046,"language":658,"meta":659,"style":659},"def table_mauvais_caractere(motif):\n    \"\"\"Pour chaque caractère du motif, sa dernière position (0-indexée).\"\"\"\n    table = {}\n    for i, c in enumerate(motif):\n        table[c] = i\n    return table\n\ndef boyer_moore(texte, motif):\n    n, m = len(texte), len(motif)\n    if m == 0: return 0\n    table = table_mauvais_caractere(motif)\n    i = 0\n    while i \u003C= n - m:\n        j = m - 1\n        # Compare de droite à gauche.\n        while j >= 0 and motif[j] == texte[i + j]:\n            j -= 1\n        if j \u003C 0:\n            return i                        # occurrence trouvée\n        # Décalage par règle du mauvais caractère.\n        c = texte[i + j]\n        saut = j - table.get(c, -1)\n        i += max(1, saut)                   # garantit la progression\n    return -1\n",[646,13048,13049,13059,13064,13074,13088,13097,13104,13108,13117,13131,13147,13156,13165,13180,13193,13198,13226,13236,13248,13258,13263,13277,13297,13316],{"__ignoreMap":659},[663,13050,13051,13053,13056],{"class":665,"line":666},[663,13052,877],{"class":669},[663,13054,13055],{"class":673}," table_mauvais_caractere",[663,13057,13058],{"class":677},"(motif):\n",[663,13060,13061],{"class":665,"line":681},[663,13062,13063],{"class":1271},"    \"\"\"Pour chaque caractère du motif, sa dernière position (0-indexée).\"\"\"\n",[663,13065,13066,13069,13071],{"class":665,"line":709},[663,13067,13068],{"class":677},"    table ",[663,13070,694],{"class":669},[663,13072,13073],{"class":677}," {}\n",[663,13075,13076,13078,13081,13083,13086],{"class":665,"line":723},[663,13077,3344],{"class":669},[663,13079,13080],{"class":677}," i, c ",[663,13082,2438],{"class":669},[663,13084,13085],{"class":687}," enumerate",[663,13087,13058],{"class":677},[663,13089,13090,13093,13095],{"class":665,"line":736},[663,13091,13092],{"class":677},"        table[c] ",[663,13094,694],{"class":669},[663,13096,12456],{"class":677},[663,13098,13099,13101],{"class":665,"line":749},[663,13100,912],{"class":669},[663,13102,13103],{"class":677}," table\n",[663,13105,13106],{"class":665,"line":756},[663,13107,753],{"emptyLinePlaceholder":752},[663,13109,13110,13112,13115],{"class":665,"line":763},[663,13111,877],{"class":669},[663,13113,13114],{"class":673}," boyer_moore",[663,13116,12390],{"class":677},[663,13118,13119,13121,13123,13125,13127,13129],{"class":665,"line":769},[663,13120,12395],{"class":677},[663,13122,694],{"class":669},[663,13124,6729],{"class":687},[663,13126,12402],{"class":677},[663,13128,10912],{"class":687},[663,13130,12407],{"class":677},[663,13132,13133,13135,13137,13139,13141,13143,13145],{"class":665,"line":775},[663,13134,888],{"class":669},[663,13136,12425],{"class":677},[663,13138,1823],{"class":669},[663,13140,6712],{"class":687},[663,13142,1251],{"class":677},[663,13144,1810],{"class":669},[663,13146,907],{"class":687},[663,13148,13149,13151,13153],{"class":665,"line":781},[663,13150,13068],{"class":677},[663,13152,694],{"class":669},[663,13154,13155],{"class":677}," table_mauvais_caractere(motif)\n",[663,13157,13158,13161,13163],{"class":665,"line":787},[663,13159,13160],{"class":677},"    i ",[663,13162,694],{"class":669},[663,13164,907],{"class":687},[663,13166,13167,13169,13171,13173,13175,13177],{"class":665,"line":793},[663,13168,1485],{"class":669},[663,13170,6724],{"class":677},[663,13172,6755],{"class":669},[663,13174,6835],{"class":677},[663,13176,3162],{"class":669},[663,13178,13179],{"class":677}," m:\n",[663,13181,13182,13185,13187,13189,13191],{"class":665,"line":810},[663,13183,13184],{"class":677},"        j ",[663,13186,694],{"class":669},[663,13188,12425],{"class":677},[663,13190,3162],{"class":669},[663,13192,6769],{"class":687},[663,13194,13195],{"class":665,"line":834},[663,13196,13197],{"class":759},"        # Compare de droite à gauche.\n",[663,13199,13200,13203,13205,13208,13210,13213,13216,13218,13221,13223],{"class":665,"line":1371},[663,13201,13202],{"class":669},"        while",[663,13204,6738],{"class":677},[663,13206,13207],{"class":669},">=",[663,13209,6712],{"class":687},[663,13211,13212],{"class":669}," and",[663,13214,13215],{"class":677}," motif[j] ",[663,13217,1823],{"class":669},[663,13219,13220],{"class":677}," texte[i ",[663,13222,924],{"class":669},[663,13224,13225],{"class":677}," j]:\n",[663,13227,13228,13231,13234],{"class":665,"line":1377},[663,13229,13230],{"class":677},"            j ",[663,13232,13233],{"class":669},"-=",[663,13235,6769],{"class":687},[663,13237,13238,13240,13242,13244,13246],{"class":665,"line":2546},[663,13239,1523],{"class":669},[663,13241,6738],{"class":677},[663,13243,1701],{"class":669},[663,13245,6712],{"class":687},[663,13247,678],{"class":677},[663,13249,13250,13252,13255],{"class":665,"line":2552},[663,13251,12453],{"class":669},[663,13253,13254],{"class":677}," i                        ",[663,13256,13257],{"class":759},"# occurrence trouvée\n",[663,13259,13260],{"class":665,"line":2557},[663,13261,13262],{"class":759},"        # Décalage par règle du mauvais caractère.\n",[663,13264,13265,13268,13270,13272,13274],{"class":665,"line":2568},[663,13266,13267],{"class":677},"        c ",[663,13269,694],{"class":669},[663,13271,13220],{"class":677},[663,13273,924],{"class":669},[663,13275,13276],{"class":677}," j]\n",[663,13278,13279,13282,13284,13286,13288,13291,13293,13295],{"class":665,"line":2581},[663,13280,13281],{"class":677},"        saut ",[663,13283,694],{"class":669},[663,13285,6738],{"class":677},[663,13287,3162],{"class":669},[663,13289,13290],{"class":677}," table.get(c, ",[663,13292,3162],{"class":669},[663,13294,822],{"class":687},[663,13296,1275],{"class":677},[663,13298,13299,13302,13304,13306,13308,13310,13313],{"class":665,"line":2587},[663,13300,13301],{"class":677},"        i ",[663,13303,6766],{"class":669},[663,13305,975],{"class":687},[663,13307,1088],{"class":677},[663,13309,822],{"class":687},[663,13311,13312],{"class":677},", saut)                   ",[663,13314,13315],{"class":759},"# garantit la progression\n",[663,13317,13318,13320,13322],{"class":665,"line":6915},[663,13319,912],{"class":669},[663,13321,959],{"class":669},[663,13323,12465],{"class":687},[2078,13325,13326],{},[599,13327,2372,13328,13331,13332,13335,13336,13339],{},[646,13329,13330],{},"max(1, saut)"," garantit qu'on ",[603,13333,13334],{},"avance toujours d'au moins une case"," —\nsans cela, on pourrait boucler si ",[646,13337,13338],{},"saut"," était négatif (cas où la dernière\noccurrence du caractère dans le motif est à droite de la position d'échec).",[1127,13341,13343,13348],{"correct":822,"slug":13342},"recherche-textuelle-c1",[1131,13344,13345],{"v-slot:question":659},[599,13346,13347],{},"Boyer-Moore compare le motif et le texte…",[1131,13349,13350],{"v-slot:choices":659},[1139,13351,13352,13355,13358],{},[1142,13353,13354],{},"de gauche à droite",[1142,13356,13357],{},"de droite à gauche",[1142,13359,13360],{},"dans un ordre aléatoire",[594,13362,13364],{"id":13363},"un-exemple-déroulé","Un exemple déroulé",[599,13366,13367,13368,13371,13372,610],{},"Recherchons ",[646,13369,13370],{},"ABCDE"," dans ",[646,13373,13374],{},"XYZQABCDE",[654,13376,13380],{"className":13377,"code":13379,"language":9107},[13378],"language-text","Position 0 :   X Y Z Q A B C D E\n               A B C D E             ← échec en j=4 : E ≠ A\n                                       texte[i+j]='A', table['A']=0\n                                       saut = 4 - 0 = 4 → i passe à 4\nPosition 4 :   X Y Z Q A B C D E\n                       A B C D E     ← match complet, retourne 4\n",[646,13381,13379],{"__ignoreMap":659},[599,13383,13384,13385,13388],{},"L'astuce, c'est que ",[603,13386,13387],{},"dès le premier échec",", on saute directement 4 cases\nau lieu d'1 — un seul échec a remplacé 4 comparaisons inutiles.",[594,13390,13392],{"id":13391},"coût-sans-entrer-dans-la-preuve","Coût — sans entrer dans la preuve",[599,13394,13395],{},"Le BO le mentionne explicitement : « l'étude du coût, difficile, ne peut\nêtre exigée ». On retient cependant :",[1164,13397,13398,13406],{},[1167,13399,13400],{},[1170,13401,13402,13404],{},[1173,13403,5548],{},[1173,13405,3008],{},[1183,13407,13408,13471,13526],{},[1170,13409,13410,13415],{},[1188,13411,13412],{},[603,13413,13414],{},"Meilleur cas",[1188,13416,13417,13470],{},[663,13418,13420,13443],{"className":13419},[988],[663,13421,13423],{"className":13422},[992],[994,13424,13425],{"xmlns":996},[998,13426,13427,13441],{},[1001,13428,13429,13431,13433,13435,13437,13439],{},[1081,13430,1084],{"mathvariant":1083},[1004,13432,1088],{"stretchy":1087},[1081,13434,1091],{},[1081,13436,3739],{"mathvariant":1956},[1081,13438,10694],{},[1004,13440,1094],{"stretchy":1087},[1011,13442,12324],{"encoding":1013},[663,13444,13446],{"className":13445,"ariaHidden":1019},[1018],[663,13447,13449,13452,13455,13458,13461,13464,13467],{"className":13448},[1023],[663,13450],{"className":13451,"style":1107},[1027],[663,13453,1084],{"className":13454,"style":1112},[1032,1111],[663,13456,1088],{"className":13457},[1116],[663,13459,1091],{"className":13460},[1032,1120],[663,13462,3739],{"className":13463},[1032],[663,13465,10694],{"className":13466},[1032,1120],[663,13468,1094],{"className":13469},[1124]," — sauts maximaux à chaque échec",[1170,13472,13473,13478],{},[1188,13474,13475],{},[603,13476,13477],{},"Pire cas",[1188,13479,13480,13525],{},[663,13481,13483,13504],{"className":13482},[988],[663,13484,13486],{"className":13485},[992],[994,13487,13488],{"xmlns":996},[998,13489,13490,13502],{},[1001,13491,13492,13494,13496,13498,13500],{},[1081,13493,1084],{"mathvariant":1083},[1004,13495,1088],{"stretchy":1087},[1081,13497,1091],{},[1081,13499,10694],{},[1004,13501,1094],{"stretchy":1087},[1011,13503,12204],{"encoding":1013},[663,13505,13507],{"className":13506,"ariaHidden":1019},[1018],[663,13508,13510,13513,13516,13519,13522],{"className":13509},[1023],[663,13511],{"className":13512,"style":1107},[1027],[663,13514,1084],{"className":13515,"style":1112},[1032,1111],[663,13517,1088],{"className":13518},[1116],[663,13520,12223],{"className":13521},[1032,1120],[663,13523,1094],{"className":13524},[1124]," — comparable à la recherche naïve",[1170,13527,13528,13533],{},[1188,13529,13530],{},[603,13531,13532],{},"En pratique",[1188,13534,13535],{},"excellent, surtout pour des grands alphabets",[599,13537,13538,13539,13541],{},"En pratique, plus l'alphabet est grand (texte naturel, ADN), plus la table\npermet des sauts longs — Boyer-Moore est l'algorithme utilisé par ",[646,13540,12178],{},"\nclassique pour cette raison.",[1127,13543,13545,13550],{"correct":822,"slug":13544},"recherche-textuelle-c2",[1131,13546,13547],{"v-slot:question":659},[599,13548,13549],{},"Le BO demande-t-il la preuve du coût de Boyer-Moore ?",[1131,13551,13552],{"v-slot:choices":659},[1139,13553,13554,13557],{},[1142,13555,13556],{},"oui, exigible",[1142,13558,13559],{},"non, explicitement non exigé",[594,13561,2189],{"id":2188},[599,13563,13564,13565,13568,13569,13635,13636,13639,13640,13643,13644,13647],{},"D'autres algorithmes prétraitent le motif différemment :\n",[603,13566,13567],{},"Knuth-Morris-Pratt"," (KMP) garantit ",[663,13570,13572,13596],{"className":13571},[988],[663,13573,13575],{"className":13574},[992],[994,13576,13577],{"xmlns":996},[998,13578,13579,13593],{},[1001,13580,13581,13583,13585,13587,13589,13591],{},[1081,13582,1084],{"mathvariant":1083},[1004,13584,1088],{"stretchy":1087},[1081,13586,1091],{},[1004,13588,924],{},[1081,13590,10694],{},[1004,13592,1094],{"stretchy":1087},[1011,13594,13595],{"encoding":1013},"\\mathcal{O}(n + m)",[663,13597,13599,13623],{"className":13598,"ariaHidden":1019},[1018],[663,13600,13602,13605,13608,13611,13614,13617,13620],{"className":13601},[1023],[663,13603],{"className":13604,"style":1107},[1027],[663,13606,1084],{"className":13607,"style":1112},[1032,1111],[663,13609,1088],{"className":13610},[1116],[663,13612,1091],{"className":13613},[1032,1120],[663,13615],{"className":13616,"style":2124},[1724],[663,13618,924],{"className":13619},[2128],[663,13621],{"className":13622,"style":2124},[1724],[663,13624,13626,13629,13632],{"className":13625},[1023],[663,13627],{"className":13628,"style":1107},[1027],[663,13630,10694],{"className":13631},[1032,1120],[663,13633,1094],{"className":13634},[1124]," en pire cas,\n",[603,13637,13638],{},"Rabin-Karp"," utilise des fonctions de hachage. Sur de très grandes bases\nde données textuelles (génome humain de 3 milliards de paires de bases),\non ",[603,13641,13642],{},"prétraite plutôt le texte"," : c'est le rôle des ",[603,13645,13646],{},"index"," (suffix\narrays, FM-index) qui permettent des recherches en temps quasi-constant\naprès un prétraitement initial coûteux.",[2198,13649,12139],{},{"title":659,"searchDepth":681,"depth":681,"links":13651},[13652,13653,13654,13655,13656,13657,13658],{"id":596,"depth":681,"text":597},{"id":12371,"depth":681,"text":12372},{"id":12620,"depth":681,"text":12621},{"id":12767,"depth":681,"text":12768},{"id":13363,"depth":681,"text":13364},{"id":13391,"depth":681,"text":13392},{"id":2188,"depth":681,"text":2189},"Prétraiter le motif pour effectuer des sauts intelligents dans le texte — la stratégie qui rend la recherche textuelle parfois sous-linéaire.",{},[13662,13664],{"slug":13342,"kind":2216,"question":13347,"choices":13663,"correct":822,"multi":2218,"explanation":659},[13354,13357,13360],{"slug":13544,"kind":2216,"question":13549,"choices":13665,"correct":822,"multi":2218,"explanation":659},[13556,13559],{"title":582,"description":13659},"JalfVpYPey_lscg3hzQa70FmXYaWb1TCI86Qpw-vJSE",{"id":13669,"title":411,"bo":13670,"body":13671,"description":13917,"eval":2211,"extension":2212,"labo":2211,"meta":13918,"navigation":752,"path":561,"quizzes":13920,"readingTime":666,"seo":13921,"stem":562,"tp":2211,"__hash__":13922},"cours\u002F2.nsi-tale\u002Fte-algorithmique\u002F0.index.md",[589,2226,3475,8654,12165],{"type":591,"value":13672,"toc":13913},[13673,13677,13701,13704,13800,13861,13865,13894],[594,13674,13676],{"id":13675},"au-programme","Au programme",[599,13678,13679,13680,13683,13684,13687,13688,13691,13692,13691,13695,13697,13698,610],{},"Le chapitre TE rassemble les ",[603,13681,13682],{},"cinq grandes méthodes algorithmiques"," au programme\nde Terminale. Là où le chapitre TA pose les ",[603,13685,13686],{},"structures de données"," — arbres,\ngraphes, piles, files — ce chapitre TE en exploite la matière : il s'agit\nmaintenant de ",[603,13689,13690],{},"calculer",", de ",[603,13693,13694],{},"parcourir",[603,13696,2010],{},", d'",[603,13699,13700],{},"optimiser",[599,13702,13703],{},"Vous y apprendrez à :",[1139,13705,13706,13712,13718,13788,13794],{},[1142,13707,13708,13711],{},[603,13709,13710],{},"mesurer et parcourir un arbre binaire"," — taille, hauteur, parcours infixe,\npréfixe, suffixe, parcours en largeur ; rechercher et insérer une clé dans un\narbre binaire de recherche (TE01) ;",[1142,13713,13714,13717],{},[603,13715,13716],{},"explorer un graphe"," en profondeur (DFS) et en largeur (BFS), détecter un\ncycle, trouver un chemin — l'exemple du labyrinthe et celui du routage\nInternet (TE02) ;",[1142,13719,13720,13723,13724,13787],{},[603,13721,13722],{},"appliquer la méthode « diviser pour régner »"," — le tri fusion comme\nexemple canonique d'un coût en ",[663,13725,13727,13752],{"className":13726},[988],[663,13728,13730],{"className":13729},[992],[994,13731,13732],{"xmlns":996},[998,13733,13734,13750],{},[1001,13735,13736,13738,13740,13742,13744,13746,13748],{},[1081,13737,1084],{"mathvariant":1083},[1004,13739,1088],{"stretchy":1087},[1081,13741,1091],{},[1081,13743,1962],{},[1004,13745,1965],{},[1081,13747,1091],{},[1004,13749,1094],{"stretchy":1087},[1011,13751,4705],{"encoding":1013},[663,13753,13755],{"className":13754,"ariaHidden":1019},[1018],[663,13756,13758,13761,13764,13767,13770,13773,13778,13781,13784],{"className":13757},[1023],[663,13759],{"className":13760,"style":1107},[1027],[663,13762,1084],{"className":13763,"style":1112},[1032,1111],[663,13765,1088],{"className":13766},[1116],[663,13768,1091],{"className":13769},[1032,1120],[663,13771],{"className":13772,"style":2000},[1724],[663,13774,1992,13776],{"className":13775},[1991],[663,13777,1996],{"style":1995},[663,13779],{"className":13780,"style":2000},[1724],[663,13782,1091],{"className":13783},[1032,1120],[663,13785,1094],{"className":13786},[1124],", et le théorème\nmaître pour l'analyser (TE03) ;",[1142,13789,13790,13793],{},[603,13791,13792],{},"résoudre par programmation dynamique"," — mémoïsation top-down et\ntabulation bottom-up, sur l'exemple du rendu de monnaie et de l'alignement\nde séquences (TE04) ;",[1142,13795,13796,13799],{},[603,13797,13798],{},"rechercher un motif dans un texte"," avec l'algorithme de Boyer-Moore,\nqui prétraite le motif pour aller plus vite que la force brute (TE05).",[13801,13802,13805],"card",{"icon":13803,"title":13804},"i-lucide-check","Pré-requis",[599,13806,13807,13808,13811,13812,13815,13816,13860],{},"Le chapitre TA (structures de données) est le compagnon indispensable : les\narbres et graphes y sont ",[603,13809,13810],{},"définis",", ici ils sont ",[603,13813,13814],{},"parcourus",". La récursivité\net les classes Python de PH\u002FTA05 sont supposées acquises. La notation\n",[663,13817,13819,13839],{"className":13818},[988],[663,13820,13822],{"className":13821},[992],[994,13823,13824],{"xmlns":996},[998,13825,13826,13836],{},[1001,13827,13828,13830,13832,13834],{},[1081,13829,1084],{"mathvariant":1083},[1004,13831,1088],{"stretchy":1087},[1004,13833,3844],{},[1004,13835,1094],{"stretchy":1087},[1011,13837,13838],{"encoding":1013},"\\mathcal{O}(\\cdot)",[663,13840,13842],{"className":13841,"ariaHidden":1019},[1018],[663,13843,13845,13848,13851,13854,13857],{"className":13844},[1023],[663,13846],{"className":13847,"style":1107},[1027],[663,13849,1084],{"className":13850,"style":1112},[1032,1111],[663,13852,1088],{"className":13853},[1116],[663,13855,3844],{"className":13856},[1032],[663,13858,1094],{"className":13859},[1124]," et la complexité asymptotique de Première sont mobilisées\nen permanence.",[594,13862,13864],{"id":13863},"plan","Plan",[3662,13866,13867,13872,13878,13883,13888],{},[1142,13868,13869,13871],{},[603,13870,566],{}," — TE01 — taille, hauteur, parcours\ninfixe\u002Fpréfixe\u002Fsuffixe, parcours en largeur, recherche et insertion dans\nun ABR.",[1142,13873,13874,13877],{},[603,13875,13876],{},"Algorithmes sur les graphes"," — TE02 — DFS et BFS, détection de cycle,\nrecherche de chemin ; labyrinthe et routage en illustration.",[1142,13879,13880,13882],{},[603,13881,574],{}," — TE03 — le tri fusion, le théorème maître, la\nrotation d'une image bitmap en mémoire constante.",[1142,13884,13885,13887],{},[603,13886,578],{}," — TE04 — rendu de monnaie, plus court chemin\nsur grille, alignement de séquences ; mémoïsation top-down vs tabulation\nbottom-up.",[1142,13889,13890,13893],{},[603,13891,13892],{},"Recherche textuelle"," — TE05 — Boyer-Moore, prétraitement du motif,\nrègle du mauvais caractère.",[599,13895,13896,13897,13900,13901,13904,13905,13908,13909,13912],{},"À la fin du chapitre, une ",[603,13898,13899],{},"fiche mémo synthétique"," consolide les coûts et\nles schémas, et une ",[603,13902,13903],{},"auto-évaluation"," permet de jauger sa maîtrise. La\nsource MDC d'évaluation notée (",[646,13906,13907],{},"chapitre.eval.md",") prépare le DS de fin de\nséquence — elle inclut des exercices ",[646,13910,13911],{},"::python-exec"," pour pratiquer en\nconditions.",{"title":659,"searchDepth":681,"depth":681,"links":13914},[13915,13916],{"id":13675,"depth":681,"text":13676},{"id":13863,"depth":681,"text":13864},"Parcours d'arbres et de graphes, diviser pour régner, programmation dynamique, recherche textuelle — la boîte à outils algorithmique de Terminale.",{"icon":13919},"i-lucide-workflow",[],{"title":411,"description":13917},"zC8JWR4qZAHUI0ZDAFUzboh4FAgtv2w3husW_tPdNXY",[13924,14979,15468,17487,18792,19681],{"id":13925,"title":13926,"bo":13927,"body":13928,"description":14972,"eval":2211,"extension":2212,"labo":2211,"meta":14973,"navigation":2218,"path":14974,"quizzes":14975,"readingTime":666,"seo":14976,"stem":14977,"tp":2211,"__hash__":14978},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos.memo.md","Algorithmes sur les arbres binaires — l'essentiel",[589],{"type":591,"value":13929,"toc":14964},[13930,13934,13997,14001,14618,14622,14680,14684,14789,14793,14863,14867,14961],[594,13931,13933],{"id":13932},"en-une-phrase","En une phrase",[599,13935,13936,13937,13940,13941,13996],{},"Les algorithmes d'arbres suivent la ",[603,13938,13939],{},"récursion de la structure"," ; les trois\nparcours en profondeur diffèrent par la position de la racine ; le BFS utilise\nune file ; l'ABR offre une recherche en ",[663,13942,13944,13967],{"className":13943},[988],[663,13945,13947],{"className":13946},[992],[994,13948,13949],{"xmlns":996},[998,13950,13951,13965],{},[1001,13952,13953,13955,13957,13959,13961,13963],{},[1081,13954,1084],{"mathvariant":1083},[1004,13956,1088],{"stretchy":1087},[1081,13958,1962],{},[1004,13960,1965],{},[1081,13962,1091],{},[1004,13964,1094],{"stretchy":1087},[1011,13966,2042],{"encoding":1013},[663,13968,13970],{"className":13969,"ariaHidden":1019},[1018],[663,13971,13973,13976,13979,13982,13987,13990,13993],{"className":13972},[1023],[663,13974],{"className":13975,"style":1107},[1027],[663,13977,1084],{"className":13978,"style":1112},[1032,1111],[663,13980,1088],{"className":13981},[1116],[663,13983,1992,13985],{"className":13984},[1991],[663,13986,1996],{"style":1995},[663,13988],{"className":13989,"style":2000},[1724],[663,13991,1091],{"className":13992},[1032,1120],[663,13994,1094],{"className":13995},[1124]," s'il est équilibré.",[594,13998,14000],{"id":13999},"à-mémoriser","À mémoriser",[1139,14002,14003,14227,14459,14508,14569],{},[1142,14004,14005,4535,14008,14078,14079,610],{},[603,14006,14007],{},"Taille",[663,14009,14011,14036],{"className":14010},[988],[663,14012,14014],{"className":14013},[992],[994,14015,14016],{"xmlns":996},[998,14017,14018,14033],{},[1001,14019,14020,14022,14024,14027,14029,14031],{},[1081,14021,3831],{},[1004,14023,1088],{"stretchy":1087},[4012,14025,14026],{},"vide",[1004,14028,1094],{"stretchy":1087},[1004,14030,694],{},[1008,14032,1051],{},[1011,14034,14035],{"encoding":1013},"T(\\text{vide}) = 0",[663,14037,14039,14069],{"className":14038,"ariaHidden":1019},[1018],[663,14040,14042,14045,14048,14051,14057,14060,14063,14066],{"className":14041},[1023],[663,14043],{"className":14044,"style":1107},[1027],[663,14046,3831],{"className":14047,"style":3884},[1032,1120],[663,14049,1088],{"className":14050},[1116],[663,14052,14054],{"className":14053},[1032,9107],[663,14055,14026],{"className":14056},[1032],[663,14058,1094],{"className":14059},[1124],[663,14061],{"className":14062,"style":1725},[1724],[663,14064,694],{"className":14065},[1720],[663,14067],{"className":14068,"style":1725},[1724],[663,14070,14072,14075],{"className":14071},[1023],[663,14073],{"className":14074,"style":1063},[1027],[663,14076,1051],{"className":14077},[1032]," ; ",[663,14080,14082,14128],{"className":14081},[988],[663,14083,14085],{"className":14084},[992],[994,14086,14087],{"xmlns":996},[998,14088,14089,14125],{},[1001,14090,14091,14093,14095,14097,14099,14101,14103,14105,14107,14109,14112,14114,14116,14118,14120,14123],{},[1081,14092,3831],{},[1004,14094,1088],{"stretchy":1087},[1081,14096,1091],{},[1004,14098,1094],{"stretchy":1087},[1004,14100,694],{},[1008,14102,822],{},[1004,14104,924],{},[1081,14106,3831],{},[1004,14108,1088],{"stretchy":1087},[4012,14110,14111],{},"gauche",[1004,14113,1094],{"stretchy":1087},[1004,14115,924],{},[1081,14117,3831],{},[1004,14119,1088],{"stretchy":1087},[4012,14121,14122],{},"droite",[1004,14124,1094],{"stretchy":1087},[1011,14126,14127],{"encoding":1013},"T(n) = 1 + T(\\text{gauche}) + T(\\text{droite})",[663,14129,14131,14158,14176,14206],{"className":14130,"ariaHidden":1019},[1018],[663,14132,14134,14137,14140,14143,14146,14149,14152,14155],{"className":14133},[1023],[663,14135],{"className":14136,"style":1107},[1027],[663,14138,3831],{"className":14139,"style":3884},[1032,1120],[663,14141,1088],{"className":14142},[1116],[663,14144,1091],{"className":14145},[1032,1120],[663,14147,1094],{"className":14148},[1124],[663,14150],{"className":14151,"style":1725},[1724],[663,14153,694],{"className":14154},[1720],[663,14156],{"className":14157,"style":1725},[1724],[663,14159,14161,14164,14167,14170,14173],{"className":14160},[1023],[663,14162],{"className":14163,"style":1028},[1027],[663,14165,822],{"className":14166},[1032],[663,14168],{"className":14169,"style":2124},[1724],[663,14171,924],{"className":14172},[2128],[663,14174],{"className":14175,"style":2124},[1724],[663,14177,14179,14182,14185,14188,14194,14197,14200,14203],{"className":14178},[1023],[663,14180],{"className":14181,"style":1107},[1027],[663,14183,3831],{"className":14184,"style":3884},[1032,1120],[663,14186,1088],{"className":14187},[1116],[663,14189,14191],{"className":14190},[1032,9107],[663,14192,14111],{"className":14193},[1032],[663,14195,1094],{"className":14196},[1124],[663,14198],{"className":14199,"style":2124},[1724],[663,14201,924],{"className":14202},[2128],[663,14204],{"className":14205,"style":2124},[1724],[663,14207,14209,14212,14215,14218,14224],{"className":14208},[1023],[663,14210],{"className":14211,"style":1107},[1027],[663,14213,3831],{"className":14214,"style":3884},[1032,1120],[663,14216,1088],{"className":14217},[1116],[663,14219,14221],{"className":14220},[1032,9107],[663,14222,14122],{"className":14223},[1032],[663,14225,1094],{"className":14226},[1124],[1142,14228,14229,4535,14232,14078,14308,610],{},[603,14230,14231],{},"Hauteur",[663,14233,14235,14262],{"className":14234},[988],[663,14236,14238],{"className":14237},[992],[994,14239,14240],{"xmlns":996},[998,14241,14242,14259],{},[1001,14243,14244,14247,14249,14251,14253,14255,14257],{},[1081,14245,14246],{},"H",[1004,14248,1088],{"stretchy":1087},[4012,14250,14026],{},[1004,14252,1094],{"stretchy":1087},[1004,14254,694],{},[1004,14256,1006],{},[1008,14258,822],{},[1011,14260,14261],{"encoding":1013},"H(\\text{vide}) = -1",[663,14263,14265,14296],{"className":14264,"ariaHidden":1019},[1018],[663,14266,14268,14271,14275,14278,14284,14287,14290,14293],{"className":14267},[1023],[663,14269],{"className":14270,"style":1107},[1027],[663,14272,14246],{"className":14273,"style":14274},[1032,1120],"margin-right:0.0813em;",[663,14276,1088],{"className":14277},[1116],[663,14279,14281],{"className":14280},[1032,9107],[663,14282,14026],{"className":14283},[1032],[663,14285,1094],{"className":14286},[1124],[663,14288],{"className":14289,"style":1725},[1724],[663,14291,694],{"className":14292},[1720],[663,14294],{"className":14295,"style":1725},[1724],[663,14297,14299,14302,14305],{"className":14298},[1023],[663,14300],{"className":14301,"style":1028},[1027],[663,14303,1006],{"className":14304},[1032],[663,14306,822],{"className":14307},[1032],[663,14309,14311,14363],{"className":14310},[988],[663,14312,14314],{"className":14313},[992],[994,14315,14316],{"xmlns":996},[998,14317,14318,14360],{},[1001,14319,14320,14322,14324,14326,14328,14330,14332,14334,14336,14338,14340,14342,14344,14346,14348,14350,14352,14354,14356,14358],{},[1081,14321,14246],{},[1004,14323,1088],{"stretchy":1087},[1081,14325,1091],{},[1004,14327,1094],{"stretchy":1087},[1004,14329,694],{},[1008,14331,822],{},[1004,14333,924],{},[1081,14335,11334],{},[1004,14337,1965],{},[1004,14339,1088],{"stretchy":1087},[1081,14341,14246],{},[1004,14343,1088],{"stretchy":1087},[4012,14345,14111],{},[1004,14347,1094],{"stretchy":1087},[1004,14349,8490],{"separator":1019},[1081,14351,14246],{},[1004,14353,1088],{"stretchy":1087},[4012,14355,14122],{},[1004,14357,1094],{"stretchy":1087},[1004,14359,1094],{"stretchy":1087},[1011,14361,14362],{"encoding":1013},"H(n) = 1 + \\max(H(\\text{gauche}), H(\\text{droite}))",[663,14364,14366,14393,14411],{"className":14365,"ariaHidden":1019},[1018],[663,14367,14369,14372,14375,14378,14381,14384,14387,14390],{"className":14368},[1023],[663,14370],{"className":14371,"style":1107},[1027],[663,14373,14246],{"className":14374,"style":14274},[1032,1120],[663,14376,1088],{"className":14377},[1116],[663,14379,1091],{"className":14380},[1032,1120],[663,14382,1094],{"className":14383},[1124],[663,14385],{"className":14386,"style":1725},[1724],[663,14388,694],{"className":14389},[1720],[663,14391],{"className":14392,"style":1725},[1724],[663,14394,14396,14399,14402,14405,14408],{"className":14395},[1023],[663,14397],{"className":14398,"style":1028},[1027],[663,14400,822],{"className":14401},[1032],[663,14403],{"className":14404,"style":2124},[1724],[663,14406,924],{"className":14407},[2128],[663,14409],{"className":14410,"style":2124},[1724],[663,14412,14414,14417,14420,14423,14426,14429,14435,14438,14441,14444,14447,14450,14456],{"className":14413},[1023],[663,14415],{"className":14416,"style":1107},[1027],[663,14418,11334],{"className":14419},[1991],[663,14421,1088],{"className":14422},[1116],[663,14424,14246],{"className":14425,"style":14274},[1032,1120],[663,14427,1088],{"className":14428},[1116],[663,14430,14432],{"className":14431},[1032,9107],[663,14433,14111],{"className":14434},[1032],[663,14436,1094],{"className":14437},[1124],[663,14439,8490],{"className":14440},[8489],[663,14442],{"className":14443,"style":2000},[1724],[663,14445,14246],{"className":14446,"style":14274},[1032,1120],[663,14448,1088],{"className":14449},[1116],[663,14451,14453],{"className":14452},[1032,9107],[663,14454,14122],{"className":14455},[1032],[663,14457,4813],{"className":14458},[1124],[1142,14460,14461,4535,14464,14507],{},[603,14462,14463],{},"Coût des parcours",[663,14465,14467,14486],{"className":14466},[988],[663,14468,14470],{"className":14469},[992],[994,14471,14472],{"xmlns":996},[998,14473,14474,14484],{},[1001,14475,14476,14478,14480,14482],{},[1081,14477,1084],{"mathvariant":1083},[1004,14479,1088],{"stretchy":1087},[1081,14481,1091],{},[1004,14483,1094],{"stretchy":1087},[1011,14485,1097],{"encoding":1013},[663,14487,14489],{"className":14488,"ariaHidden":1019},[1018],[663,14490,14492,14495,14498,14501,14504],{"className":14491},[1023],[663,14493],{"className":14494,"style":1107},[1027],[663,14496,1084],{"className":14497,"style":1112},[1032,1111],[663,14499,1088],{"className":14500},[1116],[663,14502,1091],{"className":14503},[1032,1120],[663,14505,1094],{"className":14506},[1124],", chaque nœud visité une fois.",[1142,14509,14510,14513,14514,610],{},[603,14511,14512],{},"ABR équilibré"," : recherche et insertion en ",[663,14515,14517,14540],{"className":14516},[988],[663,14518,14520],{"className":14519},[992],[994,14521,14522],{"xmlns":996},[998,14523,14524,14538],{},[1001,14525,14526,14528,14530,14532,14534,14536],{},[1081,14527,1084],{"mathvariant":1083},[1004,14529,1088],{"stretchy":1087},[1081,14531,1962],{},[1004,14533,1965],{},[1081,14535,1091],{},[1004,14537,1094],{"stretchy":1087},[1011,14539,2042],{"encoding":1013},[663,14541,14543],{"className":14542,"ariaHidden":1019},[1018],[663,14544,14546,14549,14552,14555,14560,14563,14566],{"className":14545},[1023],[663,14547],{"className":14548,"style":1107},[1027],[663,14550,1084],{"className":14551,"style":1112},[1032,1111],[663,14553,1088],{"className":14554},[1116],[663,14556,1992,14558],{"className":14557},[1991],[663,14559,1996],{"style":1995},[663,14561],{"className":14562,"style":2000},[1724],[663,14564,1091],{"className":14565},[1032,1120],[663,14567,1094],{"className":14568},[1124],[1142,14570,14571,14574,14575,610],{},[603,14572,14573],{},"ABR dégénéré"," (clés déjà triées) : retombe à ",[663,14576,14578,14597],{"className":14577},[988],[663,14579,14581],{"className":14580},[992],[994,14582,14583],{"xmlns":996},[998,14584,14585,14595],{},[1001,14586,14587,14589,14591,14593],{},[1081,14588,1084],{"mathvariant":1083},[1004,14590,1088],{"stretchy":1087},[1081,14592,1091],{},[1004,14594,1094],{"stretchy":1087},[1011,14596,1097],{"encoding":1013},[663,14598,14600],{"className":14599,"ariaHidden":1019},[1018],[663,14601,14603,14606,14609,14612,14615],{"className":14602},[1023],[663,14604],{"className":14605,"style":1107},[1027],[663,14607,1084],{"className":14608,"style":1112},[1032,1111],[663,14610,1088],{"className":14611},[1116],[663,14613,1091],{"className":14614},[1032,1120],[663,14616,1094],{"className":14617},[1124],[594,14619,14621],{"id":14620},"les-quatre-parcours","Les quatre parcours",[1164,14623,14624,14635],{},[1167,14625,14626],{},[1170,14627,14628,14630,14632],{},[1173,14629,1175],{},[1173,14631,1178],{},[1173,14633,14634],{},"Sur ABR ?",[1183,14636,14637,14647,14659,14669],{},[1170,14638,14639,14641,14644],{},[1188,14640,1192],{},[1188,14642,14643],{},"racine, gauche, droite",[1188,14645,14646],{},"duplique l'arbre",[1170,14648,14649,14651,14654],{},[1188,14650,1205],{},[1188,14652,14653],{},"gauche, racine, droite",[1188,14655,14656],{},[603,14657,14658],{},"trie en ordre croissant",[1170,14660,14661,14663,14666],{},[1188,14662,1218],{},[1188,14664,14665],{},"gauche, droite, racine",[1188,14667,14668],{},"utile en évaluation d'expressions",[1170,14670,14671,14674,14677],{},[1188,14672,14673],{},"Largeur (BFS)",[1188,14675,14676],{},"niveau par niveau (file)",[1188,14678,14679],{},"aucun ordre particulier",[594,14681,14683],{"id":14682},"à-savoir-reconnaître","À savoir reconnaître",[1164,14685,14686,14696],{},[1167,14687,14688],{},[1170,14689,14690,14693],{},[1173,14691,14692],{},"Situation",[1173,14694,14695],{},"Action à mener",[1183,14697,14698,14706,14771,14781],{},[1170,14699,14700,14703],{},[1188,14701,14702],{},"Énumérer les valeurs triées d'un ABR",[1188,14704,14705],{},"parcours infixe",[1170,14707,14708,14711],{},[1188,14709,14710],{},"Tester si une clé est présente",[1188,14712,14713,14714,14742,14743],{},"descente récursive selon ",[663,14715,14717,14730],{"className":14716},[988],[663,14718,14720],{"className":14719},[992],[994,14721,14722],{"xmlns":996},[998,14723,14724,14728],{},[1001,14725,14726],{},[1004,14727,1701],{},[1011,14729,1701],{"encoding":1013},[663,14731,14733],{"className":14732,"ariaHidden":1019},[1018],[663,14734,14736,14739],{"className":14735},[1023],[663,14737],{"className":14738,"style":1716},[1027],[663,14740,1701],{"className":14741},[1720]," ou ",[663,14744,14746,14759],{"className":14745},[988],[663,14747,14749],{"className":14748},[992],[994,14750,14751],{"xmlns":996},[998,14752,14753,14757],{},[1001,14754,14755],{},[1004,14756,1750],{},[1011,14758,1750],{"encoding":1013},[663,14760,14762],{"className":14761,"ariaHidden":1019},[1018],[663,14763,14765,14768],{"className":14764},[1023],[663,14766],{"className":14767,"style":1716},[1027],[663,14769,1750],{"className":14770},[1720],[1170,14772,14773,14776],{},[1188,14774,14775],{},"Visiter niveau par niveau",[1188,14777,14778,14779],{},"BFS avec une ",[646,14780,2962],{},[1170,14782,14783,14786],{},[1188,14784,14785],{},"Calculer la profondeur maximale",[1188,14787,14788],{},"hauteur récursive",[594,14790,14792],{"id":14791},"pièges-courants","Pièges courants",[1139,14794,14795,14798,14804],{},[1142,14796,14797],{},"Confondre taille (nombre de nœuds) et hauteur (longueur du plus long chemin).",[1142,14799,14800,14801,610],{},"Oublier le cas de base ",[646,14802,14803],{},"if a is None: return",[1142,14805,14806,14807,14862],{},"Croire que l'ABR est toujours en ",[663,14808,14810,14833],{"className":14809},[988],[663,14811,14813],{"className":14812},[992],[994,14814,14815],{"xmlns":996},[998,14816,14817,14831],{},[1001,14818,14819,14821,14823,14825,14827,14829],{},[1081,14820,1084],{"mathvariant":1083},[1004,14822,1088],{"stretchy":1087},[1081,14824,1962],{},[1004,14826,1965],{},[1081,14828,1091],{},[1004,14830,1094],{"stretchy":1087},[1011,14832,2042],{"encoding":1013},[663,14834,14836],{"className":14835,"ariaHidden":1019},[1018],[663,14837,14839,14842,14845,14848,14853,14856,14859],{"className":14838},[1023],[663,14840],{"className":14841,"style":1107},[1027],[663,14843,1084],{"className":14844,"style":1112},[1032,1111],[663,14846,1088],{"className":14847},[1116],[663,14849,1992,14851],{"className":14850},[1991],[663,14852,1996],{"style":1995},[663,14854],{"className":14855,"style":2000},[1724],[663,14857,1091],{"className":14858},[1032,1120],[663,14860,1094],{"className":14861},[1124]," — c'est faux en cas\nde dégénérescence.",[594,14864,14866],{"id":14865},"syntaxe-python-à-retenir","Syntaxe Python (à retenir)",[654,14868,14870],{"className":656,"code":14869,"language":658,"meta":659,"style":659},"class Noeud:\n    def __init__(self, v, g=None, d=None):\n        self.valeur, self.gauche, self.droite = v, g, d\n\ndef infixe(a):\n    if a is None: return\n    infixe(a.gauche); print(a.valeur); infixe(a.droite)\n",[646,14871,14872,14880,14902,14924,14928,14936,14950],{"__ignoreMap":659},[663,14873,14874,14876,14878],{"class":665,"line":666},[663,14875,670],{"class":669},[663,14877,674],{"class":673},[663,14879,678],{"class":677},[663,14881,14882,14884,14886,14889,14891,14893,14896,14898,14900],{"class":665,"line":681},[663,14883,684],{"class":669},[663,14885,688],{"class":687},[663,14887,14888],{"class":677},"(self, v, g",[663,14890,694],{"class":669},[663,14892,652],{"class":687},[663,14894,14895],{"class":677},", d",[663,14897,694],{"class":669},[663,14899,652],{"class":687},[663,14901,706],{"class":677},[663,14903,14904,14906,14909,14912,14915,14917,14919,14921],{"class":665,"line":709},[663,14905,712],{"class":687},[663,14907,14908],{"class":677},".valeur, ",[663,14910,14911],{"class":687},"self",[663,14913,14914],{"class":677},".gauche, ",[663,14916,14911],{"class":687},[663,14918,741],{"class":677},[663,14920,694],{"class":669},[663,14922,14923],{"class":677}," v, g, d\n",[663,14925,14926],{"class":665,"line":723},[663,14927,753],{"emptyLinePlaceholder":752},[663,14929,14930,14932,14934],{"class":665,"line":736},[663,14931,877],{"class":669},[663,14933,1296],{"class":673},[663,14935,883],{"class":677},[663,14937,14938,14940,14942,14944,14946,14948],{"class":665,"line":749},[663,14939,888],{"class":669},[663,14941,891],{"class":677},[663,14943,894],{"class":669},[663,14945,897],{"class":687},[663,14947,1251],{"class":677},[663,14949,1254],{"class":669},[663,14951,14952,14955,14958],{"class":665,"line":756},[663,14953,14954],{"class":677},"    infixe(a.gauche); ",[663,14956,14957],{"class":687},"print",[663,14959,14960],{"class":677},"(a.valeur); infixe(a.droite)\n",[2198,14962,14963],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sBjJW, html code.shiki .sBjJW{--shiki-light:#005CC5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":659,"searchDepth":681,"depth":681,"links":14965},[14966,14967,14968,14969,14970,14971],{"id":13932,"depth":681,"text":13933},{"id":13999,"depth":681,"text":14000},{"id":14620,"depth":681,"text":14621},{"id":14682,"depth":681,"text":14683},{"id":14791,"depth":681,"text":14792},{"id":14865,"depth":681,"text":14866},"Mémo de révision sur les parcours d'arbres binaires et l'ABR.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Farbres-binaires-algos.memo",[],{"title":13926,"description":14972},"2.nsi-tale\u002Fte-algorithmique\u002F1.arbres-binaires-algos.memo","xXVhGvgWUwY09XlEV97W9-KbmrLdWi-9135ns95yHJo",{"id":14980,"title":14981,"bo":14982,"body":14983,"description":15461,"eval":2211,"extension":2212,"labo":2211,"meta":15462,"navigation":2218,"path":15463,"quizzes":15464,"readingTime":666,"seo":15465,"stem":15466,"tp":2211,"__hash__":15467},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.memo.md","Parcours de graphes — l'essentiel",[2226],{"type":591,"value":14984,"toc":15453},[14985,14987,15091,15093,15223,15227,15285,15287,15331,15333,15348,15350,15450],[594,14986,13933],{"id":13932},[599,14988,14989,14991,14992,14994,14995,14997,14998,15000,15001,15086,15087,15090],{},[603,14990,2943],{}," plonge avec une ",[603,14993,2709],{}," (ou récursion), ",[603,14996,2946],{}," étale avec une ",[603,14999,1422],{}," ;\nles deux coûtent ",[663,15002,15004,15035],{"className":15003},[988],[663,15005,15007],{"className":15006},[992],[994,15008,15009],{"xmlns":996},[998,15010,15011,15033],{},[1001,15012,15013,15015,15017,15019,15021,15023,15025,15027,15029,15031],{},[1081,15014,1084],{"mathvariant":1083},[1004,15016,1088],{"stretchy":1087},[1081,15018,2620],{"mathvariant":1956},[1081,15020,2623],{},[1081,15022,2620],{"mathvariant":1956},[1004,15024,924],{},[1081,15026,2620],{"mathvariant":1956},[1081,15028,2632],{},[1081,15030,2620],{"mathvariant":1956},[1004,15032,1094],{"stretchy":1087},[1011,15034,2639],{"encoding":1013},[663,15036,15038,15068],{"className":15037,"ariaHidden":1019},[1018],[663,15039,15041,15044,15047,15050,15053,15056,15059,15062,15065],{"className":15040},[1023],[663,15042],{"className":15043,"style":1107},[1027],[663,15045,1084],{"className":15046,"style":1112},[1032,1111],[663,15048,1088],{"className":15049},[1116],[663,15051,2620],{"className":15052},[1032],[663,15054,2623],{"className":15055,"style":2124},[1032,1120],[663,15057,2620],{"className":15058},[1032],[663,15060],{"className":15061,"style":2124},[1724],[663,15063,924],{"className":15064},[2128],[663,15066],{"className":15067,"style":2124},[1724],[663,15069,15071,15074,15077,15080,15083],{"className":15070},[1023],[663,15072],{"className":15073,"style":1107},[1027],[663,15075,2620],{"className":15076},[1032],[663,15078,2632],{"className":15079,"style":2685},[1032,1120],[663,15081,2620],{"className":15082},[1032],[663,15084,1094],{"className":15085},[1124]," ; seul le BFS garantit le ",[603,15088,15089],{},"plus\ncourt chemin"," en nombre d'arêtes.",[594,15092,14000],{"id":13999},[1139,15094,15095,15104,15112,15119,15209,15214],{},[1142,15096,15097,4535,15100,15103],{},[603,15098,15099],{},"Représentation",[646,15101,15102],{},"graphe = {sommet: [voisins]}"," (liste de successeurs).",[1142,15105,15106,14742,15109,610],{},[603,15107,15108],{},"DFS récursif",[603,15110,15111],{},"DFS itératif avec pile",[1142,15113,15114,4535,15116,610],{},[603,15115,2946],{},[646,15117,15118],{},"from collections import deque",[1142,15120,15121,15123,15124,610],{},[603,15122,3008],{}," : DFS et BFS en ",[663,15125,15127,15158],{"className":15126},[988],[663,15128,15130],{"className":15129},[992],[994,15131,15132],{"xmlns":996},[998,15133,15134,15156],{},[1001,15135,15136,15138,15140,15142,15144,15146,15148,15150,15152,15154],{},[1081,15137,1084],{"mathvariant":1083},[1004,15139,1088],{"stretchy":1087},[1081,15141,2620],{"mathvariant":1956},[1081,15143,2623],{},[1081,15145,2620],{"mathvariant":1956},[1004,15147,924],{},[1081,15149,2620],{"mathvariant":1956},[1081,15151,2632],{},[1081,15153,2620],{"mathvariant":1956},[1004,15155,1094],{"stretchy":1087},[1011,15157,2639],{"encoding":1013},[663,15159,15161,15191],{"className":15160,"ariaHidden":1019},[1018],[663,15162,15164,15167,15170,15173,15176,15179,15182,15185,15188],{"className":15163},[1023],[663,15165],{"className":15166,"style":1107},[1027],[663,15168,1084],{"className":15169,"style":1112},[1032,1111],[663,15171,1088],{"className":15172},[1116],[663,15174,2620],{"className":15175},[1032],[663,15177,2623],{"className":15178,"style":2124},[1032,1120],[663,15180,2620],{"className":15181},[1032],[663,15183],{"className":15184,"style":2124},[1724],[663,15186,924],{"className":15187},[2128],[663,15189],{"className":15190,"style":2124},[1724],[663,15192,15194,15197,15200,15203,15206],{"className":15193},[1023],[663,15195],{"className":15196,"style":1107},[1027],[663,15198,2620],{"className":15199},[1032],[663,15201,2632],{"className":15202,"style":2685},[1032,1120],[663,15204,2620],{"className":15205},[1032],[663,15207,1094],{"className":15208},[1124],[1142,15210,15211,15213],{},[603,15212,3222],{}," non orienté : DFS qui mémorise le parent ; voisin\ndéjà vu ≠ parent ⇒ cycle.",[1142,15215,15216,15219,15220,3679],{},[603,15217,15218],{},"Reconstruire un chemin"," : mémoriser le prédécesseur (",[646,15221,15222],{},"pred[voisin] = s",[594,15224,15226],{"id":15225},"dfs-vs-bfs","DFS vs BFS",[1164,15228,15229,15239],{},[1167,15230,15231],{},[1170,15232,15233,15235,15237],{},[1173,15234,10375],{},[1173,15236,2943],{},[1173,15238,2946],{},[1183,15240,15241,15252,15265,15274],{},[1170,15242,15243,15245,15248],{},[1188,15244,2953],{},[1188,15246,15247],{},"pile \u002F récursion",[1188,15249,2959,15250,1094],{},[646,15251,2962],{},[1170,15253,15254,15257,15260],{},[1188,15255,15256],{},"Premier chemin trouvé",[1188,15258,15259],{},"quelconque",[1188,15261,15262],{},[603,15263,15264],{},"plus court (en arêtes)",[1170,15266,15267,15270,15272],{},[1188,15268,15269],{},"Mémoire en pire cas",[1188,15271,3011],{},[1188,15273,2623],{},[1170,15275,15276,15279,15282],{},[1188,15277,15278],{},"Naturel pour",[1188,15280,15281],{},"atteignabilité, cycles",[1188,15283,15284],{},"distance, plus court chemin",[594,15286,14683],{"id":14682},[1164,15288,15289,15298],{},[1167,15290,15291],{},[1170,15292,15293,15295],{},[1173,15294,14692],{},[1173,15296,15297],{},"Algorithme",[1183,15299,15300,15307,15315,15323],{},[1170,15301,15302,15305],{},[1188,15303,15304],{},"Sortir d'un labyrinthe en un minimum de pas",[1188,15306,2946],{},[1170,15308,15309,15312],{},[1188,15310,15311],{},"Tester si un graphe contient un cycle",[1188,15313,15314],{},"DFS avec parent",[1170,15316,15317,15320],{},[1188,15318,15319],{},"Énumérer une composante connexe",[1188,15321,15322],{},"DFS ou BFS, indifférent",[1170,15324,15325,15328],{},[1188,15326,15327],{},"Plus court chemin pondéré",[1188,15329,15330],{},"Dijkstra (hors programme)",[594,15332,14792],{"id":14791},[1139,15334,15335,15342,15345],{},[1142,15336,15337,15338,15341],{},"Oublier le test ",[646,15339,15340],{},"if voisin not in visite"," → boucle infinie sur un cycle.",[1142,15343,15344],{},"Confondre DFS itératif (pile) et BFS (file) — c'est l'unique différence\nstructurelle entre les deux versions itératives.",[1142,15346,15347],{},"Détection de cycle : ne pas confondre orienté et non orienté ; en orienté\nil faut distinguer arête « avant » et « retour ».",[594,15349,14866],{"id":14865},[654,15351,15353],{"className":656,"code":15352,"language":658,"meta":659,"style":659},"from collections import deque\n\ndef bfs(g, depart):\n    vu, file = {depart}, deque([depart])\n    while file:\n        s = file.popleft()\n        for v in g[s]:\n            if v not in vu:\n                vu.add(v); file.append(v)\n    return vu\n",[646,15354,15355,15365,15369,15378,15390,15398,15408,15420,15433,15443],{"__ignoreMap":659},[663,15356,15357,15359,15361,15363],{"class":665,"line":666},[663,15358,1433],{"class":669},[663,15360,1436],{"class":677},[663,15362,1439],{"class":669},[663,15364,1442],{"class":677},[663,15366,15367],{"class":665,"line":681},[663,15368,753],{"emptyLinePlaceholder":752},[663,15370,15371,15373,15375],{"class":665,"line":709},[663,15372,877],{"class":669},[663,15374,2759],{"class":673},[663,15376,15377],{"class":677},"(g, depart):\n",[663,15379,15380,15383,15385,15387],{"class":665,"line":723},[663,15381,15382],{"class":677},"    vu, ",[663,15384,1422],{"class":1265},[663,15386,1477],{"class":669},[663,15388,15389],{"class":677}," {depart}, deque([depart])\n",[663,15391,15392,15394,15396],{"class":665,"line":736},[663,15393,1485],{"class":669},[663,15395,1488],{"class":1265},[663,15397,678],{"class":677},[663,15399,15400,15402,15404,15406],{"class":665,"line":749},[663,15401,2524],{"class":677},[663,15403,694],{"class":669},[663,15405,1488],{"class":1265},[663,15407,1502],{"class":677},[663,15409,15410,15412,15415,15417],{"class":665,"line":756},[663,15411,2432],{"class":669},[663,15413,15414],{"class":677}," v ",[663,15416,2438],{"class":669},[663,15418,15419],{"class":677}," g[s]:\n",[663,15421,15422,15424,15426,15428,15430],{"class":665,"line":763},[663,15423,2446],{"class":669},[663,15425,15414],{"class":677},[663,15427,2451],{"class":669},[663,15429,2454],{"class":669},[663,15431,15432],{"class":677}," vu:\n",[663,15434,15435,15438,15440],{"class":665,"line":769},[663,15436,15437],{"class":677},"                vu.add(v); ",[663,15439,1422],{"class":1265},[663,15441,15442],{"class":677},".append(v)\n",[663,15444,15445,15447],{"class":665,"line":775},[663,15446,912],{"class":669},[663,15448,15449],{"class":677}," vu\n",[2198,15451,15452],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP4rz, html code.shiki .sP4rz{--shiki-light:#E36209;--shiki-default:#E36209;--shiki-dark:#FFAB70}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":659,"searchDepth":681,"depth":681,"links":15454},[15455,15456,15457,15458,15459,15460],{"id":13932,"depth":681,"text":13933},{"id":13999,"depth":681,"text":14000},{"id":15225,"depth":681,"text":15226},{"id":14682,"depth":681,"text":14683},{"id":14791,"depth":681,"text":14792},{"id":14865,"depth":681,"text":14866},"Mémo de révision sur DFS, BFS, détection de cycle et chemins.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fgraphes-parcours.memo",[],{"title":14981,"description":15461},"2.nsi-tale\u002Fte-algorithmique\u002F2.graphes-parcours.memo","DW_SojHCouoZMjuk1P1wuatTuzjcSese2CiQ6vab9Mo",{"id":15469,"title":15470,"bo":15471,"body":15472,"description":17480,"eval":2211,"extension":2212,"labo":2211,"meta":17481,"navigation":2218,"path":17482,"quizzes":17483,"readingTime":666,"seo":17484,"stem":17485,"tp":2211,"__hash__":17486},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner.memo.md","Diviser pour régner — l'essentiel",[3475],{"type":591,"value":15473,"toc":17471},[15474,15476,15552,15554,16450,16454,16549,16553,17125,17127,17351,17353,17400,17402,17468],[594,15475,13933],{"id":13932},[599,15477,15478,15480,15481,15484,15485,15488,15489,610],{},[603,15479,3668],{}," en sous-problèmes du même type, ",[603,15482,15483],{},"régner"," par récursion, ",[603,15486,15487],{},"combiner"," les\nsous-solutions — c'est la méthode qui rend le tri fusion en ",[663,15490,15492,15517],{"className":15491},[988],[663,15493,15495],{"className":15494},[992],[994,15496,15497],{"xmlns":996},[998,15498,15499,15515],{},[1001,15500,15501,15503,15505,15507,15509,15511,15513],{},[1081,15502,1084],{"mathvariant":1083},[1004,15504,1088],{"stretchy":1087},[1081,15506,1091],{},[1081,15508,1962],{},[1004,15510,1965],{},[1081,15512,1091],{},[1004,15514,1094],{"stretchy":1087},[1011,15516,4705],{"encoding":1013},[663,15518,15520],{"className":15519,"ariaHidden":1019},[1018],[663,15521,15523,15526,15529,15532,15535,15538,15543,15546,15549],{"className":15522},[1023],[663,15524],{"className":15525,"style":1107},[1027],[663,15527,1084],{"className":15528,"style":1112},[1032,1111],[663,15530,1088],{"className":15531},[1116],[663,15533,1091],{"className":15534},[1032,1120],[663,15536],{"className":15537,"style":2000},[1724],[663,15539,1992,15541],{"className":15540},[1991],[663,15542,1996],{"style":1995},[663,15544],{"className":15545,"style":2000},[1724],[663,15547,1091],{"className":15548},[1032,1120],[663,15550,1094],{"className":15551},[1124],[594,15553,14000],{"id":13999},[1139,15555,15556,15710,16091,16321],{},[1142,15557,15558,4535,15561,610],{},[603,15559,15560],{},"Récurrence type",[663,15562,15564,15611],{"className":15563},[988],[663,15565,15567],{"className":15566},[992],[994,15568,15569],{"xmlns":996},[998,15570,15571,15609],{},[1001,15572,15573,15575,15577,15579,15581,15583,15585,15587,15589,15591,15593,15595,15597,15599,15601,15603,15605,15607],{},[1081,15574,3831],{},[1004,15576,1088],{"stretchy":1087},[1081,15578,1091],{},[1004,15580,1094],{"stretchy":1087},[1004,15582,694],{},[1081,15584,3707],{},[1004,15586,3844],{},[1081,15588,3831],{},[1004,15590,1088],{"stretchy":1087},[1081,15592,1091],{},[1081,15594,3739],{"mathvariant":1956},[1081,15596,3742],{},[1004,15598,1094],{"stretchy":1087},[1004,15600,924],{},[1081,15602,3779],{},[1004,15604,1088],{"stretchy":1087},[1081,15606,1091],{},[1004,15608,1094],{"stretchy":1087},[1011,15610,5256],{"encoding":1013},[663,15612,15614,15641,15659,15692],{"className":15613,"ariaHidden":1019},[1018],[663,15615,15617,15620,15623,15626,15629,15632,15635,15638],{"className":15616},[1023],[663,15618],{"className":15619,"style":1107},[1027],[663,15621,3831],{"className":15622,"style":3884},[1032,1120],[663,15624,1088],{"className":15625},[1116],[663,15627,1091],{"className":15628},[1032,1120],[663,15630,1094],{"className":15631},[1124],[663,15633],{"className":15634,"style":1725},[1724],[663,15636,694],{"className":15637},[1720],[663,15639],{"className":15640,"style":1725},[1724],[663,15642,15644,15647,15650,15653,15656],{"className":15643},[1023],[663,15645],{"className":15646,"style":3909},[1027],[663,15648,3707],{"className":15649},[1032,1120],[663,15651],{"className":15652,"style":2124},[1724],[663,15654,3844],{"className":15655},[2128],[663,15657],{"className":15658,"style":2124},[1724],[663,15660,15662,15665,15668,15671,15674,15677,15680,15683,15686,15689],{"className":15661},[1023],[663,15663],{"className":15664,"style":1107},[1027],[663,15666,3831],{"className":15667,"style":3884},[1032,1120],[663,15669,1088],{"className":15670},[1116],[663,15672,1091],{"className":15673},[1032,1120],[663,15675,3739],{"className":15676},[1032],[663,15678,3742],{"className":15679},[1032,1120],[663,15681,1094],{"className":15682},[1124],[663,15684],{"className":15685,"style":2124},[1724],[663,15687,924],{"className":15688},[2128],[663,15690],{"className":15691,"style":2124},[1724],[663,15693,15695,15698,15701,15704,15707],{"className":15694},[1023],[663,15696],{"className":15697,"style":1107},[1027],[663,15699,3779],{"className":15700,"style":3801},[1032,1120],[663,15702,1088],{"className":15703},[1116],[663,15705,1091],{"className":15706},[1032,1120],[663,15708,1094],{"className":15709},[1124],[1142,15711,15712,15715,15716,15893,15894,610],{},[603,15713,15714],{},"Théorème maître (cas 2)"," : si ",[663,15717,15719,15764],{"className":15718},[988],[663,15720,15722],{"className":15721},[992],[994,15723,15724],{"xmlns":996},[998,15725,15726,15762],{},[1001,15727,15728,15730,15732,15734,15736,15738,15740,15742,15760],{},[1081,15729,3779],{},[1004,15731,1088],{"stretchy":1087},[1081,15733,1091],{},[1004,15735,1094],{"stretchy":1087},[1004,15737,694],{},[1081,15739,1957],{"mathvariant":1956},[1004,15741,1088],{"stretchy":1087},[5414,15743,15744,15746],{},[1081,15745,1091],{},[1001,15747,15748,15758],{},[3562,15749,15750,15756],{},[1001,15751,15752,15754],{},[1081,15753,1962],{},[1004,15755,1965],{},[1081,15757,3742],{},[1081,15759,3707],{},[1004,15761,1094],{"stretchy":1087},[1011,15763,6030],{"encoding":1013},[663,15765,15767,15794],{"className":15766,"ariaHidden":1019},[1018],[663,15768,15770,15773,15776,15779,15782,15785,15788,15791],{"className":15769},[1023],[663,15771],{"className":15772,"style":1107},[1027],[663,15774,3779],{"className":15775,"style":3801},[1032,1120],[663,15777,1088],{"className":15778},[1116],[663,15780,1091],{"className":15781},[1032,1120],[663,15783,1094],{"className":15784},[1124],[663,15786],{"className":15787,"style":1725},[1724],[663,15789,694],{"className":15790},[1720],[663,15792],{"className":15793,"style":1725},[1724],[663,15795,15797,15800,15803,15806,15890],{"className":15796},[1023],[663,15798],{"className":15799,"style":5696},[1027],[663,15801,1957],{"className":15802},[1032],[663,15804,1088],{"className":15805},[1116],[663,15807,15809,15812],{"className":15808},[1032],[663,15810,1091],{"className":15811},[1032,1120],[663,15813,15815],{"className":15814},[3598],[663,15816,15818],{"className":15817},[3602],[663,15819,15821],{"className":15820},[3607],[663,15822,15824],{"className":15823,"style":5444},[3611],[663,15825,15826,15829],{"style":5465},[663,15827],{"className":15828,"style":3620},[3619],[663,15830,15832],{"className":15831},[3624,3625,3626,3627],[663,15833,15835,15884,15887],{"className":15834},[1032,3627],[663,15836,15838,15850],{"className":15837},[1991,3627],[663,15839,15841,15844,15847],{"className":15840},[1991,3627],[663,15842,5484],{"className":15843},[3627],[663,15845,5488],{"className":15846},[3627],[663,15848,1996],{"className":15849,"style":1995},[3627],[663,15851,15853],{"className":15852},[3598],[663,15854,15856,15876],{"className":15855},[3602,3603],[663,15857,15859,15873],{"className":15858},[3607],[663,15860,15862],{"className":15861,"style":5504},[3611],[663,15863,15864,15867],{"style":5507},[663,15865],{"className":15866,"style":5511},[3619],[663,15868,15870],{"className":15869},[3624,5515,5516,3627],[663,15871,3742],{"className":15872},[1032,1120,3627],[663,15874,3635],{"className":15875},[3634],[663,15877,15879],{"className":15878},[3607],[663,15880,15882],{"className":15881,"style":5529},[3611],[663,15883],{},[663,15885],{"className":15886,"style":5535},[1724,3627],[663,15888,3707],{"className":15889},[1032,1120,3627],[663,15891,1094],{"className":15892},[1124],", alors\n",[663,15895,15897,15948],{"className":15896},[988],[663,15898,15900],{"className":15899},[992],[994,15901,15902],{"xmlns":996},[998,15903,15904,15946],{},[1001,15905,15906,15908,15910,15912,15914,15916,15918,15920,15938,15940,15942,15944],{},[1081,15907,3831],{},[1004,15909,1088],{"stretchy":1087},[1081,15911,1091],{},[1004,15913,1094],{"stretchy":1087},[1004,15915,694],{},[1081,15917,1957],{"mathvariant":1956},[1004,15919,1088],{"stretchy":1087},[5414,15921,15922,15924],{},[1081,15923,1091],{},[1001,15925,15926,15936],{},[3562,15927,15928,15934],{},[1001,15929,15930,15932],{},[1081,15931,1962],{},[1004,15933,1965],{},[1081,15935,3742],{},[1081,15937,3707],{},[1081,15939,1962],{},[1004,15941,1965],{},[1081,15943,1091],{},[1004,15945,1094],{"stretchy":1087},[1011,15947,6216],{"encoding":1013},[663,15949,15951,15978],{"className":15950,"ariaHidden":1019},[1018],[663,15952,15954,15957,15960,15963,15966,15969,15972,15975],{"className":15953},[1023],[663,15955],{"className":15956,"style":1107},[1027],[663,15958,3831],{"className":15959,"style":3884},[1032,1120],[663,15961,1088],{"className":15962},[1116],[663,15964,1091],{"className":15965},[1032,1120],[663,15967,1094],{"className":15968},[1124],[663,15970],{"className":15971,"style":1725},[1724],[663,15973,694],{"className":15974},[1720],[663,15976],{"className":15977,"style":1725},[1724],[663,15979,15981,15984,15987,15990,16074,16077,16082,16085,16088],{"className":15980},[1023],[663,15982],{"className":15983,"style":5696},[1027],[663,15985,1957],{"className":15986},[1032],[663,15988,1088],{"className":15989},[1116],[663,15991,15993,15996],{"className":15992},[1032],[663,15994,1091],{"className":15995},[1032,1120],[663,15997,15999],{"className":15998},[3598],[663,16000,16002],{"className":16001},[3602],[663,16003,16005],{"className":16004},[3607],[663,16006,16008],{"className":16007,"style":5444},[3611],[663,16009,16010,16013],{"style":5465},[663,16011],{"className":16012,"style":3620},[3619],[663,16014,16016],{"className":16015},[3624,3625,3626,3627],[663,16017,16019,16068,16071],{"className":16018},[1032,3627],[663,16020,16022,16034],{"className":16021},[1991,3627],[663,16023,16025,16028,16031],{"className":16024},[1991,3627],[663,16026,5484],{"className":16027},[3627],[663,16029,5488],{"className":16030},[3627],[663,16032,1996],{"className":16033,"style":1995},[3627],[663,16035,16037],{"className":16036},[3598],[663,16038,16040,16060],{"className":16039},[3602,3603],[663,16041,16043,16057],{"className":16042},[3607],[663,16044,16046],{"className":16045,"style":5504},[3611],[663,16047,16048,16051],{"style":5507},[663,16049],{"className":16050,"style":5511},[3619],[663,16052,16054],{"className":16053},[3624,5515,5516,3627],[663,16055,3742],{"className":16056},[1032,1120,3627],[663,16058,3635],{"className":16059},[3634],[663,16061,16063],{"className":16062},[3607],[663,16064,16066],{"className":16065,"style":5529},[3611],[663,16067],{},[663,16069],{"className":16070,"style":5535},[1724,3627],[663,16072,3707],{"className":16073},[1032,1120,3627],[663,16075],{"className":16076,"style":2000},[1724],[663,16078,1992,16080],{"className":16079},[1991],[663,16081,1996],{"style":1995},[663,16083],{"className":16084,"style":2000},[1724],[663,16086,1091],{"className":16087},[1032,1120],[663,16089,1094],{"className":16090},[1124],[1142,16092,16093,4535,16096,610],{},[603,16094,16095],{},"Tri fusion",[663,16097,16099,16172],{"className":16098},[988],[663,16100,16102],{"className":16101},[992],[994,16103,16104],{"xmlns":996},[998,16105,16106,16169],{},[1001,16107,16108,16110,16112,16114,16116,16118,16120,16122,16124,16126,16128,16130,16132,16134,16136,16138,16140,16142,16145,16147,16149,16151,16153,16155,16157,16159,16161,16163,16165,16167],{},[1081,16109,3831],{},[1004,16111,1088],{"stretchy":1087},[1081,16113,1091],{},[1004,16115,1094],{"stretchy":1087},[1004,16117,694],{},[1008,16119,816],{},[1081,16121,3831],{},[1004,16123,1088],{"stretchy":1087},[1081,16125,1091],{},[1081,16127,3739],{"mathvariant":1956},[1008,16129,816],{},[1004,16131,1094],{"stretchy":1087},[1004,16133,924],{},[1081,16135,1084],{"mathvariant":1083},[1004,16137,1088],{"stretchy":1087},[1081,16139,1091],{},[1004,16141,1094],{"stretchy":1087},[1004,16143,16144],{},"⇒",[1081,16146,3831],{},[1004,16148,1088],{"stretchy":1087},[1081,16150,1091],{},[1004,16152,1094],{"stretchy":1087},[1004,16154,694],{},[1081,16156,1957],{"mathvariant":1956},[1004,16158,1088],{"stretchy":1087},[1081,16160,1091],{},[1081,16162,1962],{},[1004,16164,1965],{},[1081,16166,1091],{},[1004,16168,1094],{"stretchy":1087},[1011,16170,16171],{"encoding":1013},"T(n) = 2 T(n\u002F2) + \\mathcal{O}(n) \\Rightarrow T(n) = \\Theta(n \\log n)",[663,16173,16175,16202,16235,16262,16289],{"className":16174,"ariaHidden":1019},[1018],[663,16176,16178,16181,16184,16187,16190,16193,16196,16199],{"className":16177},[1023],[663,16179],{"className":16180,"style":1107},[1027],[663,16182,3831],{"className":16183,"style":3884},[1032,1120],[663,16185,1088],{"className":16186},[1116],[663,16188,1091],{"className":16189},[1032,1120],[663,16191,1094],{"className":16192},[1124],[663,16194],{"className":16195,"style":1725},[1724],[663,16197,694],{"className":16198},[1720],[663,16200],{"className":16201,"style":1725},[1724],[663,16203,16205,16208,16211,16214,16217,16220,16223,16226,16229,16232],{"className":16204},[1023],[663,16206],{"className":16207,"style":1107},[1027],[663,16209,816],{"className":16210},[1032],[663,16212,3831],{"className":16213,"style":3884},[1032,1120],[663,16215,1088],{"className":16216},[1116],[663,16218,1091],{"className":16219},[1032,1120],[663,16221,4094],{"className":16222},[1032],[663,16224,1094],{"className":16225},[1124],[663,16227],{"className":16228,"style":2124},[1724],[663,16230,924],{"className":16231},[2128],[663,16233],{"className":16234,"style":2124},[1724],[663,16236,16238,16241,16244,16247,16250,16253,16256,16259],{"className":16237},[1023],[663,16239],{"className":16240,"style":1107},[1027],[663,16242,1084],{"className":16243,"style":1112},[1032,1111],[663,16245,1088],{"className":16246},[1116],[663,16248,1091],{"className":16249},[1032,1120],[663,16251,1094],{"className":16252},[1124],[663,16254],{"className":16255,"style":1725},[1724],[663,16257,16144],{"className":16258},[1720],[663,16260],{"className":16261,"style":1725},[1724],[663,16263,16265,16268,16271,16274,16277,16280,16283,16286],{"className":16264},[1023],[663,16266],{"className":16267,"style":1107},[1027],[663,16269,3831],{"className":16270,"style":3884},[1032,1120],[663,16272,1088],{"className":16273},[1116],[663,16275,1091],{"className":16276},[1032,1120],[663,16278,1094],{"className":16279},[1124],[663,16281],{"className":16282,"style":1725},[1724],[663,16284,694],{"className":16285},[1720],[663,16287],{"className":16288,"style":1725},[1724],[663,16290,16292,16295,16298,16301,16304,16307,16312,16315,16318],{"className":16291},[1023],[663,16293],{"className":16294,"style":1107},[1027],[663,16296,1957],{"className":16297},[1032],[663,16299,1088],{"className":16300},[1116],[663,16302,1091],{"className":16303},[1032,1120],[663,16305],{"className":16306,"style":2000},[1724],[663,16308,1992,16310],{"className":16309},[1991],[663,16311,1996],{"style":1995},[663,16313],{"className":16314,"style":2000},[1724],[663,16316,1091],{"className":16317},[1032,1120],[663,16319,1094],{"className":16320},[1124],[1142,16322,16323,4535,16326,16411,16412,610],{},[603,16324,16325],{},"Profondeur récursive",[663,16327,16329,16353],{"className":16328},[988],[663,16330,16332],{"className":16331},[992],[994,16333,16334],{"xmlns":996},[998,16335,16336,16350],{},[1001,16337,16338,16348],{},[3562,16339,16340,16346],{},[1001,16341,16342,16344],{},[1081,16343,1962],{},[1004,16345,1965],{},[1081,16347,3742],{},[1081,16349,1091],{},[1011,16351,16352],{"encoding":1013},"\\log_b n",[663,16354,16356],{"className":16355,"ariaHidden":1019},[1018],[663,16357,16359,16362,16405,16408],{"className":16358},[1023],[663,16360],{"className":16361,"style":3586},[1027],[663,16363,16365,16370],{"className":16364},[1991],[663,16366,1992,16368],{"className":16367},[1991],[663,16369,1996],{"style":1995},[663,16371,16373],{"className":16372},[3598],[663,16374,16376,16397],{"className":16375},[3602,3603],[663,16377,16379,16394],{"className":16378},[3607],[663,16380,16383],{"className":16381,"style":16382},[3611],"height:0.242em;",[663,16384,16385,16388],{"style":3615},[663,16386],{"className":16387,"style":3620},[3619],[663,16389,16391],{"className":16390},[3624,3625,3626,3627],[663,16392,3742],{"className":16393},[1032,1120,3627],[663,16395,3635],{"className":16396},[3634],[663,16398,16400],{"className":16399},[3607],[663,16401,16403],{"className":16402,"style":3642},[3611],[663,16404],{},[663,16406],{"className":16407,"style":2000},[1724],[663,16409,1091],{"className":16410},[1032,1120]," niveaux pour une découpe en parts de\ntaille ",[663,16413,16415,16432],{"className":16414},[988],[663,16416,16418],{"className":16417},[992],[994,16419,16420],{"xmlns":996},[998,16421,16422,16430],{},[1001,16423,16424,16426,16428],{},[1081,16425,1091],{},[1081,16427,3739],{"mathvariant":1956},[1081,16429,3742],{},[1011,16431,3745],{"encoding":1013},[663,16433,16435],{"className":16434,"ariaHidden":1019},[1018],[663,16436,16438,16441,16444,16447],{"className":16437},[1023],[663,16439],{"className":16440,"style":1107},[1027],[663,16442,1091],{"className":16443},[1032,1120],[663,16445,3739],{"className":16446},[1032],[663,16448,3742],{"className":16449},[1032,1120],[594,16451,16453],{"id":16452},"le-squelette-dun-algorithme","Le squelette d'un algorithme",[1164,16455,16456,16466],{},[1167,16457,16458],{},[1170,16459,16460,16463],{},[1173,16461,16462],{},"Étape",[1173,16464,16465],{},"Action",[1183,16467,16468,16528,16535,16542],{},[1170,16469,16470,16473],{},[1188,16471,16472],{},"Cas de base",[1188,16474,16475,16476],{},"renvoyer la réponse pour ",[663,16477,16479,16497],{"className":16478},[988],[663,16480,16482],{"className":16481},[992],[994,16483,16484],{"xmlns":996},[998,16485,16486,16494],{},[1001,16487,16488,16490,16492],{},[1081,16489,1091],{},[1004,16491,9070],{},[1008,16493,822],{},[1011,16495,16496],{"encoding":1013},"n \\le 1",[663,16498,16500,16519],{"className":16499,"ariaHidden":1019},[1018],[663,16501,16503,16507,16510,16513,16516],{"className":16502},[1023],[663,16504],{"className":16505,"style":16506},[1027],"height:0.7719em;vertical-align:-0.136em;",[663,16508,1091],{"className":16509},[1032,1120],[663,16511],{"className":16512,"style":1725},[1724],[663,16514,9070],{"className":16515},[1720],[663,16517],{"className":16518,"style":1725},[1724],[663,16520,16522,16525],{"className":16521},[1023],[663,16523],{"className":16524,"style":1063},[1027],[663,16526,822],{"className":16527},[1032],[1170,16529,16530,16532],{},[1188,16531,3668],{},[1188,16533,16534],{},"partitionner l'entrée",[1170,16536,16537,16539],{},[1188,16538,3674],{},[1188,16540,16541],{},"appels récursifs",[1170,16543,16544,16546],{},[1188,16545,3684],{},[1188,16547,16548],{},"fusionner les sous-solutions",[594,16550,16552],{"id":16551},"coûts-à-connaître","Coûts à connaître",[1164,16554,16555,16566],{},[1167,16556,16557],{},[1170,16558,16559,16561,16564],{},[1173,16560,15297],{},[1173,16562,16563],{},"Récurrence",[1173,16565,3008],{},[1183,16567,16568,16732,16883],{},[1170,16569,16570,16572,16667],{},[1188,16571,16095],{},[1188,16573,16574],{},[663,16575,16577,16613],{"className":16576},[988],[663,16578,16580],{"className":16579},[992],[994,16581,16582],{"xmlns":996},[998,16583,16584,16610],{},[1001,16585,16586,16588,16590,16592,16594,16596,16598,16600,16602,16604,16606,16608],{},[1008,16587,816],{},[1081,16589,3831],{},[1004,16591,1088],{"stretchy":1087},[1081,16593,1091],{},[1081,16595,3739],{"mathvariant":1956},[1008,16597,816],{},[1004,16599,1094],{"stretchy":1087},[1004,16601,924],{},[1081,16603,1084],{"mathvariant":1083},[1004,16605,1088],{"stretchy":1087},[1081,16607,1091],{},[1004,16609,1094],{"stretchy":1087},[1011,16611,16612],{"encoding":1013},"2 T(n\u002F2) + \\mathcal{O}(n)",[663,16614,16616,16649],{"className":16615,"ariaHidden":1019},[1018],[663,16617,16619,16622,16625,16628,16631,16634,16637,16640,16643,16646],{"className":16618},[1023],[663,16620],{"className":16621,"style":1107},[1027],[663,16623,816],{"className":16624},[1032],[663,16626,3831],{"className":16627,"style":3884},[1032,1120],[663,16629,1088],{"className":16630},[1116],[663,16632,1091],{"className":16633},[1032,1120],[663,16635,4094],{"className":16636},[1032],[663,16638,1094],{"className":16639},[1124],[663,16641],{"className":16642,"style":2124},[1724],[663,16644,924],{"className":16645},[2128],[663,16647],{"className":16648,"style":2124},[1724],[663,16650,16652,16655,16658,16661,16664],{"className":16651},[1023],[663,16653],{"className":16654,"style":1107},[1027],[663,16656,1084],{"className":16657,"style":1112},[1032,1111],[663,16659,1088],{"className":16660},[1116],[663,16662,1091],{"className":16663},[1032,1120],[663,16665,1094],{"className":16666},[1124],[1188,16668,16669],{},[663,16670,16672,16697],{"className":16671},[988],[663,16673,16675],{"className":16674},[992],[994,16676,16677],{"xmlns":996},[998,16678,16679,16695],{},[1001,16680,16681,16683,16685,16687,16689,16691,16693],{},[1081,16682,1084],{"mathvariant":1083},[1004,16684,1088],{"stretchy":1087},[1081,16686,1091],{},[1081,16688,1962],{},[1004,16690,1965],{},[1081,16692,1091],{},[1004,16694,1094],{"stretchy":1087},[1011,16696,4705],{"encoding":1013},[663,16698,16700],{"className":16699,"ariaHidden":1019},[1018],[663,16701,16703,16706,16709,16712,16715,16718,16723,16726,16729],{"className":16702},[1023],[663,16704],{"className":16705,"style":1107},[1027],[663,16707,1084],{"className":16708,"style":1112},[1032,1111],[663,16710,1088],{"className":16711},[1116],[663,16713,1091],{"className":16714},[1032,1120],[663,16716],{"className":16717,"style":2000},[1724],[663,16719,1992,16721],{"className":16720},[1991],[663,16722,1996],{"style":1995},[663,16724],{"className":16725,"style":2000},[1724],[663,16727,1091],{"className":16728},[1032,1120],[663,16730,1094],{"className":16731},[1124],[1170,16733,16734,16736,16826],{},[1188,16735,429],{},[1188,16737,16738],{},[663,16739,16741,16775],{"className":16740},[988],[663,16742,16744],{"className":16743},[992],[994,16745,16746],{"xmlns":996},[998,16747,16748,16772],{},[1001,16749,16750,16752,16754,16756,16758,16760,16762,16764,16766,16768,16770],{},[1081,16751,3831],{},[1004,16753,1088],{"stretchy":1087},[1081,16755,1091],{},[1081,16757,3739],{"mathvariant":1956},[1008,16759,816],{},[1004,16761,1094],{"stretchy":1087},[1004,16763,924],{},[1081,16765,1084],{"mathvariant":1083},[1004,16767,1088],{"stretchy":1087},[1008,16769,822],{},[1004,16771,1094],{"stretchy":1087},[1011,16773,16774],{"encoding":1013},"T(n\u002F2) + \\mathcal{O}(1)",[663,16776,16778,16808],{"className":16777,"ariaHidden":1019},[1018],[663,16779,16781,16784,16787,16790,16793,16796,16799,16802,16805],{"className":16780},[1023],[663,16782],{"className":16783,"style":1107},[1027],[663,16785,3831],{"className":16786,"style":3884},[1032,1120],[663,16788,1088],{"className":16789},[1116],[663,16791,1091],{"className":16792},[1032,1120],[663,16794,4094],{"className":16795},[1032],[663,16797,1094],{"className":16798},[1124],[663,16800],{"className":16801,"style":2124},[1724],[663,16803,924],{"className":16804},[2128],[663,16806],{"className":16807,"style":2124},[1724],[663,16809,16811,16814,16817,16820,16823],{"className":16810},[1023],[663,16812],{"className":16813,"style":1107},[1027],[663,16815,1084],{"className":16816,"style":1112},[1032,1111],[663,16818,1088],{"className":16819},[1116],[663,16821,822],{"className":16822},[1032],[663,16824,1094],{"className":16825},[1124],[1188,16827,16828],{},[663,16829,16831,16854],{"className":16830},[988],[663,16832,16834],{"className":16833},[992],[994,16835,16836],{"xmlns":996},[998,16837,16838,16852],{},[1001,16839,16840,16842,16844,16846,16848,16850],{},[1081,16841,1084],{"mathvariant":1083},[1004,16843,1088],{"stretchy":1087},[1081,16845,1962],{},[1004,16847,1965],{},[1081,16849,1091],{},[1004,16851,1094],{"stretchy":1087},[1011,16853,2042],{"encoding":1013},[663,16855,16857],{"className":16856,"ariaHidden":1019},[1018],[663,16858,16860,16863,16866,16869,16874,16877,16880],{"className":16859},[1023],[663,16861],{"className":16862,"style":1107},[1027],[663,16864,1084],{"className":16865,"style":1112},[1032,1111],[663,16867,1088],{"className":16868},[1116],[663,16870,1992,16872],{"className":16871},[1991],[663,16873,1996],{"style":1995},[663,16875],{"className":16876,"style":2000},[1724],[663,16878,1091],{"className":16879},[1032,1120],[663,16881,1094],{"className":16882},[1124],[1170,16884,16885,16887,16982],{},[1188,16886,8406],{},[1188,16888,16889],{},[663,16890,16892,16928],{"className":16891},[988],[663,16893,16895],{"className":16894},[992],[994,16896,16897],{"xmlns":996},[998,16898,16899,16925],{},[1001,16900,16901,16903,16905,16907,16909,16911,16913,16915,16917,16919,16921,16923],{},[1008,16902,828],{},[1081,16904,3831],{},[1004,16906,1088],{"stretchy":1087},[1081,16908,1091],{},[1081,16910,3739],{"mathvariant":1956},[1008,16912,816],{},[1004,16914,1094],{"stretchy":1087},[1004,16916,924],{},[1081,16918,1084],{"mathvariant":1083},[1004,16920,1088],{"stretchy":1087},[1081,16922,1091],{},[1004,16924,1094],{"stretchy":1087},[1011,16926,16927],{"encoding":1013},"3 T(n\u002F2) + \\mathcal{O}(n)",[663,16929,16931,16964],{"className":16930,"ariaHidden":1019},[1018],[663,16932,16934,16937,16940,16943,16946,16949,16952,16955,16958,16961],{"className":16933},[1023],[663,16935],{"className":16936,"style":1107},[1027],[663,16938,828],{"className":16939},[1032],[663,16941,3831],{"className":16942,"style":3884},[1032,1120],[663,16944,1088],{"className":16945},[1116],[663,16947,1091],{"className":16948},[1032,1120],[663,16950,4094],{"className":16951},[1032],[663,16953,1094],{"className":16954},[1124],[663,16956],{"className":16957,"style":2124},[1724],[663,16959,924],{"className":16960},[2128],[663,16962],{"className":16963,"style":2124},[1724],[663,16965,16967,16970,16973,16976,16979],{"className":16966},[1023],[663,16968],{"className":16969,"style":1107},[1027],[663,16971,1084],{"className":16972,"style":1112},[1032,1111],[663,16974,1088],{"className":16975},[1116],[663,16977,1091],{"className":16978},[1032,1120],[663,16980,1094],{"className":16981},[1124],[1188,16983,16984],{},[663,16985,16987,17023],{"className":16986},[988],[663,16988,16990],{"className":16989},[992],[994,16991,16992],{"xmlns":996},[998,16993,16994,17020],{},[1001,16995,16996,16998,17000,17018],{},[1081,16997,1084],{"mathvariant":1083},[1004,16999,1088],{"stretchy":1087},[5414,17001,17002,17004],{},[1081,17003,1091],{},[1001,17005,17006,17016],{},[3562,17007,17008,17014],{},[1001,17009,17010,17012],{},[1081,17011,1962],{},[1004,17013,1965],{},[1008,17015,816],{},[1008,17017,828],{},[1004,17019,1094],{"stretchy":1087},[1011,17021,17022],{"encoding":1013},"\\mathcal{O}(n^{\\log_2 3})",[663,17024,17026],{"className":17025,"ariaHidden":1019},[1018],[663,17027,17029,17032,17035,17038,17122],{"className":17028},[1023],[663,17030],{"className":17031,"style":5696},[1027],[663,17033,1084],{"className":17034,"style":1112},[1032,1111],[663,17036,1088],{"className":17037},[1116],[663,17039,17041,17044],{"className":17040},[1032],[663,17042,1091],{"className":17043},[1032,1120],[663,17045,17047],{"className":17046},[3598],[663,17048,17050],{"className":17049},[3602],[663,17051,17053],{"className":17052},[3607],[663,17054,17056],{"className":17055,"style":5444},[3611],[663,17057,17058,17061],{"style":5465},[663,17059],{"className":17060,"style":3620},[3619],[663,17062,17064],{"className":17063},[3624,3625,3626,3627],[663,17065,17067,17116,17119],{"className":17066},[1032,3627],[663,17068,17070,17082],{"className":17069},[1991,3627],[663,17071,17073,17076,17079],{"className":17072},[1991,3627],[663,17074,5484],{"className":17075},[3627],[663,17077,5488],{"className":17078},[3627],[663,17080,1996],{"className":17081,"style":1995},[3627],[663,17083,17085],{"className":17084},[3598],[663,17086,17088,17108],{"className":17087},[3602,3603],[663,17089,17091,17105],{"className":17090},[3607],[663,17092,17094],{"className":17093,"style":7376},[3611],[663,17095,17096,17099],{"style":5507},[663,17097],{"className":17098,"style":5511},[3619],[663,17100,17102],{"className":17101},[3624,5515,5516,3627],[663,17103,816],{"className":17104},[1032,3627],[663,17106,3635],{"className":17107},[3634],[663,17109,17111],{"className":17110},[3607],[663,17112,17114],{"className":17113,"style":5529},[3611],[663,17115],{},[663,17117],{"className":17118,"style":5535},[1724,3627],[663,17120,828],{"className":17121},[1032,3627],[663,17123,1094],{"className":17124},[1124],[594,17126,14683],{"id":14682},[1164,17128,17129,17139],{},[1167,17130,17131],{},[1170,17132,17133,17136],{},[1173,17134,17135],{},"Indice",[1173,17137,17138],{},"Méthode",[1183,17140,17141,17148,17253],{},[1170,17142,17143,17146],{},[1188,17144,17145],{},"Le problème se décompose en deux moitiés",[1188,17147,8041],{},[1170,17149,17150,17188],{},[1188,17151,17152,17153],{},"La combinaison est linéaire et il y a 2 appels sur ",[663,17154,17156,17173],{"className":17155},[988],[663,17157,17159],{"className":17158},[992],[994,17160,17161],{"xmlns":996},[998,17162,17163,17171],{},[1001,17164,17165,17167,17169],{},[1081,17166,1091],{},[1081,17168,3739],{"mathvariant":1956},[1008,17170,816],{},[1011,17172,4175],{"encoding":1013},[663,17174,17176],{"className":17175,"ariaHidden":1019},[1018],[663,17177,17179,17182,17185],{"className":17178},[1023],[663,17180],{"className":17181,"style":1107},[1027],[663,17183,1091],{"className":17184},[1032,1120],[663,17186,4094],{"className":17187},[1032],[1188,17189,17190],{},[663,17191,17193,17218],{"className":17192},[988],[663,17194,17196],{"className":17195},[992],[994,17197,17198],{"xmlns":996},[998,17199,17200,17216],{},[1001,17201,17202,17204,17206,17208,17210,17212,17214],{},[1081,17203,1084],{"mathvariant":1083},[1004,17205,1088],{"stretchy":1087},[1081,17207,1091],{},[1081,17209,1962],{},[1004,17211,1965],{},[1081,17213,1091],{},[1004,17215,1094],{"stretchy":1087},[1011,17217,4705],{"encoding":1013},[663,17219,17221],{"className":17220,"ariaHidden":1019},[1018],[663,17222,17224,17227,17230,17233,17236,17239,17244,17247,17250],{"className":17223},[1023],[663,17225],{"className":17226,"style":1107},[1027],[663,17228,1084],{"className":17229,"style":1112},[1032,1111],[663,17231,1088],{"className":17232},[1116],[663,17234,1091],{"className":17235},[1032,1120],[663,17237],{"className":17238,"style":2000},[1724],[663,17240,1992,17242],{"className":17241},[1991],[663,17243,1996],{"style":1995},[663,17245],{"className":17246,"style":2000},[1724],[663,17248,1091],{"className":17249},[1032,1120],[663,17251,1094],{"className":17252},[1124],[1170,17254,17255,17294],{},[1188,17256,17257,17258,17293],{},"Un seul appel récursif sur ",[663,17259,17261,17278],{"className":17260},[988],[663,17262,17264],{"className":17263},[992],[994,17265,17266],{"xmlns":996},[998,17267,17268,17276],{},[1001,17269,17270,17272,17274],{},[1081,17271,1091],{},[1081,17273,3739],{"mathvariant":1956},[1008,17275,816],{},[1011,17277,4175],{"encoding":1013},[663,17279,17281],{"className":17280,"ariaHidden":1019},[1018],[663,17282,17284,17287,17290],{"className":17283},[1023],[663,17285],{"className":17286,"style":1107},[1027],[663,17288,1091],{"className":17289},[1032,1120],[663,17291,4094],{"className":17292},[1032],", combinaison constante",[1188,17295,17296],{},[663,17297,17299,17322],{"className":17298},[988],[663,17300,17302],{"className":17301},[992],[994,17303,17304],{"xmlns":996},[998,17305,17306,17320],{},[1001,17307,17308,17310,17312,17314,17316,17318],{},[1081,17309,1084],{"mathvariant":1083},[1004,17311,1088],{"stretchy":1087},[1081,17313,1962],{},[1004,17315,1965],{},[1081,17317,1091],{},[1004,17319,1094],{"stretchy":1087},[1011,17321,2042],{"encoding":1013},[663,17323,17325],{"className":17324,"ariaHidden":1019},[1018],[663,17326,17328,17331,17334,17337,17342,17345,17348],{"className":17327},[1023],[663,17329],{"className":17330,"style":1107},[1027],[663,17332,1084],{"className":17333,"style":1112},[1032,1111],[663,17335,1088],{"className":17336},[1116],[663,17338,1992,17340],{"className":17339},[1991],[663,17341,1996],{"style":1995},[663,17343],{"className":17344,"style":2000},[1724],[663,17346,1091],{"className":17347},[1032,1120],[663,17349,1094],{"className":17350},[1124],[594,17352,14792],{"id":14791},[1139,17354,17355,17358,17390],{},[1142,17356,17357],{},"Oublier le cas de base → récursion infinie.",[1142,17359,17360,17361,17389],{},"Croire que diviser pour régner est toujours plus efficace que l'itératif —\nc'est vrai sur le coût asymptotique, faux sur les petits ",[663,17362,17364,17377],{"className":17363},[988],[663,17365,17367],{"className":17366},[992],[994,17368,17369],{"xmlns":996},[998,17370,17371,17375],{},[1001,17372,17373],{},[1081,17374,1091],{},[1011,17376,1091],{"encoding":1013},[663,17378,17380],{"className":17379,"ariaHidden":1019},[1018],[663,17381,17383,17386],{"className":17382},[1023],[663,17384],{"className":17385,"style":1681},[1027],[663,17387,1091],{"className":17388},[1032,1120]," (constantes\ncachées et coût des appels).",[1142,17391,17392,17393,17396,17397,610],{},"Confondre coût en ",[603,17394,17395],{},"temps"," et coût en ",[603,17398,17399],{},"mémoire",[594,17401,14866],{"id":14865},[654,17403,17405],{"className":656,"code":17404,"language":658,"meta":659,"style":659},"def diviser_regner(donnees):\n    if cas_de_base(donnees):\n        return solution_directe(donnees)\n    sous_problemes = diviser(donnees)\n    sous_solutions = [diviser_regner(s) for s in sous_problemes]\n    return combiner(sous_solutions)\n",[646,17406,17407,17417,17424,17431,17441,17461],{"__ignoreMap":659},[663,17408,17409,17411,17414],{"class":665,"line":666},[663,17410,877],{"class":669},[663,17412,17413],{"class":673}," diviser_regner",[663,17415,17416],{"class":677},"(donnees):\n",[663,17418,17419,17421],{"class":665,"line":681},[663,17420,888],{"class":669},[663,17422,17423],{"class":677}," cas_de_base(donnees):\n",[663,17425,17426,17428],{"class":665,"line":709},[663,17427,904],{"class":669},[663,17429,17430],{"class":677}," solution_directe(donnees)\n",[663,17432,17433,17436,17438],{"class":665,"line":723},[663,17434,17435],{"class":677},"    sous_problemes ",[663,17437,694],{"class":669},[663,17439,17440],{"class":677}," diviser(donnees)\n",[663,17442,17443,17446,17448,17451,17454,17456,17458],{"class":665,"line":736},[663,17444,17445],{"class":677},"    sous_solutions ",[663,17447,694],{"class":669},[663,17449,17450],{"class":677}," [diviser_regner(s) ",[663,17452,17453],{"class":669},"for",[663,17455,2539],{"class":677},[663,17457,2438],{"class":669},[663,17459,17460],{"class":677}," sous_problemes]\n",[663,17462,17463,17465],{"class":665,"line":749},[663,17464,912],{"class":669},[663,17466,17467],{"class":677}," combiner(sous_solutions)\n",[2198,17469,17470],{},"html pre.shiki code .s8jYJ, html code.shiki .s8jYJ{--shiki-light:#D73A49;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .snPdu, html code.shiki .snPdu{--shiki-light:#6F42C1;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sxrX7, html code.shiki .sxrX7{--shiki-light:#24292E;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":659,"searchDepth":681,"depth":681,"links":17472},[17473,17474,17475,17476,17477,17478,17479],{"id":13932,"depth":681,"text":13933},{"id":13999,"depth":681,"text":14000},{"id":16452,"depth":681,"text":16453},{"id":16551,"depth":681,"text":16552},{"id":14682,"depth":681,"text":14683},{"id":14791,"depth":681,"text":14792},{"id":14865,"depth":681,"text":14866},"Mémo de révision sur la méthode diviser pour régner et le tri fusion.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fdiviser-pour-regner.memo",[],{"title":15470,"description":17480},"2.nsi-tale\u002Fte-algorithmique\u002F3.diviser-pour-regner.memo","2SXc-khvPcixkTmEtTp4pmRvhPop5envytrLyr44uwA",{"id":17488,"title":17489,"bo":17490,"body":17491,"description":18785,"eval":2211,"extension":2212,"labo":2211,"meta":18786,"navigation":2218,"path":18787,"quizzes":18788,"readingTime":666,"seo":18789,"stem":18790,"tp":2211,"__hash__":18791},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.memo.md","Programmation dynamique — l'essentiel",[8654],{"type":591,"value":17492,"toc":18776},[17493,17495,17505,17507,17887,17889,18170,18174,18324,18326,18549,18551,18687,18689,18774],[594,17494,13933],{"id":13932},[599,17496,17497,17498,17501,17502,17504],{},"Quand les sous-problèmes ",[603,17499,17500],{},"se chevauchent",", on les ",[603,17503,8671],{}," au lieu de les\nrecalculer — l'exponentiel devient polynomial.",[594,17506,14000],{"id":13999},[1139,17508,17509,17515,17529,17881],{},[1142,17510,17511,17514],{},[603,17512,17513],{},"Deux conditions"," : sous-structure optimale + chevauchement des sous-problèmes.",[1142,17516,17517,17520,17521,17524,17525,17528],{},[603,17518,17519],{},"Deux styles"," : mémoïsation ",[603,17522,17523],{},"top-down"," (récursion + cache), tabulation\n",[603,17526,17527],{},"bottom-up"," (boucles + tableau).",[1142,17530,17531,17534,17535,842,17736,17805,17806,610],{},[603,17532,17533],{},"Rendu de monnaie"," :\n",[663,17536,17538,17592],{"className":17537},[988],[663,17539,17541],{"className":17540},[992],[994,17542,17543],{"xmlns":996},[998,17544,17545,17589],{},[1001,17546,17547,17549,17551,17553,17555,17557,17559,17561,17577,17579,17581,17583,17585,17587],{},[4012,17548,8985],{},[1004,17550,1088],{"stretchy":1087},[1081,17552,1091],{},[1004,17554,1094],{"stretchy":1087},[1004,17556,694],{},[1008,17558,822],{},[1004,17560,924],{},[3562,17562,17563,17569],{},[1001,17564,17565,17567],{},[1081,17566,9050],{},[1004,17568,1965],{},[1001,17570,17571,17573,17575],{},[1081,17572,599],{},[1004,17574,9070],{},[1081,17576,1091],{},[4012,17578,8985],{},[1004,17580,1088],{"stretchy":1087},[1081,17582,1091],{},[1004,17584,1006],{},[1081,17586,599],{},[1004,17588,1094],{"stretchy":1087},[1011,17590,17591],{"encoding":1013},"\\text{rendre}(n) = 1 + \\min_{p \\le n} \\text{rendre}(n - p)",[663,17593,17595,17625,17643,17724],{"className":17594,"ariaHidden":1019},[1018],[663,17596,17598,17601,17607,17610,17613,17616,17619,17622],{"className":17597},[1023],[663,17599],{"className":17600,"style":1107},[1027],[663,17602,17604],{"className":17603},[1032,9107],[663,17605,8985],{"className":17606},[1032],[663,17608,1088],{"className":17609},[1116],[663,17611,1091],{"className":17612},[1032,1120],[663,17614,1094],{"className":17615},[1124],[663,17617],{"className":17618,"style":1725},[1724],[663,17620,694],{"className":17621},[1720],[663,17623],{"className":17624,"style":1725},[1724],[663,17626,17628,17631,17634,17637,17640],{"className":17627},[1023],[663,17629],{"className":17630,"style":1028},[1027],[663,17632,822],{"className":17633},[1032],[663,17635],{"className":17636,"style":2124},[1724],[663,17638,924],{"className":17639},[2128],[663,17641],{"className":17642,"style":2124},[1724],[663,17644,17646,17650,17700,17703,17709,17712,17715,17718,17721],{"className":17645},[1023],[663,17647],{"className":17648,"style":17649},[1027],"height:1.0361em;vertical-align:-0.2861em;",[663,17651,17653,17656],{"className":17652},[1991],[663,17654,9050],{"className":17655},[1991],[663,17657,17659],{"className":17658},[3598],[663,17660,17662,17692],{"className":17661},[3602,3603],[663,17663,17665,17689],{"className":17664},[3607],[663,17666,17669],{"className":17667,"style":17668},[3611],"height:0.2952em;",[663,17670,17671,17674],{"style":9224},[663,17672],{"className":17673,"style":3620},[3619],[663,17675,17677],{"className":17676},[3624,3625,3626,3627],[663,17678,17680,17683,17686],{"className":17679},[1032,3627],[663,17681,599],{"className":17682},[1032,1120,3627],[663,17684,9070],{"className":17685},[1720,3627],[663,17687,1091],{"className":17688},[1032,1120,3627],[663,17690,3635],{"className":17691},[3634],[663,17693,17695],{"className":17694},[3607],[663,17696,17698],{"className":17697,"style":9270},[3611],[663,17699],{},[663,17701],{"className":17702,"style":2000},[1724],[663,17704,17706],{"className":17705},[1032,9107],[663,17707,8985],{"className":17708},[1032],[663,17710,1088],{"className":17711},[1116],[663,17713,1091],{"className":17714},[1032,1120],[663,17716],{"className":17717,"style":2124},[1724],[663,17719,1006],{"className":17720},[2128],[663,17722],{"className":17723,"style":2124},[1724],[663,17725,17727,17730,17733],{"className":17726},[1023],[663,17728],{"className":17729,"style":1107},[1027],[663,17731,599],{"className":17732},[1032,1120],[663,17734,1094],{"className":17735},[1124],[663,17737,17739,17763],{"className":17738},[988],[663,17740,17742],{"className":17741},[992],[994,17743,17744],{"xmlns":996},[998,17745,17746,17760],{},[1001,17747,17748,17750,17752,17754,17756,17758],{},[4012,17749,8985],{},[1004,17751,1088],{"stretchy":1087},[1008,17753,1051],{},[1004,17755,1094],{"stretchy":1087},[1004,17757,694],{},[1008,17759,1051],{},[1011,17761,17762],{"encoding":1013},"\\text{rendre}(0) = 0",[663,17764,17766,17796],{"className":17765,"ariaHidden":1019},[1018],[663,17767,17769,17772,17778,17781,17784,17787,17790,17793],{"className":17768},[1023],[663,17770],{"className":17771,"style":1107},[1027],[663,17773,17775],{"className":17774},[1032,9107],[663,17776,8985],{"className":17777},[1032],[663,17779,1088],{"className":17780},[1116],[663,17782,1051],{"className":17783},[1032],[663,17785,1094],{"className":17786},[1124],[663,17788],{"className":17789,"style":1725},[1724],[663,17791,694],{"className":17792},[1720],[663,17794],{"className":17795,"style":1725},[1724],[663,17797,17799,17802],{"className":17798},[1023],[663,17800],{"className":17801,"style":1063},[1027],[663,17803,1051],{"className":17804},[1032],".\nCoût ",[663,17807,17809,17836],{"className":17808},[988],[663,17810,17812],{"className":17811},[992],[994,17813,17814],{"xmlns":996},[998,17815,17816,17834],{},[1001,17817,17818,17820,17822,17824,17826,17828,17830,17832],{},[1081,17819,1084],{"mathvariant":1083},[1004,17821,1088],{"stretchy":1087},[1081,17823,1091],{},[1004,17825,3844],{},[1081,17827,2620],{"mathvariant":1956},[1081,17829,8738],{},[1081,17831,2620],{"mathvariant":1956},[1004,17833,1094],{"stretchy":1087},[1011,17835,10003],{"encoding":1013},[663,17837,17839,17863],{"className":17838,"ariaHidden":1019},[1018],[663,17840,17842,17845,17848,17851,17854,17857,17860],{"className":17841},[1023],[663,17843],{"className":17844,"style":1107},[1027],[663,17846,1084],{"className":17847,"style":1112},[1032,1111],[663,17849,1088],{"className":17850},[1116],[663,17852,1091],{"className":17853},[1032,1120],[663,17855],{"className":17856,"style":2124},[1724],[663,17858,3844],{"className":17859},[2128],[663,17861],{"className":17862,"style":2124},[1724],[663,17864,17866,17869,17872,17875,17878],{"className":17865},[1023],[663,17867],{"className":17868,"style":1107},[1027],[663,17870,2620],{"className":17871},[1032],[663,17873,8738],{"className":17874,"style":3884},[1032,1120],[663,17876,2620],{"className":17877},[1032],[663,17879,1094],{"className":17880},[1124],[1142,17882,17883,17886],{},[603,17884,17885],{},"Mémoire réductible"," : souvent, seules 1 ou 2 lignes du tableau sont\nnécessaires en même temps.",[594,17888,16552],{"id":16551},[1164,17890,17891,17903],{},[1167,17892,17893],{},[1170,17894,17895,17897,17900],{},[1173,17896,8722],{},[1173,17898,17899],{},"Naïf",[1173,17901,17902],{},"Programmé dynamiquement",[1183,17904,17905,17944,18160],{},[1170,17906,17907,17939,17941],{},[1188,17908,17909,17910,17938],{},"Rendu de monnaie (",[663,17911,17913,17926],{"className":17912},[988],[663,17914,17916],{"className":17915},[992],[994,17917,17918],{"xmlns":996},[998,17919,17920,17924],{},[1001,17921,17922],{},[1081,17923,1091],{},[1011,17925,1091],{"encoding":1013},[663,17927,17929],{"className":17928,"ariaHidden":1019},[1018],[663,17930,17932,17935],{"className":17931},[1023],[663,17933],{"className":17934,"style":1681},[1027],[663,17936,1091],{"className":17937},[1032,1120],", $",[1188,17940,8738],{},[1188,17942,17943],{},"$ pièces)",[1170,17945,17946,17999,18092],{},[1188,17947,17948,17949],{},"Plus court chemin sur grille ",[663,17950,17952,17969],{"className":17951},[988],[663,17953,17955],{"className":17954},[992],[994,17956,17957],{"xmlns":996},[998,17958,17959,17967],{},[1001,17960,17961,17963,17965],{},[1081,17962,10694],{},[1004,17964,4634],{},[1081,17966,1091],{},[1011,17968,10701],{"encoding":1013},[663,17970,17972,17990],{"className":17971,"ariaHidden":1019},[1018],[663,17973,17975,17978,17981,17984,17987],{"className":17974},[1023],[663,17976],{"className":17977,"style":2117},[1027],[663,17979,10694],{"className":17980},[1032,1120],[663,17982],{"className":17983,"style":2124},[1724],[663,17985,4634],{"className":17986},[2128],[663,17988],{"className":17989,"style":2124},[1724],[663,17991,17993,17996],{"className":17992},[1023],[663,17994],{"className":17995,"style":1681},[1027],[663,17997,1091],{"className":17998},[1032,1120],[1188,18000,18001],{},[663,18002,18004,18034],{"className":18003},[988],[663,18005,18007],{"className":18006},[992],[994,18008,18009],{"xmlns":996},[998,18010,18011,18031],{},[1001,18012,18013,18015,18017,18029],{},[1081,18014,4835],{"mathvariant":1956},[1004,18016,1088],{"stretchy":1087},[5414,18018,18019,18021],{},[1008,18020,816],{},[1001,18022,18023,18025,18027],{},[1081,18024,10694],{},[1004,18026,924],{},[1081,18028,1091],{},[1004,18030,1094],{"stretchy":1087},[1011,18032,18033],{"encoding":1013},"\\Omega(2^{m+n})",[663,18035,18037],{"className":18036,"ariaHidden":1019},[1018],[663,18038,18040,18044,18047,18050,18089],{"className":18039},[1023],[663,18041],{"className":18042,"style":18043},[1027],"height:1.0213em;vertical-align:-0.25em;",[663,18045,4835],{"className":18046},[1032],[663,18048,1088],{"className":18049},[1116],[663,18051,18053,18056],{"className":18052},[1032],[663,18054,816],{"className":18055},[1032],[663,18057,18059],{"className":18058},[3598],[663,18060,18062],{"className":18061},[3602],[663,18063,18065],{"className":18064},[3607],[663,18066,18069],{"className":18067,"style":18068},[3611],"height:0.7713em;",[663,18070,18071,18074],{"style":5465},[663,18072],{"className":18073,"style":3620},[3619],[663,18075,18077],{"className":18076},[3624,3625,3626,3627],[663,18078,18080,18083,18086],{"className":18079},[1032,3627],[663,18081,10694],{"className":18082},[1032,1120,3627],[663,18084,924],{"className":18085},[2128,3627],[663,18087,1091],{"className":18088},[1032,1120,3627],[663,18090,1094],{"className":18091},[1124],[1188,18093,18094],{},[663,18095,18097,18121],{"className":18096},[988],[663,18098,18100],{"className":18099},[992],[994,18101,18102],{"xmlns":996},[998,18103,18104,18118],{},[1001,18105,18106,18108,18110,18112,18114,18116],{},[1081,18107,1084],{"mathvariant":1083},[1004,18109,1088],{"stretchy":1087},[1081,18111,10694],{},[1004,18113,3844],{},[1081,18115,1091],{},[1004,18117,1094],{"stretchy":1087},[1011,18119,18120],{"encoding":1013},"\\mathcal{O}(m \\cdot n)",[663,18122,18124,18148],{"className":18123,"ariaHidden":1019},[1018],[663,18125,18127,18130,18133,18136,18139,18142,18145],{"className":18126},[1023],[663,18128],{"className":18129,"style":1107},[1027],[663,18131,1084],{"className":18132,"style":1112},[1032,1111],[663,18134,1088],{"className":18135},[1116],[663,18137,10694],{"className":18138},[1032,1120],[663,18140],{"className":18141,"style":2124},[1724],[663,18143,3844],{"className":18144},[2128],[663,18146],{"className":18147,"style":2124},[1724],[663,18149,18151,18154,18157],{"className":18150},[1023],[663,18152],{"className":18153,"style":1107},[1027],[663,18155,1091],{"className":18156},[1032,1120],[663,18158,1094],{"className":18159},[1124],[1170,18161,18162,18165,18167],{},[1188,18163,18164],{},"Alignement de séquences $",[1188,18166,3707],{},[1188,18168,18169],{},"\\times",[594,18171,18173],{"id":18172},"top-down-vs-bottom-up","Top-down vs bottom-up",[1164,18175,18176,18188],{},[1167,18177,18178],{},[1170,18179,18180,18182,18185],{},[1173,18181,2940],{},[1173,18183,18184],{},"Top-down",[1173,18186,18187],{},"Bottom-up",[1183,18189,18190,18201,18210,18220],{},[1170,18191,18192,18195,18198],{},[1188,18193,18194],{},"Mécanique",[1188,18196,18197],{},"récursion + dict cache",[1188,18199,18200],{},"boucles + tableau",[1170,18202,18203,18205,18208],{},[1188,18204,10399],{},[1188,18206,18207],{},"sous-problèmes utiles",[1188,18209,10405],{},[1170,18211,18212,18214,18217],{},[1188,18213,10612],{},[1188,18215,18216],{},"risque débordement",[1188,18218,18219],{},"sûr",[1170,18221,18222,18224,18274],{},[1188,18223,10410],{},[1188,18225,18226],{},[663,18227,18229,18250],{"className":18228},[988],[663,18230,18232],{"className":18231},[992],[994,18233,18234],{"xmlns":996},[998,18235,18236,18247],{},[1001,18237,18238,18240,18242,18245],{},[1081,18239,1084],{"mathvariant":1083},[1004,18241,1088],{"stretchy":1087},[4012,18243,18244],{},"vus",[1004,18246,1094],{"stretchy":1087},[1011,18248,18249],{"encoding":1013},"\\mathcal{O}(\\text{vus})",[663,18251,18253],{"className":18252,"ariaHidden":1019},[1018],[663,18254,18256,18259,18262,18265,18271],{"className":18255},[1023],[663,18257],{"className":18258,"style":1107},[1027],[663,18260,1084],{"className":18261,"style":1112},[1032,1111],[663,18263,1088],{"className":18264},[1116],[663,18266,18268],{"className":18267},[1032,9107],[663,18269,18244],{"className":18270},[1032],[663,18272,1094],{"className":18273},[1124],[1188,18275,18276,18323],{},[663,18277,18279,18299],{"className":18278},[988],[663,18280,18282],{"className":18281},[992],[994,18283,18284],{"xmlns":996},[998,18285,18286,18296],{},[1001,18287,18288,18290,18292,18294],{},[1081,18289,1084],{"mathvariant":1083},[1004,18291,1088],{"stretchy":1087},[4012,18293,1164],{},[1004,18295,1094],{"stretchy":1087},[1011,18297,18298],{"encoding":1013},"\\mathcal{O}(\\text{table})",[663,18300,18302],{"className":18301,"ariaHidden":1019},[1018],[663,18303,18305,18308,18311,18314,18320],{"className":18304},[1023],[663,18306],{"className":18307,"style":1107},[1027],[663,18309,1084],{"className":18310,"style":1112},[1032,1111],[663,18312,1088],{"className":18313},[1116],[663,18315,18317],{"className":18316},[1032,9107],[663,18318,1164],{"className":18319},[1032],[663,18321,1094],{"className":18322},[1124],", souvent réductible",[594,18325,14683],{"id":14682},[1164,18327,18328,18337],{},[1167,18329,18330],{},[1170,18331,18332,18334],{},[1173,18333,17135],{},[1173,18335,18336],{},"Approche",[1183,18338,18339,18347,18541],{},[1170,18340,18341,18344],{},[1188,18342,18343],{},"Récursion qui re-calcule les mêmes valeurs",[1188,18345,18346],{},"mémoïser",[1170,18348,18349,18538],{},[1188,18350,18351,18352],{},"Équation ",[663,18353,18355,18415],{"className":18354},[988],[663,18356,18358],{"className":18357},[992],[994,18359,18360],{"xmlns":996},[998,18361,18362,18412],{},[1001,18363,18364,18366,18368,18370,18372,18374,18376,18378,18380,18382,18384,18386,18388,18390,18392,18394,18396,18398,18400,18402,18404,18406,18408,18410],{},[1081,18365,3779],{},[1004,18367,1088],{"stretchy":1087},[1081,18369,11201],{},[1004,18371,1094],{"stretchy":1087},[1004,18373,694],{},[1081,18375,1996],{},[1004,18377,1088],{"stretchy":1087},[1081,18379,3779],{},[1004,18381,1088],{"stretchy":1087},[1081,18383,11201],{},[1004,18385,1006],{},[1008,18387,822],{},[1004,18389,1094],{"stretchy":1087},[1004,18391,8490],{"separator":1019},[1081,18393,3779],{},[1004,18395,1088],{"stretchy":1087},[1081,18397,11201],{},[1004,18399,1006],{},[1008,18401,816],{},[1004,18403,1094],{"stretchy":1087},[1004,18405,8490],{"separator":1019},[1004,18407,8762],{},[4012,18409,4014],{},[1004,18411,1094],{"stretchy":1087},[1011,18413,18414],{"encoding":1013},"f(i) = g(f(i-1), f(i-2), \\dots)",[663,18416,18418,18445,18475,18511],{"className":18417,"ariaHidden":1019},[1018],[663,18419,18421,18424,18427,18430,18433,18436,18439,18442],{"className":18420},[1023],[663,18422],{"className":18423,"style":1107},[1027],[663,18425,3779],{"className":18426,"style":3801},[1032,1120],[663,18428,1088],{"className":18429},[1116],[663,18431,11201],{"className":18432},[1032,1120],[663,18434,1094],{"className":18435},[1124],[663,18437],{"className":18438,"style":1725},[1724],[663,18440,694],{"className":18441},[1720],[663,18443],{"className":18444,"style":1725},[1724],[663,18446,18448,18451,18454,18457,18460,18463,18466,18469,18472],{"className":18447},[1023],[663,18449],{"className":18450,"style":1107},[1027],[663,18452,1996],{"className":18453,"style":1685},[1032,1120],[663,18455,1088],{"className":18456},[1116],[663,18458,3779],{"className":18459,"style":3801},[1032,1120],[663,18461,1088],{"className":18462},[1116],[663,18464,11201],{"className":18465},[1032,1120],[663,18467],{"className":18468,"style":2124},[1724],[663,18470,1006],{"className":18471},[2128],[663,18473],{"className":18474,"style":2124},[1724],[663,18476,18478,18481,18484,18487,18490,18493,18496,18499,18502,18505,18508],{"className":18477},[1023],[663,18479],{"className":18480,"style":1107},[1027],[663,18482,822],{"className":18483},[1032],[663,18485,1094],{"className":18486},[1124],[663,18488,8490],{"className":18489},[8489],[663,18491],{"className":18492,"style":2000},[1724],[663,18494,3779],{"className":18495,"style":3801},[1032,1120],[663,18497,1088],{"className":18498},[1116],[663,18500,11201],{"className":18501},[1032,1120],[663,18503],{"className":18504,"style":2124},[1724],[663,18506,1006],{"className":18507},[2128],[663,18509],{"className":18510,"style":2124},[1724],[663,18512,18514,18517,18520,18523,18526,18529,18532,18535],{"className":18513},[1023],[663,18515],{"className":18516,"style":1107},[1027],[663,18518,816],{"className":18519},[1032],[663,18521,1094],{"className":18522},[1124],[663,18524,8490],{"className":18525},[8489],[663,18527],{"className":18528,"style":2000},[1724],[663,18530,8762],{"className":18531},[8897],[663,18533],{"className":18534,"style":2000},[1724],[663,18536,1094],{"className":18537},[1124],[1188,18539,18540],{},"tabuler",[1170,18542,18543,18546],{},[1188,18544,18545],{},"Seule la dernière ligne intéresse",[1188,18547,18548],{},"garder 1–2 lignes seulement",[594,18550,14792],{"id":14791},[1139,18552,18553,18556,18677],{},[1142,18554,18555],{},"Choisir un encodage de l'état trop riche → table inutilement grande.",[1142,18557,18558,18559,14742,18611,18676],{},"Oublier les conditions ",[663,18560,18562,18580],{"className":18561},[988],[663,18563,18565],{"className":18564},[992],[994,18566,18567],{"xmlns":996},[998,18568,18569,18577],{},[1001,18570,18571,18573,18575],{},[1081,18572,599],{},[1004,18574,9070],{},[1081,18576,1091],{},[1011,18578,18579],{"encoding":1013},"p \\le n",[663,18581,18583,18602],{"className":18582,"ariaHidden":1019},[1018],[663,18584,18586,18590,18593,18596,18599],{"className":18585},[1023],[663,18587],{"className":18588,"style":18589},[1027],"height:0.8304em;vertical-align:-0.1944em;",[663,18591,599],{"className":18592},[1032,1120],[663,18594],{"className":18595,"style":1725},[1724],[663,18597,9070],{"className":18598},[1720],[663,18600],{"className":18601,"style":1725},[1724],[663,18603,18605,18608],{"className":18604},[1023],[663,18606],{"className":18607,"style":1681},[1027],[663,18609,1091],{"className":18610},[1032,1120],[663,18612,18614,18637],{"className":18613},[988],[663,18615,18617],{"className":18616},[992],[994,18618,18619],{"xmlns":996},[998,18620,18621,18634],{},[1001,18622,18623,18625,18627,18629,18632],{},[1081,18624,11201],{},[1004,18626,8490],{"separator":1019},[1081,18628,11206],{},[1004,18630,18631],{},"≥",[1008,18633,1051],{},[1011,18635,18636],{"encoding":1013},"i, j \\ge 0",[663,18638,18640,18667],{"className":18639,"ariaHidden":1019},[1018],[663,18641,18643,18646,18649,18652,18655,18658,18661,18664],{"className":18642},[1023],[663,18644],{"className":18645,"style":11298},[1027],[663,18647,11201],{"className":18648},[1032,1120],[663,18650,8490],{"className":18651},[8489],[663,18653],{"className":18654,"style":2000},[1724],[663,18656,11206],{"className":18657,"style":11239},[1032,1120],[663,18659],{"className":18660,"style":1725},[1724],[663,18662,18631],{"className":18663},[1720],[663,18665],{"className":18666,"style":1725},[1724],[663,18668,18670,18673],{"className":18669},[1023],[663,18671],{"className":18672,"style":1063},[1027],[663,18674,1051],{"className":18675},[1032]," → IndexError.",[1142,18678,18679,18680,18682,18683,18686],{},"Confondre ",[603,18681,8041],{}," (sous-problèmes disjoints) et ",[603,18684,18685],{},"programmation\ndynamique"," (sous-problèmes qui se chevauchent).",[594,18688,14866],{"id":14865},[654,18690,18692],{"className":656,"code":18691,"language":658,"meta":659,"style":659},"def rendre(n, pieces, cache={0: 0}):\n    if n in cache: return cache[n]\n    cache[n] = 1 + min(rendre(n - p, pieces, cache)\n                       for p in pieces if p \u003C= n)\n    return cache[n]\n",[646,18693,18694,18716,18731,18750,18768],{"__ignoreMap":659},[663,18695,18696,18698,18701,18703,18705,18707,18709,18711,18713],{"class":665,"line":666},[663,18697,877],{"class":669},[663,18699,18700],{"class":673}," rendre",[663,18702,9723],{"class":677},[663,18704,694],{"class":669},[663,18706,8743],{"class":677},[663,18708,1051],{"class":687},[663,18710,1251],{"class":677},[663,18712,1051],{"class":687},[663,18714,18715],{"class":677},"}):\n",[663,18717,18718,18720,18722,18724,18727,18729],{"class":665,"line":681},[663,18719,888],{"class":669},[663,18721,6835],{"class":677},[663,18723,2438],{"class":669},[663,18725,18726],{"class":677}," cache: ",[663,18728,1810],{"class":669},[663,18730,9778],{"class":677},[663,18732,18733,18735,18737,18739,18741,18743,18746,18748],{"class":665,"line":709},[663,18734,9783],{"class":677},[663,18736,694],{"class":669},[663,18738,915],{"class":687},[663,18740,918],{"class":669},[663,18742,9439],{"class":687},[663,18744,18745],{"class":677},"(rendre(n ",[663,18747,3162],{"class":669},[663,18749,9799],{"class":677},[663,18751,18752,18754,18756,18758,18760,18762,18764,18766],{"class":665,"line":723},[663,18753,9804],{"class":669},[663,18755,9455],{"class":677},[663,18757,2438],{"class":669},[663,18759,9460],{"class":677},[663,18761,9463],{"class":669},[663,18763,9455],{"class":677},[663,18765,6755],{"class":669},[663,18767,9470],{"class":677},[663,18769,18770,18772],{"class":665,"line":736},[663,18771,912],{"class":669},[663,18773,9778],{"class":677},[2198,18775,14963],{},{"title":659,"searchDepth":681,"depth":681,"links":18777},[18778,18779,18780,18781,18782,18783,18784],{"id":13932,"depth":681,"text":13933},{"id":13999,"depth":681,"text":14000},{"id":16551,"depth":681,"text":16552},{"id":18172,"depth":681,"text":18173},{"id":14682,"depth":681,"text":14683},{"id":14791,"depth":681,"text":14792},{"id":14865,"depth":681,"text":14866},"Mémo de révision sur la programmation dynamique, mémoïsation et tabulation.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Fprogrammation-dynamique.memo",[],{"title":17489,"description":18785},"2.nsi-tale\u002Fte-algorithmique\u002F4.programmation-dynamique.memo","i5HVNwzNun70thtn6ZdEAzJYz_Rx2FM1FEw8aRSpxVY",{"id":18793,"title":18794,"bo":18795,"body":18796,"description":19674,"eval":2211,"extension":2212,"labo":2211,"meta":19675,"navigation":2218,"path":19676,"quizzes":19677,"readingTime":666,"seo":19678,"stem":19679,"tp":2211,"__hash__":19680},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.memo.md","Recherche textuelle — l'essentiel",[12165],{"type":591,"value":18797,"toc":19666},[18798,18800,18808,18810,19063,19067,19101,19371,19373,19474,19476,19490,19492,19664],[594,18799,13933],{"id":13932},[599,18801,18802,18804,18805,18807],{},[603,18803,12288],{}," prétraite le motif, compare ",[603,18806,13357],{}," et saute\nplusieurs cases du texte à chaque échec — souvent sous-linéaire.",[594,18809,14000],{"id":13999},[1139,18811,18812,18863,18952,19057],{},[1142,18813,18814,4535,18817,18862],{},[603,18815,18816],{},"Force brute",[663,18818,18820,18841],{"className":18819},[988],[663,18821,18823],{"className":18822},[992],[994,18824,18825],{"xmlns":996},[998,18826,18827,18839],{},[1001,18828,18829,18831,18833,18835,18837],{},[1081,18830,1084],{"mathvariant":1083},[1004,18832,1088],{"stretchy":1087},[1081,18834,1091],{},[1081,18836,10694],{},[1004,18838,1094],{"stretchy":1087},[1011,18840,12204],{"encoding":1013},[663,18842,18844],{"className":18843,"ariaHidden":1019},[1018],[663,18845,18847,18850,18853,18856,18859],{"className":18846},[1023],[663,18848],{"className":18849,"style":1107},[1027],[663,18851,1084],{"className":18852,"style":1112},[1032,1111],[663,18854,1088],{"className":18855},[1116],[663,18857,12223],{"className":18858},[1032,1120],[663,18860,1094],{"className":18861},[1124],", compare de gauche à droite à chaque position.",[1142,18864,18865,17534,18867],{},[603,18866,12288],{},[1139,18868,18869,18942,18949],{},[1142,18870,18871,18872,18941],{},"prétraite le motif en ",[663,18873,18875,18902],{"className":18874},[988],[663,18876,18878],{"className":18877},[992],[994,18879,18880],{"xmlns":996},[998,18881,18882,18900],{},[1001,18883,18884,18886,18888,18890,18892,18894,18896,18898],{},[1081,18885,1084],{"mathvariant":1083},[1004,18887,1088],{"stretchy":1087},[1081,18889,10694],{},[1004,18891,924],{},[1081,18893,2620],{"mathvariant":1956},[1081,18895,12686],{"mathvariant":1956},[1081,18897,2620],{"mathvariant":1956},[1004,18899,1094],{"stretchy":1087},[1011,18901,12693],{"encoding":1013},[663,18903,18905,18929],{"className":18904,"ariaHidden":1019},[1018],[663,18906,18908,18911,18914,18917,18920,18923,18926],{"className":18907},[1023],[663,18909],{"className":18910,"style":1107},[1027],[663,18912,1084],{"className":18913,"style":1112},[1032,1111],[663,18915,1088],{"className":18916},[1116],[663,18918,10694],{"className":18919},[1032,1120],[663,18921],{"className":18922,"style":2124},[1724],[663,18924,924],{"className":18925},[2128],[663,18927],{"className":18928,"style":2124},[1724],[663,18930,18932,18935,18938],{"className":18931},[1023],[663,18933],{"className":18934,"style":1107},[1027],[663,18936,12730],{"className":18937},[1032],[663,18939,1094],{"className":18940},[1124]," — table du mauvais caractère ;",[1142,18943,18944,18945,18948],{},"compare le motif et le texte ",[603,18946,18947],{},"de la fin vers le début"," ;",[1142,18950,18951],{},"en cas d'échec, saute autant de cases que possible.",[1142,18953,18954,18957,18958,19011,19012,610],{},[603,18955,18956],{},"Coûts"," : meilleur cas ",[663,18959,18961,18984],{"className":18960},[988],[663,18962,18964],{"className":18963},[992],[994,18965,18966],{"xmlns":996},[998,18967,18968,18982],{},[1001,18969,18970,18972,18974,18976,18978,18980],{},[1081,18971,1084],{"mathvariant":1083},[1004,18973,1088],{"stretchy":1087},[1081,18975,1091],{},[1081,18977,3739],{"mathvariant":1956},[1081,18979,10694],{},[1004,18981,1094],{"stretchy":1087},[1011,18983,12324],{"encoding":1013},[663,18985,18987],{"className":18986,"ariaHidden":1019},[1018],[663,18988,18990,18993,18996,18999,19002,19005,19008],{"className":18989},[1023],[663,18991],{"className":18992,"style":1107},[1027],[663,18994,1084],{"className":18995,"style":1112},[1032,1111],[663,18997,1088],{"className":18998},[1116],[663,19000,1091],{"className":19001},[1032,1120],[663,19003,3739],{"className":19004},[1032],[663,19006,10694],{"className":19007},[1032,1120],[663,19009,1094],{"className":19010},[1124],", pire cas ",[663,19013,19015,19036],{"className":19014},[988],[663,19016,19018],{"className":19017},[992],[994,19019,19020],{"xmlns":996},[998,19021,19022,19034],{},[1001,19023,19024,19026,19028,19030,19032],{},[1081,19025,1084],{"mathvariant":1083},[1004,19027,1088],{"stretchy":1087},[1081,19029,1091],{},[1081,19031,10694],{},[1004,19033,1094],{"stretchy":1087},[1011,19035,12204],{"encoding":1013},[663,19037,19039],{"className":19038,"ariaHidden":1019},[1018],[663,19040,19042,19045,19048,19051,19054],{"className":19041},[1023],[663,19043],{"className":19044,"style":1107},[1027],[663,19046,1084],{"className":19047,"style":1112},[1032,1111],[663,19049,1088],{"className":19050},[1116],[663,19052,12223],{"className":19053},[1032,1120],[663,19055,1094],{"className":19056},[1124],[1142,19058,19059,19062],{},[603,19060,19061],{},"Preuve"," : non exigée par le programme.",[594,19064,19066],{"id":19065},"règle-du-mauvais-caractère","Règle du mauvais caractère",[599,19068,19069,19070,19072,19073,5539],{},"Quand un caractère ",[646,19071,4960],{}," du texte ne match pas le motif à la position ",[663,19074,19076,19089],{"className":19075},[988],[663,19077,19079],{"className":19078},[992],[994,19080,19081],{"xmlns":996},[998,19082,19083,19087],{},[1001,19084,19085],{},[1081,19086,11206],{},[1011,19088,11206],{"encoding":1013},[663,19090,19092],{"className":19091,"ariaHidden":1019},[1018],[663,19093,19095,19098],{"className":19094},[1023],[663,19096],{"className":19097,"style":11298},[1027],[663,19099,11206],{"className":19100,"style":11239},[1032,1120],[1164,19102,19103,19112],{},[1167,19104,19105],{},[1170,19106,19107,19109],{},[1173,19108,14692],{},[1173,19110,19111],{},"Décalage",[1183,19113,19114,19173,19282],{},[1170,19115,19116,19121],{},[1188,19117,19118,19120],{},[646,19119,4960],{}," absent du motif",[1188,19122,19123],{},[663,19124,19126,19143],{"className":19125},[988],[663,19127,19129],{"className":19128},[992],[994,19130,19131],{"xmlns":996},[998,19132,19133,19141],{},[1001,19134,19135,19137,19139],{},[1081,19136,11206],{},[1004,19138,924],{},[1008,19140,822],{},[1011,19142,12869],{"encoding":1013},[663,19144,19146,19164],{"className":19145,"ariaHidden":1019},[1018],[663,19147,19149,19152,19155,19158,19161],{"className":19148},[1023],[663,19150],{"className":19151,"style":11298},[1027],[663,19153,11206],{"className":19154,"style":11239},[1032,1120],[663,19156],{"className":19157,"style":2124},[1724],[663,19159,924],{"className":19160},[2128],[663,19162],{"className":19163,"style":2124},[1724],[663,19165,19167,19170],{"className":19166},[1023],[663,19168],{"className":19169,"style":1063},[1027],[663,19171,822],{"className":19172},[1032],[1170,19174,19175,19230],{},[1188,19176,19177,19179,19180],{},[646,19178,4960],{}," présent à position ",[663,19181,19183,19200],{"className":19182},[988],[663,19184,19186],{"className":19185},[992],[994,19187,19188],{"xmlns":996},[998,19189,19190,19198],{},[1001,19191,19192,19194,19196],{},[1081,19193,12923],{},[1004,19195,1701],{},[1081,19197,11206],{},[1011,19199,12960],{"encoding":1013},[663,19201,19203,19221],{"className":19202,"ariaHidden":1019},[1018],[663,19204,19206,19209,19212,19215,19218],{"className":19205},[1023],[663,19207],{"className":19208,"style":12970},[1027],[663,19210,12923],{"className":19211,"style":12938},[1032,1120],[663,19213],{"className":19214,"style":1725},[1724],[663,19216,1701],{"className":19217},[1720],[663,19219],{"className":19220,"style":1725},[1724],[663,19222,19224,19227],{"className":19223},[1023],[663,19225],{"className":19226,"style":11298},[1027],[663,19228,11206],{"className":19229,"style":11239},[1032,1120],[1188,19231,19232],{},[663,19233,19235,19252],{"className":19234},[988],[663,19236,19238],{"className":19237},[992],[994,19239,19240],{"xmlns":996},[998,19241,19242,19250],{},[1001,19243,19244,19246,19248],{},[1081,19245,11206],{},[1004,19247,1006],{},[1081,19249,12923],{},[1011,19251,13013],{"encoding":1013},[663,19253,19255,19273],{"className":19254,"ariaHidden":1019},[1018],[663,19256,19258,19261,19264,19267,19270],{"className":19257},[1023],[663,19259],{"className":19260,"style":11298},[1027],[663,19262,11206],{"className":19263,"style":11239},[1032,1120],[663,19265],{"className":19266,"style":2124},[1724],[663,19268,1006],{"className":19269},[2128],[663,19271],{"className":19272,"style":2124},[1724],[663,19274,19276,19279],{"className":19275},[1023],[663,19277],{"className":19278,"style":7042},[1027],[663,19280,12923],{"className":19281,"style":12938},[1032,1120],[1170,19283,19284,19340],{},[1188,19285,19286,19288,19289],{},[646,19287,4960],{}," présent uniquement à ",[663,19290,19292,19310],{"className":19291},[988],[663,19293,19295],{"className":19294},[992],[994,19296,19297],{"xmlns":996},[998,19298,19299,19307],{},[1001,19300,19301,19303,19305],{},[1081,19302,12923],{},[1004,19304,1750],{},[1081,19306,11206],{},[1011,19308,19309],{"encoding":1013},"k > j",[663,19311,19313,19331],{"className":19312,"ariaHidden":1019},[1018],[663,19314,19316,19319,19322,19325,19328],{"className":19315},[1023],[663,19317],{"className":19318,"style":12970},[1027],[663,19320,12923],{"className":19321,"style":12938},[1032,1120],[663,19323],{"className":19324,"style":1725},[1724],[663,19326,1750],{"className":19327},[1720],[663,19329],{"className":19330,"style":1725},[1724],[663,19332,19334,19337],{"className":19333},[1023],[663,19335],{"className":19336,"style":11298},[1027],[663,19338,11206],{"className":19339,"style":11239},[1032,1120],[1188,19341,19342,19370],{},[663,19343,19345,19358],{"className":19344},[988],[663,19346,19348],{"className":19347},[992],[994,19349,19350],{"xmlns":996},[998,19351,19352,19356],{},[1001,19353,19354],{},[1008,19355,822],{},[1011,19357,822],{"encoding":1013},[663,19359,19361],{"className":19360,"ariaHidden":1019},[1018],[663,19362,19364,19367],{"className":19363},[1023],[663,19365],{"className":19366,"style":1063},[1027],[663,19368,822],{"className":19369},[1032]," (avancer prudemment)",[594,19372,14683],{"id":14682},[1164,19374,19375,19383],{},[1167,19376,19377],{},[1170,19378,19379,19381],{},[1173,19380,14692],{},[1173,19382,15297],{},[1183,19384,19385,19392,19466],{},[1170,19386,19387,19390],{},[1188,19388,19389],{},"Recherche dans un long texte naturel",[1188,19391,12288],{},[1170,19393,19394,19464],{},[1188,19395,19396,19397,19463],{},"Garantir ",[663,19398,19400,19424],{"className":19399},[988],[663,19401,19403],{"className":19402},[992],[994,19404,19405],{"xmlns":996},[998,19406,19407,19421],{},[1001,19408,19409,19411,19413,19415,19417,19419],{},[1081,19410,1084],{"mathvariant":1083},[1004,19412,1088],{"stretchy":1087},[1081,19414,1091],{},[1004,19416,924],{},[1081,19418,10694],{},[1004,19420,1094],{"stretchy":1087},[1011,19422,19423],{"encoding":1013},"\\mathcal{O}(n+m)",[663,19425,19427,19451],{"className":19426,"ariaHidden":1019},[1018],[663,19428,19430,19433,19436,19439,19442,19445,19448],{"className":19429},[1023],[663,19431],{"className":19432,"style":1107},[1027],[663,19434,1084],{"className":19435,"style":1112},[1032,1111],[663,19437,1088],{"className":19438},[1116],[663,19440,1091],{"className":19441},[1032,1120],[663,19443],{"className":19444,"style":2124},[1724],[663,19446,924],{"className":19447},[2128],[663,19449],{"className":19450,"style":2124},[1724],[663,19452,19454,19457,19460],{"className":19453},[1023],[663,19455],{"className":19456,"style":1107},[1027],[663,19458,10694],{"className":19459},[1032,1120],[663,19461,1094],{"className":19462},[1124]," pire cas",[1188,19465,13567],{},[1170,19467,19468,19471],{},[1188,19469,19470],{},"Recherche multi-motifs sur génome indexé",[1188,19472,19473],{},"Suffix array, FM-index",[594,19475,14792],{"id":14791},[1139,19477,19478,19484,19487],{},[1142,19479,19480,19481,19483],{},"Oublier le ",[646,19482,13330],{}," → risque de boucle infinie.",[1142,19485,19486],{},"Confondre indice du caractère dans le motif et dans le texte.",[1142,19488,19489],{},"Croire que Boyer-Moore est toujours plus rapide — sur un motif très court,\nla naïve peut être compétitive.",[594,19491,14866],{"id":14865},[654,19493,19495],{"className":656,"code":19494,"language":658,"meta":659,"style":659},"def boyer_moore(t, m):\n    table = {c: i for i, c in enumerate(m)}\n    i, M, T = 0, len(m), len(t)\n    while i \u003C= T - M:\n        j = M - 1\n        while j >= 0 and m[j] == t[i + j]:\n            j -= 1\n        if j \u003C 0: return i\n        i += max(1, j - table.get(t[i + j], -1))\n    return -1\n",[646,19496,19497,19506,19526,19547,19563,19576,19600,19608,19624,19656],{"__ignoreMap":659},[663,19498,19499,19501,19503],{"class":665,"line":666},[663,19500,877],{"class":669},[663,19502,13114],{"class":673},[663,19504,19505],{"class":677},"(t, m):\n",[663,19507,19508,19510,19512,19515,19517,19519,19521,19523],{"class":665,"line":681},[663,19509,13068],{"class":677},[663,19511,694],{"class":669},[663,19513,19514],{"class":677}," {c: i ",[663,19516,17453],{"class":669},[663,19518,13080],{"class":677},[663,19520,2438],{"class":669},[663,19522,13085],{"class":687},[663,19524,19525],{"class":677},"(m)}\n",[663,19527,19528,19531,19533,19535,19537,19539,19542,19544],{"class":665,"line":709},[663,19529,19530],{"class":677},"    i, M, T ",[663,19532,694],{"class":669},[663,19534,6712],{"class":687},[663,19536,842],{"class":677},[663,19538,10912],{"class":687},[663,19540,19541],{"class":677},"(m), ",[663,19543,10912],{"class":687},[663,19545,19546],{"class":677},"(t)\n",[663,19548,19549,19551,19553,19555,19558,19560],{"class":665,"line":723},[663,19550,1485],{"class":669},[663,19552,6724],{"class":677},[663,19554,6755],{"class":669},[663,19556,19557],{"class":677}," T ",[663,19559,3162],{"class":669},[663,19561,19562],{"class":677}," M:\n",[663,19564,19565,19567,19569,19572,19574],{"class":665,"line":736},[663,19566,13184],{"class":677},[663,19568,694],{"class":669},[663,19570,19571],{"class":677}," M ",[663,19573,3162],{"class":669},[663,19575,6769],{"class":687},[663,19577,19578,19580,19582,19584,19586,19588,19591,19593,19596,19598],{"class":665,"line":749},[663,19579,13202],{"class":669},[663,19581,6738],{"class":677},[663,19583,13207],{"class":669},[663,19585,6712],{"class":687},[663,19587,13212],{"class":669},[663,19589,19590],{"class":677}," m[j] ",[663,19592,1823],{"class":669},[663,19594,19595],{"class":677}," t[i ",[663,19597,924],{"class":669},[663,19599,13225],{"class":677},[663,19601,19602,19604,19606],{"class":665,"line":756},[663,19603,13230],{"class":677},[663,19605,13233],{"class":669},[663,19607,6769],{"class":687},[663,19609,19610,19612,19614,19616,19618,19620,19622],{"class":665,"line":763},[663,19611,1523],{"class":669},[663,19613,6738],{"class":677},[663,19615,1701],{"class":669},[663,19617,6712],{"class":687},[663,19619,1251],{"class":677},[663,19621,1810],{"class":669},[663,19623,12456],{"class":677},[663,19625,19626,19628,19630,19632,19634,19636,19639,19641,19644,19646,19649,19651,19653],{"class":665,"line":769},[663,19627,13301],{"class":677},[663,19629,6766],{"class":669},[663,19631,975],{"class":687},[663,19633,1088],{"class":677},[663,19635,822],{"class":687},[663,19637,19638],{"class":677},", j ",[663,19640,3162],{"class":669},[663,19642,19643],{"class":677}," table.get(t[i ",[663,19645,924],{"class":669},[663,19647,19648],{"class":677}," j], ",[663,19650,3162],{"class":669},[663,19652,822],{"class":687},[663,19654,19655],{"class":677},"))\n",[663,19657,19658,19660,19662],{"class":665,"line":775},[663,19659,912],{"class":669},[663,19661,959],{"class":669},[663,19663,12465],{"class":687},[2198,19665,14963],{},{"title":659,"searchDepth":681,"depth":681,"links":19667},[19668,19669,19670,19671,19672,19673],{"id":13932,"depth":681,"text":13933},{"id":13999,"depth":681,"text":14000},{"id":19065,"depth":681,"text":19066},{"id":14682,"depth":681,"text":14683},{"id":14791,"depth":681,"text":14792},{"id":14865,"depth":681,"text":14866},"Mémo de révision sur l'algorithme de Boyer-Moore.",{},"\u002Fnsi-tale\u002Fte-algorithmique\u002Frecherche-textuelle.memo",[],{"title":18794,"description":19674},"2.nsi-tale\u002Fte-algorithmique\u002F5.recherche-textuelle.memo","S2NW68T40OWRxhpKC9hmurjuvVs_bi-6IewXP8Rt-V4",{"id":19682,"title":19683,"bo":19684,"body":19685,"description":21511,"eval":2211,"extension":2212,"labo":2211,"meta":21512,"navigation":2218,"path":21514,"quizzes":21515,"readingTime":666,"seo":21547,"stem":21548,"tp":2211,"__hash__":21549},"coursMemo\u002F2.nsi-tale\u002Fte-algorithmique\u002Fchapitre.memo.md","Algorithmique Terminale — synthèse de chapitre",[589,2226,3475,8654,12165],{"type":591,"value":19686,"toc":21506},[19687,19691,19701,19803,20010,20027,20040,20044,20389,20392,20416,20439,20843,21170,21194,21203,21457,21482],[594,19688,19690],{"id":19689},"vue-densemble","Vue d'ensemble",[599,19692,19693,19694,19697,19698,610],{},"Le chapitre TE forme la ",[603,19695,19696],{},"boîte à outils algorithmique"," de la Terminale.\nCinq grandes familles d'algorithmes y cohabitent, qui partagent toutes une\nmême posture : ",[603,19699,19700],{},"identifier la structure du problème pour en déduire la\nbonne stratégie",[599,19702,19703,19704,19707,19708,19710,19711,19713,19714,19717,19718,610],{},"Les deux premiers cours déploient l'",[603,19705,19706],{},"arsenal des parcours"," : sur un arbre\n(TE01), trois ordres en profondeur — préfixe, infixe, suffixe — plus le\nparcours en largeur ; sur un graphe (TE02), les deux mêmes idées re-jouées\navec une ",[603,19709,2709],{}," pour DFS et une ",[603,19712,1422],{}," pour BFS. Cette dualité est l'un\ndes fils rouges du chapitre : une pile mène en profondeur, une file étale\nen largeur. Le BFS sur un graphe non pondéré donne le plus court chemin\nen nombre d'arêtes — ce n'est ni un théorème caché, ni magique, c'est une\n",[603,19715,19716],{},"conséquence directe"," de la manière dont la file traite les sommets par\ndistance croissante. Les coûts sont identiques sur les graphes :\n",[663,19719,19721,19752],{"className":19720},[988],[663,19722,19724],{"className":19723},[992],[994,19725,19726],{"xmlns":996},[998,19727,19728,19750],{},[1001,19729,19730,19732,19734,19736,19738,19740,19742,19744,19746,19748],{},[1081,19731,1084],{"mathvariant":1083},[1004,19733,1088],{"stretchy":1087},[1081,19735,2620],{"mathvariant":1956},[1081,19737,2623],{},[1081,19739,2620],{"mathvariant":1956},[1004,19741,924],{},[1081,19743,2620],{"mathvariant":1956},[1081,19745,2632],{},[1081,19747,2620],{"mathvariant":1956},[1004,19749,1094],{"stretchy":1087},[1011,19751,2639],{"encoding":1013},[663,19753,19755,19785],{"className":19754,"ariaHidden":1019},[1018],[663,19756,19758,19761,19764,19767,19770,19773,19776,19779,19782],{"className":19757},[1023],[663,19759],{"className":19760,"style":1107},[1027],[663,19762,1084],{"className":19763,"style":1112},[1032,1111],[663,19765,1088],{"className":19766},[1116],[663,19768,2620],{"className":19769},[1032],[663,19771,2623],{"className":19772,"style":2124},[1032,1120],[663,19774,2620],{"className":19775},[1032],[663,19777],{"className":19778,"style":2124},[1724],[663,19780,924],{"className":19781},[2128],[663,19783],{"className":19784,"style":2124},[1724],[663,19786,19788,19791,19794,19797,19800],{"className":19787},[1023],[663,19789],{"className":19790,"style":1107},[1027],[663,19792,2620],{"className":19793},[1032],[663,19795,2632],{"className":19796,"style":2685},[1032,1120],[663,19798,2620],{"className":19799},[1032],[663,19801,1094],{"className":19802},[1124],[599,19804,19805,19806,19808,19809,19811,19812,19942,19943,20006,20007,610],{},"Le cours sur ",[603,19807,8041],{}," (TE03) introduit la première grande\nméthode de conception : on découpe un problème en sous-problèmes du même\ntype, on les résout récursivement, on combine. Le ",[603,19810,6664],{}," sert\nd'exemple canonique parce qu'il met en évidence l'effet du théorème maître\nsur la récurrence ",[663,19813,19815,19861],{"className":19814},[988],[663,19816,19818],{"className":19817},[992],[994,19819,19820],{"xmlns":996},[998,19821,19822,19858],{},[1001,19823,19824,19826,19828,19830,19832,19834,19836,19838,19840,19842,19844,19846,19848,19850,19852,19854,19856],{},[1081,19825,3831],{},[1004,19827,1088],{"stretchy":1087},[1081,19829,1091],{},[1004,19831,1094],{"stretchy":1087},[1004,19833,694],{},[1008,19835,816],{},[1081,19837,3831],{},[1004,19839,1088],{"stretchy":1087},[1081,19841,1091],{},[1081,19843,3739],{"mathvariant":1956},[1008,19845,816],{},[1004,19847,1094],{"stretchy":1087},[1004,19849,924],{},[1081,19851,1084],{"mathvariant":1083},[1004,19853,1088],{"stretchy":1087},[1081,19855,1091],{},[1004,19857,1094],{"stretchy":1087},[1011,19859,19860],{"encoding":1013},"T(n) = 2 T(n\u002F2) + \\mathcal{O}(n)",[663,19862,19864,19891,19924],{"className":19863,"ariaHidden":1019},[1018],[663,19865,19867,19870,19873,19876,19879,19882,19885,19888],{"className":19866},[1023],[663,19868],{"className":19869,"style":1107},[1027],[663,19871,3831],{"className":19872,"style":3884},[1032,1120],[663,19874,1088],{"className":19875},[1116],[663,19877,1091],{"className":19878},[1032,1120],[663,19880,1094],{"className":19881},[1124],[663,19883],{"className":19884,"style":1725},[1724],[663,19886,694],{"className":19887},[1720],[663,19889],{"className":19890,"style":1725},[1724],[663,19892,19894,19897,19900,19903,19906,19909,19912,19915,19918,19921],{"className":19893},[1023],[663,19895],{"className":19896,"style":1107},[1027],[663,19898,816],{"className":19899},[1032],[663,19901,3831],{"className":19902,"style":3884},[1032,1120],[663,19904,1088],{"className":19905},[1116],[663,19907,1091],{"className":19908},[1032,1120],[663,19910,4094],{"className":19911},[1032],[663,19913,1094],{"className":19914},[1124],[663,19916],{"className":19917,"style":2124},[1724],[663,19919,924],{"className":19920},[2128],[663,19922],{"className":19923,"style":2124},[1724],[663,19925,19927,19930,19933,19936,19939],{"className":19926},[1023],[663,19928],{"className":19929,"style":1107},[1027],[663,19931,1084],{"className":19932,"style":1112},[1032,1111],[663,19934,1088],{"className":19935},[1116],[663,19937,1091],{"className":19938},[1032,1120],[663,19940,1094],{"className":19941},[1124],", qui donne le coût\n",[663,19944,19946,19971],{"className":19945},[988],[663,19947,19949],{"className":19948},[992],[994,19950,19951],{"xmlns":996},[998,19952,19953,19969],{},[1001,19954,19955,19957,19959,19961,19963,19965,19967],{},[1081,19956,1084],{"mathvariant":1083},[1004,19958,1088],{"stretchy":1087},[1081,19960,1091],{},[1081,19962,1962],{},[1004,19964,1965],{},[1081,19966,1091],{},[1004,19968,1094],{"stretchy":1087},[1011,19970,4705],{"encoding":1013},[663,19972,19974],{"className":19973,"ariaHidden":1019},[1018],[663,19975,19977,19980,19983,19986,19989,19992,19997,20000,20003],{"className":19976},[1023],[663,19978],{"className":19979,"style":1107},[1027],[663,19981,1084],{"className":19982,"style":1112},[1032,1111],[663,19984,1088],{"className":19985},[1116],[663,19987,1091],{"className":19988},[1032,1120],[663,19990],{"className":19991,"style":2000},[1724],[663,19993,1992,19995],{"className":19994},[1991],[663,19996,1996],{"style":1995},[663,19998],{"className":19999,"style":2000},[1724],[663,20001,1091],{"className":20002},[1032,1120],[663,20004,1094],{"className":20005},[1124]," garanti en pire cas. La rotation d'une image\nbitmap en mémoire constante prolonge l'idée : diviser pour régner ne sert\npas que la vitesse, il peut aussi servir à ",[603,20008,20009],{},"économiser la mémoire",[599,20011,859,20012,20014,20015,20017,20018,20020,20021,20023,20024,610],{},[603,20013,8663],{}," (TE04) prend le relais : quand les\nsous-problèmes ",[603,20016,17500],{}," (et donc que diviser pour régner\nrecalcule la même chose), on mémorise. Le rendu de monnaie illustre la\ntransition d'un coût ",[603,20019,9617],{}," (récursion naïve) à un coût\n",[603,20022,10052],{}," (mémoïsation top-down ou tabulation bottom-up). Le choix\nentre les deux relève du compromis ",[603,20025,20026],{},"temps\u002Fmémoire\u002Flisibilité",[599,20028,20029,20030,20033,20034,20036,20037,610],{},"Enfin, la ",[603,20031,20032],{},"recherche textuelle"," (TE05) ferme le chapitre avec\n",[603,20035,12288],{}," : un algorithme qui investit dans le prétraitement du\nmotif pour sauter de grandes portions du texte. C'est un cas typique\noù ",[603,20038,20039],{},"payer en amont rapporte ensuite",[594,20041,20043],{"id":20042},"carte-des-notions","Carte des notions",[1164,20045,20046,20062],{},[1167,20047,20048],{},[1170,20049,20050,20053,20056,20059],{},[1173,20051,20052],{},"Cours",[1173,20054,20055],{},"Notion centrale",[1173,20057,20058],{},"Coût clé",[1173,20060,20061],{},"Structure clé",[1183,20063,20064,20180,20192,20267,20279],{},[1170,20065,20066,20069,20072,20174],{},[1188,20067,20068],{},"1. Arbres binaires",[1188,20070,20071],{},"parcours récursifs",[1188,20073,20074,20117,20118,20173],{},[663,20075,20077,20096],{"className":20076},[988],[663,20078,20080],{"className":20079},[992],[994,20081,20082],{"xmlns":996},[998,20083,20084,20094],{},[1001,20085,20086,20088,20090,20092],{},[1081,20087,1084],{"mathvariant":1083},[1004,20089,1088],{"stretchy":1087},[1081,20091,1091],{},[1004,20093,1094],{"stretchy":1087},[1011,20095,1097],{"encoding":1013},[663,20097,20099],{"className":20098,"ariaHidden":1019},[1018],[663,20100,20102,20105,20108,20111,20114],{"className":20101},[1023],[663,20103],{"className":20104,"style":1107},[1027],[663,20106,1084],{"className":20107,"style":1112},[1032,1111],[663,20109,1088],{"className":20110},[1116],[663,20112,1091],{"className":20113},[1032,1120],[663,20115,1094],{"className":20116},[1124]," parcours, ",[663,20119,20121,20144],{"className":20120},[988],[663,20122,20124],{"className":20123},[992],[994,20125,20126],{"xmlns":996},[998,20127,20128,20142],{},[1001,20129,20130,20132,20134,20136,20138,20140],{},[1081,20131,1084],{"mathvariant":1083},[1004,20133,1088],{"stretchy":1087},[1081,20135,1962],{},[1004,20137,1965],{},[1081,20139,1091],{},[1004,20141,1094],{"stretchy":1087},[1011,20143,2042],{"encoding":1013},[663,20145,20147],{"className":20146,"ariaHidden":1019},[1018],[663,20148,20150,20153,20156,20159,20164,20167,20170],{"className":20149},[1023],[663,20151],{"className":20152,"style":1107},[1027],[663,20154,1084],{"className":20155,"style":1112},[1032,1111],[663,20157,1088],{"className":20158},[1116],[663,20160,1992,20162],{"className":20161},[1991],[663,20163,1996],{"style":1995},[663,20165],{"className":20166,"style":2000},[1724],[663,20168,1091],{"className":20169},[1032,1120],[663,20171,1094],{"className":20172},[1124]," ABR équilibré",[1188,20175,20176,20177,20179],{},"classe ",[646,20178,648],{},", file BFS",[1170,20181,20182,20185,20188,20190],{},[1188,20183,20184],{},"2. Graphes",[1188,20186,20187],{},"DFS \u002F BFS",[1188,20189,3011],{},[1188,20191,2623],{},[1170,20193,20194,20197,20199,20264],{},[1188,20195,20196],{},"3. Diviser pour régner",[1188,20198,6664],{},[1188,20200,20201],{},[663,20202,20204,20229],{"className":20203},[988],[663,20205,20207],{"className":20206},[992],[994,20208,20209],{"xmlns":996},[998,20210,20211,20227],{},[1001,20212,20213,20215,20217,20219,20221,20223,20225],{},[1081,20214,1084],{"mathvariant":1083},[1004,20216,1088],{"stretchy":1087},[1081,20218,1091],{},[1081,20220,1962],{},[1004,20222,1965],{},[1081,20224,1091],{},[1004,20226,1094],{"stretchy":1087},[1011,20228,4705],{"encoding":1013},[663,20230,20232],{"className":20231,"ariaHidden":1019},[1018],[663,20233,20235,20238,20241,20244,20247,20250,20255,20258,20261],{"className":20234},[1023],[663,20236],{"className":20237,"style":1107},[1027],[663,20239,1084],{"className":20240,"style":1112},[1032,1111],[663,20242,1088],{"className":20243},[1116],[663,20245,1091],{"className":20246},[1032,1120],[663,20248],{"className":20249,"style":2000},[1724],[663,20251,1992,20253],{"className":20252},[1991],[663,20254,1996],{"style":1995},[663,20256],{"className":20257,"style":2000},[1724],[663,20259,1091],{"className":20260},[1032,1120],[663,20262,1094],{"className":20263},[1124],[1188,20265,20266],{},"récursion",[1170,20268,20269,20272,20274,20277],{},[1188,20270,20271],{},"4. Programmation dynamique",[1188,20273,10667],{},[1188,20275,20276],{},"$\\mathcal{O}(n \\cdot",[1188,20278,8738],{},[1170,20280,20281,20284,20286,20386],{},[1188,20282,20283],{},"5. Recherche textuelle",[1188,20285,12288],{},[1188,20287,20288,4814,20341],{},[663,20289,20291,20314],{"className":20290},[988],[663,20292,20294],{"className":20293},[992],[994,20295,20296],{"xmlns":996},[998,20297,20298,20312],{},[1001,20299,20300,20302,20304,20306,20308,20310],{},[1081,20301,1084],{"mathvariant":1083},[1004,20303,1088],{"stretchy":1087},[1081,20305,1091],{},[1081,20307,3739],{"mathvariant":1956},[1081,20309,10694],{},[1004,20311,1094],{"stretchy":1087},[1011,20313,12324],{"encoding":1013},[663,20315,20317],{"className":20316,"ariaHidden":1019},[1018],[663,20318,20320,20323,20326,20329,20332,20335,20338],{"className":20319},[1023],[663,20321],{"className":20322,"style":1107},[1027],[663,20324,1084],{"className":20325,"style":1112},[1032,1111],[663,20327,1088],{"className":20328},[1116],[663,20330,1091],{"className":20331},[1032,1120],[663,20333,3739],{"className":20334},[1032],[663,20336,10694],{"className":20337},[1032,1120],[663,20339,1094],{"className":20340},[1124],[663,20342,20344,20365],{"className":20343},[988],[663,20345,20347],{"className":20346},[992],[994,20348,20349],{"xmlns":996},[998,20350,20351,20363],{},[1001,20352,20353,20355,20357,20359,20361],{},[1081,20354,1084],{"mathvariant":1083},[1004,20356,1088],{"stretchy":1087},[1081,20358,1091],{},[1081,20360,10694],{},[1004,20362,1094],{"stretchy":1087},[1011,20364,12204],{"encoding":1013},[663,20366,20368],{"className":20367,"ariaHidden":1019},[1018],[663,20369,20371,20374,20377,20380,20383],{"className":20370},[1023],[663,20372],{"className":20373,"style":1107},[1027],[663,20375,1084],{"className":20376,"style":1112},[1032,1111],[663,20378,1088],{"className":20379},[1116],[663,20381,12223],{"className":20382},[1032,1120],[663,20384,1094],{"className":20385},[1124],[1188,20387,20388],{},"table prétraitement",[594,20390,20391],{"id":13903},"Auto-évaluation",[1127,20393,20395,20400],{"correct":822,"slug":20394},"te-algorithmique-1-q1",[1131,20396,20397],{"v-slot:question":659},[599,20398,20399],{},"Sur un arbre binaire de recherche, le parcours qui affiche les valeurs dans l'ordre croissant est :",[1131,20401,20402],{"v-slot:choices":659},[1139,20403,20404,20407,20410,20413],{},[1142,20405,20406],{},"le parcours préfixe",[1142,20408,20409],{},"le parcours infixe",[1142,20411,20412],{},"le parcours suffixe",[1142,20414,20415],{},"le parcours en largeur",[1127,20417,20419,20424],{"correct":816,"slug":20418},"te-algorithmique-1-q2",[1131,20420,20421],{"v-slot:question":659},[599,20422,20423],{},"Quelle structure de données est utilisée par un parcours en largeur (BFS) ?",[1131,20425,20426],{"v-slot:choices":659},[1139,20427,20428,20431,20434,20437],{},[1142,20429,20430],{},"une liste triée",[1142,20432,20433],{},"une pile",[1142,20435,20436],{},"une file",[1142,20438,1644],{},[1127,20440,20442,20577],{"correct":822,"slug":20441},"te-algorithmique-1-q3",[1131,20443,20444],{"v-slot:question":659},[599,20445,20446,20447,20576],{},"Pour le tri fusion, la récurrence est ",[663,20448,20450,20495],{"className":20449},[988],[663,20451,20453],{"className":20452},[992],[994,20454,20455],{"xmlns":996},[998,20456,20457,20493],{},[1001,20458,20459,20461,20463,20465,20467,20469,20471,20473,20475,20477,20479,20481,20483,20485,20487,20489,20491],{},[1081,20460,3831],{},[1004,20462,1088],{"stretchy":1087},[1081,20464,1091],{},[1004,20466,1094],{"stretchy":1087},[1004,20468,694],{},[1008,20470,816],{},[1081,20472,3831],{},[1004,20474,1088],{"stretchy":1087},[1081,20476,1091],{},[1081,20478,3739],{"mathvariant":1956},[1008,20480,816],{},[1004,20482,1094],{"stretchy":1087},[1004,20484,924],{},[1081,20486,1084],{"mathvariant":1083},[1004,20488,1088],{"stretchy":1087},[1081,20490,1091],{},[1004,20492,1094],{"stretchy":1087},[1011,20494,19860],{"encoding":1013},[663,20496,20498,20525,20558],{"className":20497,"ariaHidden":1019},[1018],[663,20499,20501,20504,20507,20510,20513,20516,20519,20522],{"className":20500},[1023],[663,20502],{"className":20503,"style":1107},[1027],[663,20505,3831],{"className":20506,"style":3884},[1032,1120],[663,20508,1088],{"className":20509},[1116],[663,20511,1091],{"className":20512},[1032,1120],[663,20514,1094],{"className":20515},[1124],[663,20517],{"className":20518,"style":1725},[1724],[663,20520,694],{"className":20521},[1720],[663,20523],{"className":20524,"style":1725},[1724],[663,20526,20528,20531,20534,20537,20540,20543,20546,20549,20552,20555],{"className":20527},[1023],[663,20529],{"className":20530,"style":1107},[1027],[663,20532,816],{"className":20533},[1032],[663,20535,3831],{"className":20536,"style":3884},[1032,1120],[663,20538,1088],{"className":20539},[1116],[663,20541,1091],{"className":20542},[1032,1120],[663,20544,4094],{"className":20545},[1032],[663,20547,1094],{"className":20548},[1124],[663,20550],{"className":20551,"style":2124},[1724],[663,20553,924],{"className":20554},[2128],[663,20556],{"className":20557,"style":2124},[1724],[663,20559,20561,20564,20567,20570,20573],{"className":20560},[1023],[663,20562],{"className":20563,"style":1107},[1027],[663,20565,1084],{"className":20566,"style":1112},[1032,1111],[663,20568,1088],{"className":20569},[1116],[663,20571,1091],{"className":20572},[1032,1120],[663,20574,1094],{"className":20575},[1124],". Quel est le coût total ?",[1131,20578,20579],{"v-slot:choices":659},[1139,20580,20581,20626,20691,20766],{},[1142,20582,20583],{},[663,20584,20586,20605],{"className":20585},[988],[663,20587,20589],{"className":20588},[992],[994,20590,20591],{"xmlns":996},[998,20592,20593,20603],{},[1001,20594,20595,20597,20599,20601],{},[1081,20596,1084],{"mathvariant":1083},[1004,20598,1088],{"stretchy":1087},[1081,20600,1091],{},[1004,20602,1094],{"stretchy":1087},[1011,20604,1097],{"encoding":1013},[663,20606,20608],{"className":20607,"ariaHidden":1019},[1018],[663,20609,20611,20614,20617,20620,20623],{"className":20610},[1023],[663,20612],{"className":20613,"style":1107},[1027],[663,20615,1084],{"className":20616,"style":1112},[1032,1111],[663,20618,1088],{"className":20619},[1116],[663,20621,1091],{"className":20622},[1032,1120],[663,20624,1094],{"className":20625},[1124],[1142,20627,20628],{},[663,20629,20631,20656],{"className":20630},[988],[663,20632,20634],{"className":20633},[992],[994,20635,20636],{"xmlns":996},[998,20637,20638,20654],{},[1001,20639,20640,20642,20644,20646,20648,20650,20652],{},[1081,20641,1084],{"mathvariant":1083},[1004,20643,1088],{"stretchy":1087},[1081,20645,1091],{},[1081,20647,1962],{},[1004,20649,1965],{},[1081,20651,1091],{},[1004,20653,1094],{"stretchy":1087},[1011,20655,4705],{"encoding":1013},[663,20657,20659],{"className":20658,"ariaHidden":1019},[1018],[663,20660,20662,20665,20668,20671,20674,20677,20682,20685,20688],{"className":20661},[1023],[663,20663],{"className":20664,"style":1107},[1027],[663,20666,1084],{"className":20667,"style":1112},[1032,1111],[663,20669,1088],{"className":20670},[1116],[663,20672,1091],{"className":20673},[1032,1120],[663,20675],{"className":20676,"style":2000},[1724],[663,20678,1992,20680],{"className":20679},[1991],[663,20681,1996],{"style":1995},[663,20683],{"className":20684,"style":2000},[1724],[663,20686,1091],{"className":20687},[1032,1120],[663,20689,1094],{"className":20690},[1124],[1142,20692,20693],{},[663,20694,20696,20719],{"className":20695},[988],[663,20697,20699],{"className":20698},[992],[994,20700,20701],{"xmlns":996},[998,20702,20703,20717],{},[1001,20704,20705,20707,20709,20715],{},[1081,20706,1084],{"mathvariant":1083},[1004,20708,1088],{"stretchy":1087},[5414,20710,20711,20713],{},[1081,20712,1091],{},[1008,20714,816],{},[1004,20716,1094],{"stretchy":1087},[1011,20718,7935],{"encoding":1013},[663,20720,20722],{"className":20721,"ariaHidden":1019},[1018],[663,20723,20725,20728,20731,20734,20763],{"className":20724},[1023],[663,20726],{"className":20727,"style":7945},[1027],[663,20729,1084],{"className":20730,"style":1112},[1032,1111],[663,20732,1088],{"className":20733},[1116],[663,20735,20737,20740],{"className":20736},[1032],[663,20738,1091],{"className":20739},[1032,1120],[663,20741,20743],{"className":20742},[3598],[663,20744,20746],{"className":20745},[3602],[663,20747,20749],{"className":20748},[3607],[663,20750,20752],{"className":20751,"style":7420},[3611],[663,20753,20754,20757],{"style":5465},[663,20755],{"className":20756,"style":3620},[3619],[663,20758,20760],{"className":20759},[3624,3625,3626,3627],[663,20761,816],{"className":20762},[1032,3627],[663,20764,1094],{"className":20765},[1124],[1142,20767,20768],{},[663,20769,20771,20795],{"className":20770},[988],[663,20772,20774],{"className":20773},[992],[994,20775,20776],{"xmlns":996},[998,20777,20778,20792],{},[1001,20779,20780,20782,20784,20790],{},[1081,20781,1084],{"mathvariant":1083},[1004,20783,1088],{"stretchy":1087},[5414,20785,20786,20788],{},[1008,20787,816],{},[1081,20789,1091],{},[1004,20791,1094],{"stretchy":1087},[1011,20793,20794],{"encoding":1013},"\\mathcal{O}(2^n)",[663,20796,20798],{"className":20797,"ariaHidden":1019},[1018],[663,20799,20801,20804,20807,20810,20840],{"className":20800},[1023],[663,20802],{"className":20803,"style":1107},[1027],[663,20805,1084],{"className":20806,"style":1112},[1032,1111],[663,20808,1088],{"className":20809},[1116],[663,20811,20813,20816],{"className":20812},[1032],[663,20814,816],{"className":20815},[1032],[663,20817,20819],{"className":20818},[3598],[663,20820,20822],{"className":20821},[3602],[663,20823,20825],{"className":20824},[3607],[663,20826,20829],{"className":20827,"style":20828},[3611],"height:0.6644em;",[663,20830,20831,20834],{"style":5465},[663,20832],{"className":20833,"style":3620},[3619],[663,20835,20837],{"className":20836},[3624,3625,3626,3627],[663,20838,1091],{"className":20839},[1032,1120,3627],[663,20841,1094],{"className":20842},[1124],[1127,20844,20846,20851],{"correct":816,"slug":20845},"te-algorithmique-1-q4",[1131,20847,20848],{"v-slot:question":659},[599,20849,20850],{},"Le coût de DFS et BFS sur un graphe représenté par liste de successeurs est :",[1131,20852,20853],{"v-slot:choices":659},[1139,20854,20855,20911,20997,21084],{},[1142,20856,20857],{},[663,20858,20860,20884],{"className":20859},[988],[663,20861,20863],{"className":20862},[992],[994,20864,20865],{"xmlns":996},[998,20866,20867,20881],{},[1001,20868,20869,20871,20873,20875,20877,20879],{},[1081,20870,1084],{"mathvariant":1083},[1004,20872,1088],{"stretchy":1087},[1081,20874,2620],{"mathvariant":1956},[1081,20876,2623],{},[1081,20878,2620],{"mathvariant":1956},[1004,20880,1094],{"stretchy":1087},[1011,20882,20883],{"encoding":1013},"\\mathcal{O}(|V|)",[663,20885,20887],{"className":20886,"ariaHidden":1019},[1018],[663,20888,20890,20893,20896,20899,20902,20905,20908],{"className":20889},[1023],[663,20891],{"className":20892,"style":1107},[1027],[663,20894,1084],{"className":20895,"style":1112},[1032,1111],[663,20897,1088],{"className":20898},[1116],[663,20900,2620],{"className":20901},[1032],[663,20903,2623],{"className":20904,"style":2124},[1032,1120],[663,20906,2620],{"className":20907},[1032],[663,20909,1094],{"className":20910},[1124],[1142,20912,20913],{},[663,20914,20916,20944],{"className":20915},[988],[663,20917,20919],{"className":20918},[992],[994,20920,20921],{"xmlns":996},[998,20922,20923,20941],{},[1001,20924,20925,20927,20929,20931,20933,20939],{},[1081,20926,1084],{"mathvariant":1083},[1004,20928,1088],{"stretchy":1087},[1081,20930,2620],{"mathvariant":1956},[1081,20932,2623],{},[5414,20934,20935,20937],{},[1081,20936,2620],{"mathvariant":1956},[1008,20938,816],{},[1004,20940,1094],{"stretchy":1087},[1011,20942,20943],{"encoding":1013},"\\mathcal{O}(|V|^2)",[663,20945,20947],{"className":20946,"ariaHidden":1019},[1018],[663,20948,20950,20953,20956,20959,20962,20965,20994],{"className":20949},[1023],[663,20951],{"className":20952,"style":7945},[1027],[663,20954,1084],{"className":20955,"style":1112},[1032,1111],[663,20957,1088],{"className":20958},[1116],[663,20960,2620],{"className":20961},[1032],[663,20963,2623],{"className":20964,"style":2124},[1032,1120],[663,20966,20968,20971],{"className":20967},[1032],[663,20969,2620],{"className":20970},[1032],[663,20972,20974],{"className":20973},[3598],[663,20975,20977],{"className":20976},[3602],[663,20978,20980],{"className":20979},[3607],[663,20981,20983],{"className":20982,"style":7420},[3611],[663,20984,20985,20988],{"style":5465},[663,20986],{"className":20987,"style":3620},[3619],[663,20989,20991],{"className":20990},[3624,3625,3626,3627],[663,20992,816],{"className":20993},[1032,3627],[663,20995,1094],{"className":20996},[1124],[1142,20998,20999],{},[663,21000,21002,21033],{"className":21001},[988],[663,21003,21005],{"className":21004},[992],[994,21006,21007],{"xmlns":996},[998,21008,21009,21031],{},[1001,21010,21011,21013,21015,21017,21019,21021,21023,21025,21027,21029],{},[1081,21012,1084],{"mathvariant":1083},[1004,21014,1088],{"stretchy":1087},[1081,21016,2620],{"mathvariant":1956},[1081,21018,2623],{},[1081,21020,2620],{"mathvariant":1956},[1004,21022,924],{},[1081,21024,2620],{"mathvariant":1956},[1081,21026,2632],{},[1081,21028,2620],{"mathvariant":1956},[1004,21030,1094],{"stretchy":1087},[1011,21032,2639],{"encoding":1013},[663,21034,21036,21066],{"className":21035,"ariaHidden":1019},[1018],[663,21037,21039,21042,21045,21048,21051,21054,21057,21060,21063],{"className":21038},[1023],[663,21040],{"className":21041,"style":1107},[1027],[663,21043,1084],{"className":21044,"style":1112},[1032,1111],[663,21046,1088],{"className":21047},[1116],[663,21049,2620],{"className":21050},[1032],[663,21052,2623],{"className":21053,"style":2124},[1032,1120],[663,21055,2620],{"className":21056},[1032],[663,21058],{"className":21059,"style":2124},[1724],[663,21061,924],{"className":21062},[2128],[663,21064],{"className":21065,"style":2124},[1724],[663,21067,21069,21072,21075,21078,21081],{"className":21068},[1023],[663,21070],{"className":21071,"style":1107},[1027],[663,21073,2620],{"className":21074},[1032],[663,21076,2632],{"className":21077,"style":2685},[1032,1120],[663,21079,2620],{"className":21080},[1032],[663,21082,1094],{"className":21083},[1124],[1142,21085,21086],{},[663,21087,21089,21117],{"className":21088},[988],[663,21090,21092],{"className":21091},[992],[994,21093,21094],{"xmlns":996},[998,21095,21096,21114],{},[1001,21097,21098,21100,21102,21104,21106,21112],{},[1081,21099,1084],{"mathvariant":1083},[1004,21101,1088],{"stretchy":1087},[1081,21103,2620],{"mathvariant":1956},[1081,21105,2632],{},[5414,21107,21108,21110],{},[1081,21109,2620],{"mathvariant":1956},[1008,21111,816],{},[1004,21113,1094],{"stretchy":1087},[1011,21115,21116],{"encoding":1013},"\\mathcal{O}(|E|^2)",[663,21118,21120],{"className":21119,"ariaHidden":1019},[1018],[663,21121,21123,21126,21129,21132,21135,21138,21167],{"className":21122},[1023],[663,21124],{"className":21125,"style":7945},[1027],[663,21127,1084],{"className":21128,"style":1112},[1032,1111],[663,21130,1088],{"className":21131},[1116],[663,21133,2620],{"className":21134},[1032],[663,21136,2632],{"className":21137,"style":2685},[1032,1120],[663,21139,21141,21144],{"className":21140},[1032],[663,21142,2620],{"className":21143},[1032],[663,21145,21147],{"className":21146},[3598],[663,21148,21150],{"className":21149},[3602],[663,21151,21153],{"className":21152},[3607],[663,21154,21156],{"className":21155,"style":7420},[3611],[663,21157,21158,21161],{"style":5465},[663,21159],{"className":21160,"style":3620},[3619],[663,21162,21164],{"className":21163},[3624,3625,3626,3627],[663,21165,816],{"className":21166},[1032,3627],[663,21168,1094],{"className":21169},[1124],[1127,21171,21173,21178],{"correct":816,"slug":21172},"te-algorithmique-1-q5",[1131,21174,21175],{"v-slot:question":659},[599,21176,21177],{},"La programmation dynamique se distingue de « diviser pour régner » par :",[1131,21179,21180],{"v-slot:choices":659},[1139,21181,21182,21185,21188,21191],{},[1142,21183,21184],{},"l'usage de la récursivité",[1142,21186,21187],{},"la présence d'un cas de base",[1142,21189,21190],{},"le chevauchement des sous-problèmes, qui justifie la mémoïsation",[1142,21192,21193],{},"l'absence d'équation de récurrence",[21195,21196,21198],"self-eval-free-text",{"answer":14111,"case-sensitive":1087,"slug":21197},"te-algorithmique-1-q6",[1131,21199,21200],{"v-slot:question":659},[599,21201,21202],{},"L'algorithme de Boyer-Moore compare le motif et le texte de la fin vers le début, c'est-à-dire de droite à _______.",[1127,21204,21206,21211],{"correct":816,"slug":21205},"te-algorithmique-1-q7",[1131,21207,21208],{"v-slot:question":659},[599,21209,21210],{},"Quel est le coût asymptotique en pire cas du tri fusion (notation de Landau) ?",[1131,21212,21213],{"v-slot:choices":659},[1139,21214,21215,21260,21325,21400],{},[1142,21216,21217],{},[663,21218,21220,21239],{"className":21219},[988],[663,21221,21223],{"className":21222},[992],[994,21224,21225],{"xmlns":996},[998,21226,21227,21237],{},[1001,21228,21229,21231,21233,21235],{},[1081,21230,1084],{"mathvariant":1083},[1004,21232,1088],{"stretchy":1087},[1081,21234,1091],{},[1004,21236,1094],{"stretchy":1087},[1011,21238,1097],{"encoding":1013},[663,21240,21242],{"className":21241,"ariaHidden":1019},[1018],[663,21243,21245,21248,21251,21254,21257],{"className":21244},[1023],[663,21246],{"className":21247,"style":1107},[1027],[663,21249,1084],{"className":21250,"style":1112},[1032,1111],[663,21252,1088],{"className":21253},[1116],[663,21255,1091],{"className":21256},[1032,1120],[663,21258,1094],{"className":21259},[1124],[1142,21261,21262],{},[663,21263,21265,21290],{"className":21264},[988],[663,21266,21268],{"className":21267},[992],[994,21269,21270],{"xmlns":996},[998,21271,21272,21288],{},[1001,21273,21274,21276,21278,21280,21282,21284,21286],{},[1081,21275,1084],{"mathvariant":1083},[1004,21277,1088],{"stretchy":1087},[1081,21279,1091],{},[1081,21281,1962],{},[1004,21283,1965],{},[1081,21285,1091],{},[1004,21287,1094],{"stretchy":1087},[1011,21289,4705],{"encoding":1013},[663,21291,21293],{"className":21292,"ariaHidden":1019},[1018],[663,21294,21296,21299,21302,21305,21308,21311,21316,21319,21322],{"className":21295},[1023],[663,21297],{"className":21298,"style":1107},[1027],[663,21300,1084],{"className":21301,"style":1112},[1032,1111],[663,21303,1088],{"className":21304},[1116],[663,21306,1091],{"className":21307},[1032,1120],[663,21309],{"className":21310,"style":2000},[1724],[663,21312,1992,21314],{"className":21313},[1991],[663,21315,1996],{"style":1995},[663,21317],{"className":21318,"style":2000},[1724],[663,21320,1091],{"className":21321},[1032,1120],[663,21323,1094],{"className":21324},[1124],[1142,21326,21327],{},[663,21328,21330,21353],{"className":21329},[988],[663,21331,21333],{"className":21332},[992],[994,21334,21335],{"xmlns":996},[998,21336,21337,21351],{},[1001,21338,21339,21341,21343,21349],{},[1081,21340,1084],{"mathvariant":1083},[1004,21342,1088],{"stretchy":1087},[5414,21344,21345,21347],{},[1081,21346,1091],{},[1008,21348,816],{},[1004,21350,1094],{"stretchy":1087},[1011,21352,7935],{"encoding":1013},[663,21354,21356],{"className":21355,"ariaHidden":1019},[1018],[663,21357,21359,21362,21365,21368,21397],{"className":21358},[1023],[663,21360],{"className":21361,"style":7945},[1027],[663,21363,1084],{"className":21364,"style":1112},[1032,1111],[663,21366,1088],{"className":21367},[1116],[663,21369,21371,21374],{"className":21370},[1032],[663,21372,1091],{"className":21373},[1032,1120],[663,21375,21377],{"className":21376},[3598],[663,21378,21380],{"className":21379},[3602],[663,21381,21383],{"className":21382},[3607],[663,21384,21386],{"className":21385,"style":7420},[3611],[663,21387,21388,21391],{"style":5465},[663,21389],{"className":21390,"style":3620},[3619],[663,21392,21394],{"className":21393},[3624,3625,3626,3627],[663,21395,816],{"className":21396},[1032,3627],[663,21398,1094],{"className":21399},[1124],[1142,21401,21402],{},[663,21403,21405,21428],{"className":21404},[988],[663,21406,21408],{"className":21407},[992],[994,21409,21410],{"xmlns":996},[998,21411,21412,21426],{},[1001,21413,21414,21416,21418,21420,21422,21424],{},[1081,21415,1084],{"mathvariant":1083},[1004,21417,1088],{"stretchy":1087},[1081,21419,1962],{},[1004,21421,1965],{},[1081,21423,1091],{},[1004,21425,1094],{"stretchy":1087},[1011,21427,2042],{"encoding":1013},[663,21429,21431],{"className":21430,"ariaHidden":1019},[1018],[663,21432,21434,21437,21440,21443,21448,21451,21454],{"className":21433},[1023],[663,21435],{"className":21436,"style":1107},[1027],[663,21438,1084],{"className":21439,"style":1112},[1032,1111],[663,21441,1088],{"className":21442},[1116],[663,21444,1992,21446],{"className":21445},[1991],[663,21447,1996],{"style":1995},[663,21449],{"className":21450,"style":2000},[1724],[663,21452,1091],{"className":21453},[1032,1120],[663,21455,1094],{"className":21456},[1124],[21458,21459,21461,21466],"self-eval-ordering",{"slug":21460},"te-algorithmique-1-q8",[1131,21462,21463],{"v-slot:question":659},[599,21464,21465],{},"Ordonnez les étapes d'un algorithme « diviser pour régner » :",[1131,21467,21468],{"v-slot:items":659},[1139,21469,21470,21473,21476,21479],{},[1142,21471,21472],{},"Tester le cas de base et y répondre directement si applicable",[1142,21474,21475],{},"Diviser le problème en sous-problèmes plus petits du même type",[1142,21477,21478],{},"Résoudre chaque sous-problème par appel récursif",[1142,21480,21481],{},"Combiner les sous-solutions en une solution globale",[21458,21483,21485,21490],{"slug":21484},"te-algorithmique-1-q9",[1131,21486,21487],{"v-slot:question":659},[599,21488,21489],{},"Ordonnez les étapes d'une recherche de motif par l'algorithme de Boyer-Moore :",[1131,21491,21492],{"v-slot:items":659},[1139,21493,21494,21497,21500,21503],{},[1142,21495,21496],{},"Prétraiter le motif pour construire la table du mauvais caractère",[1142,21498,21499],{},"Aligner le motif sur le texte à la position courante",[1142,21501,21502],{},"Comparer le motif et le texte de droite à gauche",[1142,21504,21505],{},"En cas d'échec, décaler le motif selon la règle du mauvais caractère",{"title":659,"searchDepth":681,"depth":681,"links":21507},[21508,21509,21510],{"id":19689,"depth":681,"text":19690},{"id":20042,"depth":681,"text":20043},{"id":13903,"depth":681,"text":20391},"Vue d'ensemble du chapitre TE, coûts à mémoriser, auto-évaluation.",{"self_eval_slug":21513},"nsi-tale-te-algorithmique","\u002Fnsi-tale\u002Fte-algorithmique\u002Fchapitre.memo",[21516,21518,21520,21527,21533,21535,21539,21542,21545],{"slug":20394,"kind":2216,"question":20399,"choices":21517,"correct":822,"multi":2218,"explanation":659},[20406,20409,20412,20415],{"slug":20418,"kind":2216,"question":20423,"choices":21519,"correct":816,"multi":2218,"explanation":659},[20430,20433,20436,1644],{"slug":20441,"kind":2216,"question":21521,"choices":21522,"correct":822,"multi":2218,"explanation":659},"Pour le tri fusion, la récurrence est T(n)=2T(n\u002F2)+O(n)T(n) = 2 T(n\u002F2) + \\mathcal{O}(n)T(n)=2T(n\u002F2)+O(n). Quel est le coût total ?",[21523,21524,21525,21526],"O(n)\\mathcal{O}(n)O(n)","O(nlog⁡n)\\mathcal{O}(n \\log n)O(nlogn)","O(n2)\\mathcal{O}(n^2)O(n2)","O(2n)\\mathcal{O}(2^n)O(2n)",{"slug":20845,"kind":2216,"question":20850,"choices":21528,"correct":816,"multi":2218,"explanation":659},[21529,21530,21531,21532],"O(∣V∣)\\mathcal{O}(|V|)O(∣V∣)","O(∣V∣2)\\mathcal{O}(|V|^2)O(∣V∣2)","O(∣V∣+∣E∣)\\mathcal{O}(|V| + |E|)O(∣V∣+∣E∣)","O(∣E∣2)\\mathcal{O}(|E|^2)O(∣E∣2)",{"slug":21172,"kind":2216,"question":21177,"choices":21534,"correct":816,"multi":2218,"explanation":659},[21184,21187,21190,21193],{"slug":21197,"kind":21536,"question":21202,"answer":14111,"caseSensitive":2218,"tolerance":21537,"inputType":21538,"explanation":659},"free_text",0,"string",{"slug":21205,"kind":2216,"question":21210,"choices":21540,"correct":816,"multi":2218,"explanation":659},[21523,21524,21525,21541],"O(log⁡n)\\mathcal{O}(\\log n)O(logn)",{"slug":21460,"kind":21543,"question":21465,"items":21544,"explanation":659},"ordering",[21472,21475,21478,21481],{"slug":21484,"kind":21543,"question":21489,"items":21546,"explanation":659},[21496,21499,21502,21505],{"title":19683,"description":21511},"2.nsi-tale\u002Fte-algorithmique\u002Fchapitre.memo","qq9cYllOOePurt3w9LXRMYNDWJ4wrG-lkqZWALeavLs",1788035586403]