HOBBES World.com

Algorithmes
Accueil
Bubble Sort
Quick Sort
Heap Sort
Exos

Menu Général
Informatique
Programmation
Loisirs
Outils
Divers
Accueil

Log In


Login à vie

Créer un compte
Mot de passe

Heap Sort / Tri par la Méthode du Tas



  1. Principe



  2. Algorithme

Procédure Descend (Element: Tableau; K, L: Entier)
  X <- Element (K)
  I <- K
  J <- 2*I
  SI J < L et Element (J+1) > Element (J) ALORS
    J <- J+1
  FIN SI
  TANT QUE J <= L et Element (J) > X FAIRE
    Element (I) <- Element (J)
    I <- J
    J <- 2*I
    SI J < L et Element (J+1) > Element (J) ALORS
      J <- J+1
    FIN SI
  FIN TANT QUE
  Element (I) <- X
Fin Procédure

Procédure HeapSort (Element : Tableau; N: Entier)
  POUR K ALLANT DE N/2 JUSQU'A 1 FAIRE
    Descend (Element, K, N)
  FIN POUR
  POUR K ALLANT DE N JUSQU'A 2 FAIRE
    X <- Element (K)
    Element (K) <- Element(1)
    Element (1) <- X
    Descend (Element, 1, K-1)
  FIN POUR
Fin Procédure



  4. Exemples


  4. 1. PHP

function Descend (&$Element, &$K, &$L) {
  $X = $Element[$K];
  $I = $K;
  $J = 2*$I;
  if (($J < $L) && ($Element[$J+1] > $Element[$J])) {
    $J = $J+1;
  }
  while (($J <= $L) && ($Element[$J] > $X)) {
    $Element[$I] = $Element [$J];
    $I = $J;
    $J = 2*$I;
    if (($J < $L) && ($Element[$J+1] > $Element[$J])) {
      $J = $J+1;
    }
  }
  $Element[$I] = $X;
}

Function HeapSort (&$Element, &$N)
  for ($K=$N div 2;$K>=1;$K--) {
    Descend ($Element, $K, $N);
  }
  for ($K=$N;$K>=2;$K--) {
    $X = $Element[$K];
    $Element[$K] = $Element[$1];
    $Element[$1] = $X;
    Descend ($Element, 1, $K-1);
  }
}




  » Commentaires

Aucun commentaire pour cette page.

Si vous souhaitez ajouter un commentaire, vous devez être identifié


 Page modifiée le : 29/07/2003
Site modifié le : 02/04/2008
  Flux RSS : cliquez-ici si vous voulez suivre les évolutions
Contacter le webmaster : si vous trouvez qu'il manque des infos, n'hésitez pas à me le dire !
© HobbesWorld - /algorithmes/heapsort.php