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)
{
...