The REMOVERS'Magazine

La Programmation


La complexité des algorithmes
Auteur : Seb/the Removers
La complexité des algorithmes


La compression fractale
Auteur : Stabylo/the Removers
La compression fractale


Le tri rapide
Auteur : Seb/the Removers

Le Quick Sort (ou tri rapide pour les anglophobes) est une des meilleures solutions pour trier des données. Nous vous en proposons une traduction en assembleur 68020 pour trier un tableau de mots. Mais avant de commenter le source (qui l'est beaucoup plus qu'un de mes sources habituels !), faisons un peu de théorie !

Pour cela, commençons par un petit exemple. Soit le tableau : [26 18 4 9 37 119 63 220 47 74]. Le nombre 37 a un role très particulier : tous les objets avant 37 sont plus petits que 37 et tous ceux après 37 sont plus grands que 37. On donne le nom de pivot à un tel objet. Supposons maintenant que nous sachions trouver un pivot ap dans un tableau a=(a0,...,an) (n entiers positifs), alors récursivement, nous pourrions trier les sous tableaux (a0,...,ap-1) et (ap+1,...,an) : voilà ce que l'on appelle le quick sort !
Il nous faut donc savoir créer un pivot dans un tableau a=(ag,...,ad) :

En CAML :
let cherche_pivot a g d =
  let ob=a.(g) and i=ref g in
    for j=g+1 to d do
      if ob>a.(j) then (incr i;echange a !i j)
    done;
    echange a g !i;
    !i;;
où la fonction echange se charge d'échanger deux éléments d'un tableau.
La traduction du tri rapide est alors immédiate :
Toujours en CAML:
let qsort a =
  let rec qs g d =
    if d-g>1 then
      (
      let i=cherche_pivot a g d
      in qs g (i-1);
         qs (i+1) d
      )
    in qs 0 (vect_length a - 1);;

En assembleur 68020 !
Niveau complexité, on peut prouver que la complexité en moyenne du tri rapide est en O(n*log(n)), j'ai le détail dans mes cours si cela vous intéresse !


Les formats des modules MOD, MTM, MGT, 669 et XM
Auteur : Simplet/Fatal Design
Le format MOD (ASCII) Le format MTM (ASCII) Le format MGT (ASCII) Le format 669 (ASCII)

Le format XM
Auteur : Mr.H/Triton
Le format XM (ASCII)

Le format GT2
Auteur : L. de Soras
Le format GT2 (ASCII)


Sommaire Sommaire du magazine


[Entrée du site] [Presentation du groupe] [Nos articles] [Nos logiciels] [Téléchargement] [Nos liens] [Contacts] [Nouveautés du site]

[Main page] [Presentation of the group] [Our products] [Download] [Links] [Contacts] [What's new]