Algo de tri de tableaux

Algo de tri de tableaux - PHP - Programmation

Marsh Posté le 24-11-2007 à 19:02:16    

:hello:  
 
je bosse sur mes cours, on a fait un tri de tableaux hier en c++ (vite fais un peu crade  :o )
 
et j'en ai refais un en php (bon je sais, ya sort($tableau) mais je veut faire sans :o )
 
Donc j'ai fait ca :
 

Code :
  1. <?php
  2.         // init du tableau :
  3.         $array = array( 10, 54, 58, 2, 12, 35, 54, 478, 16, 5 );
  4.         
  5.         // fonctions de tri :
  6.         
  7.         function return_indice_min($array, $offset) { // fonction qui retourne l'indice de la + petite valeur du tableau
  8.             $min = $offset++; // affectation de la valeur de offset à $min et incrementation
  9.             for ($i = $offset; $i < sizeof($array); $i++)
  10.                 if ($array[$min] > $array[$i])
  11.                     $min = $i;
  12.             return $min;        
  13.         }
  14.         
  15.         function permute(&$val1, &$val2) { // permute 2 valeurs val1 et val2 avec passage par reference
  16.             $inter = $val1;
  17.             $val1 = $val2;
  18.             $val2 = $inter;
  19.         }
  20.         
  21.         function sort_array(&$array) { // trie un tableau passé en parametre
  22.             for ($i = 0; $i < sizeof($array); $i++) { // on parcourt chaque case du tableau, et on permute la valeur min du tableau avec la valeur actuelle
  23.                 $min =  return_indice_min($array, $i);
  24.                 permute($array[$i], $array[$min]);
  25.             }
  26.         }
  27.     ?>


 
Test ici : http://tomas.save.free.fr/files/dev/php/sort_array.php
 
Existe t'il d'autres algos de tri plus rapides ?

Reply

Marsh Posté le 24-11-2007 à 19:02:16   

Reply

Marsh Posté le 24-11-2007 à 19:22:06    

Oui, l'un des plus performant est le quicksort, c'est un algorithme récursif et il a une complexité en nlog(n).

Reply

Marsh Posté le 24-11-2007 à 19:28:55    

Bien sûr, c'est même surprenant que tu poses la question, ça ne se voit pas en cours d'algo, les méthodes de tri ?
 
Enfin bref, le quicksort est effectivement l'un des plus rapides sur un tableau complètement non-trié (en fait, plus le tableau est déjà trié, moins il est performant). Sur un tableau presque trié, le smoothsort est plus efficace.

Reply

Marsh Posté le 24-11-2007 à 19:30:59    

c'etait juste un cours de POO, sans algo, on a juste vu cette methode, et on a parlé du tri a bulles mais je pense pas que ce sot plus rapide,  
 
je vais regarder vers quicksort

Reply

Marsh Posté le 24-11-2007 à 19:44:59    

Voici un lien qui permet de comparer la vitesse de quelques algos.
http://www.imerir.com/~madeline/SortDemo/example.html

Reply

Marsh Posté le 24-11-2007 à 19:48:08    

et celui que j'utilise, saurais tu me dire lequel est-ce ?

Reply

Marsh Posté le 24-11-2007 à 19:59:25    

Un des plus triviaux, un tri par selection (le premier de la liste normalement)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed