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) 
    { 
          ...
Pour consulter la suite, découvrez le livre suivant :
couv_RI3PALG.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Les fichiers
Suivant
Une approche de l’objet