Sommaire

Notions avancées

Exercice 1

Écrire en PHP l’algorithme de tri par fusion expliqué dans la section Exemples de tri.

Solution

Attention de bien passer le tableau par référence lors de l’appel de triFusion et de fusionner.

<?php 
function triFusion (&$tab, $debut, $fin) 
{ 
    if($debut<$fin) 
    { 
           $milieu = round(($debut+$fin)/2,0, PHP_ROUND_HALF_DOWN); 
           triFusion($tab, $debut, $milieu); 
           triFusion($tab, $milieu+1, $fin); 
           fusionner($tab, $debut, $milieu, $fin); 
    } 
} 
  
function fusionner (&$tab, $debut, $milieu, $fin) 
{ 
    $tab_tempo = $tab; // tableau temporaire pour stocker 
                       // les données triées. 
  
    $i1 = $debut; //indice dans la première moitié de tab_tempo 
    $i2 = $milieu+1; // indice dans la deuxième moitié de tab_tempo 
    $i = $debut; //indice dans le tableau tab 
  
    while ($i1<= $milieu && $i2 <= $fin) 
    { 
           ...