<?xml version="1.0" encoding="UTF-8"?>

<upm-export>
	<title>Enseignement de l&#039;informatique et du numérique au lycée Boissy d&#039;Anglas</title>
	<link>https://icn-isn-boissy.yj.fr/wp</link>
	<description></description>
	<pubDate>Wed May 6 11:55:25 2026 / +0000  GMT</pubDate>
	<generator>Universal Post Manager 1.1.2 [ www.ProfProjects.com ] </generator>
	<language></language>
	
			<item>
			<title>Méthode diviser pour régner</title>
			<link>https://icn-isn-boissy.yj.fr/wp/?p=3099</link>
			<pubDate>Wed May 6 11:55:25 2026 / +0000  GMT</pubDate>
			<guid isPermaLink="false">https://icn-isn-boissy.yj.fr/wp/?p=3099</guid>
			<content-encoded><![CDATA[<!-- wp:heading {"level":4} -->
<h4>Diviser pour régner</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le diviser pour régner est une méthode algorithmique basée sur le principe suivant :</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>On prend un problème (généralement complexe à résoudre), on divise ce problème en une multitude de petits problèmes, l'idée étant que les "petits problèmes" seront plus simples à résoudre que le problème original. Une fois les petits problèmes résolus, on recombine les "petits problèmes résolus" afin d'obtenir la solution du problème de départ.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le paradigme "diviser pour régner" repose donc sur 3 étapes :</p>
<!-- /wp:paragraph -->

<!-- wp:list -->
<ul><li><strong>DIVISER</strong> : le problème d'origine est divisé en un certain nombre de sous-problèmes</li><li><strong>RÉGNER</strong> : on résout les sous-problèmes (les sous-problèmes sont plus faciles à résoudre que le problème d'origine)</li><li><strong>COMBINER</strong> : les solutions des sous-problèmes sont combinées afin d'obtenir la solution du problème d'origine.</li></ul>
<!-- /wp:list -->

<!-- wp:paragraph -->
<p>Les algorithmes basés sur le paradigme "diviser pour régner" sont très souvent des algorithmes récursifs.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous allons maintenant étudier un de ces algorithmes basés sur le principe diviser pour régner : le tri-fusion</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>Tri-fusion</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous avons déjà étudié des algorithmes de tri : le tri par insertion et le tri par sélection. Nous allons maintenant étudier une nouvelle méthode de tri, le tri-fusion. Comme pour les algorithmes déjà étudiés, cet algorithme de tri fusion prend en entrée un tableau non trié et donne en sortie, le même tableau, mais trié.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>À faire vous-même 1</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Étudiez cet algorithme :</p>
<!-- /wp:paragraph -->

<!-- wp:code -->
<pre class="wp-block-code"><code>TRI FUSION (tableau):
• Si tableau est de taille &lt;= 1 on ne fait rien.
• Sinon, On sépare tableau en 2 parties gauche et droite,
• On appelle Tri fusion sur gauche et sur droite
• On fusionne gauche et droite dans tableau

FUSIONNER (`tableau`, `gauche`, `droite`):
* On parcourt les deux tableaux `gauche` et `droite` en même temps,
Pour chaque paire d'éléments, on place le plus petit dans tableau.
* S'il reste des éléments dans `gauche` ou dans `droite` on les place à la fin
de tableau		</code></pre>
<!-- /wp:code -->

<!-- wp:paragraph -->
<p>Pour trier un tableau A, on fait l'appel initial TRI-FUSION(A, 1, A.longueur)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Rappel : Attention, en algorithmique, les indices des tableaux commencent à 1</p>
<!-- /wp:paragraph -->

<!-- wp:separator -->
<hr class="wp-block-separator"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p>Cet algorithme est un peu difficile à appréhender, on notera qu'il est composé de deux fonctions FUSIONNER et TRI-FUSION (fonction récursive). La fonction TRI-FUSION assure la phase "DIVISER" et la fonction FUSION assure les phases "RÉGNER" et "COMBINER".</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Voici un exemple d'application de cet algorithme sur le tableau A = [23, 12, 4, 56, 35, 32, 42, 57, 3] :</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>À faire vous-même 2</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Étudiez attentivement le schéma ci-dessous afin de mieux comprendre le principe du tri-fusion (identifiez bien les phases "DIVISER" et "COMBINER").</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":3125,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2020/12/div1.png" alt="" class="wp-image-3125"/></figure>
<!-- /wp:image -->

<!-- wp:image {"id":3127,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2020/12/div2.png" alt="" class="wp-image-3127"/></figure>
<!-- /wp:image -->

<!-- wp:image {"id":3129,"sizeSlug":"large"} -->
<figure class="wp-block-image size-large"><img src="https://icn-isn-boissy.yj.fr/wp/wp-content/uploads/2020/12/div3.png" alt="" class="wp-image-3129"/></figure>
<!-- /wp:image -->

<!-- wp:separator -->
<hr class="wp-block-separator"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p>On remarque que dans le cas du tri-fusion, la phase "RÉGNER" se réduit à sa plus simple expression, en effet, à la fin de la phase "DIVISER", nous avons à trier des tableaux qui comportent un seul élément, ce qui est évidemment trivial.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4>À faire vous-même 3</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Reprenez tout le raisonnement qui vient d'être fait sur le tableau T = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]. Vous n'hésiterez pas à faire un schéma et à expliquer la fusion de 2 tableaux triés.</p>
<!-- /wp:paragraph -->

<!-- wp:separator -->
<hr class="wp-block-separator"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p>Nous avons vu que le tri par insertion et tri par sélection ont tous les deux une complexité <em>O</em>(<em>n</em>2)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>. Qu'en est-il pour le tri-fusion ?</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Le calcul rigoureux de la complexité de cet algorithme sort du cadre de ce cours. Mais, en remarquant que la première phase (DIVISER) consiste à "couper" les tableaux en deux plusieurs fois de suite, intuitivement, on peut dire qu'un logarithme base 2 doit intervenir. La deuxième phase consiste à faire des comparaisons entre les premiers éléments de chaque tableau à fusionner, on peut donc supposer que pour un tableau de n éléments, on aura n comparaisons. En combinant ces 2 constations on peut donc dire que la complexité du tri-fusion est en <em>O</em>(<em>n</em>.<em>l</em><em>o</em><em>g</em>(<em>n</em>))</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>(encore une fois la "démonstration" proposée ici n'a rien de rigoureux).</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>La comparaison des courbes de la fonction <em>n</em>2 (en rouge) et <em>n</em>.<em>l</em><em>o</em><em>g</em>(<em>n</em>)</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>(en bleu) :</p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://pixees.fr/informatiquelycee/n_site/img/nsi_term_algo_div_2.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>nous montre que l'algorithme de tri-fusion est plus "efficace" que l'algorithme de tri par insertion ou que l'algorithme de tri par sélection.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Présentation vidéo détaillée du<a href="https://youtu.be/TzeBrDU-JaY" data-type="URL" data-id="https://youtu.be/TzeBrDU-JaY"> tri fusion</a></p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Utilisation du tri fusion:<br>Contrairement au tri par sélection ou par insertion, le tri fusion est réellement utilisé en pratique.<br>Il a de nombreux avantages :<br>• complexité optimale (cela ne signifie pas qu'il est le plus rapide)<br>• stable (voir plus bas)<br>• facile à mettre en œuvre<br>Cependant, il est possible d'améliorer la méthode :<br>timsort, le tri natif en Python et Javascript utilise une combinaison du tri fusion et du tri par insertion.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p><br><a href="https://icn-isn-boissy.yj.fr/wp/2020/12/14/le-principe-du-diviser-pour-regner-en-python-exercices/">Exercices Diviser pour régner</a></p>
<!-- /wp:paragraph -->

<!-- wp:separator -->
<hr class="wp-block-separator"/>
<!-- /wp:separator -->

<!-- wp:paragraph -->
<p><a href="https://pixees.fr/informatiquelycee/n_site/fiches/T/16_Méthode diviser pour régner.pdf" target="_blank" rel="noreferrer noopener">FICHE REVISION</a></p>
<!-- /wp:paragraph -->

<!-- wp:image -->
<figure class="wp-block-image"><img src="https://pixees.fr/informatiquelycee/n_site/img/cc.png" alt=""/></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Auteur : David Roche</p>
<!-- /wp:paragraph -->]]></content-encoded>
			<excerpt-encoded><![CDATA[]]></excerpt-encoded>
			<wp-post_id>3099</wp-post_id>
			<wp-post_date>2020-12-14 11:10:56</wp-post_date>
			<wp-post_date_gmt>2020-12-14 10:10:56</wp-post_date_gmt>
				</item>
</upm-export>
