2008-09-16 18 views

Répondre

0

Vous trouverez que la plupart des bibliothèques de développement sont livrées avec une implémentation de l'algorithme quicksort, qui est souvent l'algorithme de tri le plus rapide. Découvrez le Wikipedia link here.

1

Vous ne spécifiez pas votre langue cible, mais quoi qu'il en soit, elle devrait avoir des méthodes de tri intégrées et fiables, alors utilisez l'une d'entre elles! Pour PHP ...

Charger dans un tableau et trier ($ array);

php sort ...

$fruits = array("lemon", "orange", "banana", "apple"); 
sort($fruits); 

foreach ($fruits as $key => $val) 
{ 
    echo "fruits[" . $key . "] = " . $val . "\n"; 
} 

Sortie:

fruits[0] = apple 
fruits[1] = banana 
fruits[2] = lemon 
fruits[3] = orange 
1

Bubble sort! Je plaisante :)

Probablement votre meilleur pari serait quicksort ou mergesort.

Les deux sont O (nlogn) par opposition à l'O de tri à bulles (n^2)

0

En C#, Liste a .Sort().

En QuickSort général est très rapide sur de nombreuses situations, mais il dépend toujours de la taille du tableau,

Voici le link

1

La réponse à votre question est intimement liée à certains détails que vous n » t fourni. Le "meilleur/le plus rapide" dépend de la longueur des champs, du nombre de tri, de la quantité de mémoire disponible, des vitesses relatives du disque et de la mémoire, des détails des chaînes, ..., ad nauseam.

Knuth Vol 3 a les détails sur une grande variété d'approches. Je ne me souviens pas s'il parle de Radix Sorting, mais il le fait probablement. S'il ne le fait pas, vous devriez rechercher quelques références sur le tri par radix. C'est seulement utile dans un ensemble restreint de circonstances, mais vole positivement là. Si vous avez un petit jeu de chaînes courtes, Bubble Sort fonctionnera mieux que les tris complexes sur certaines architectures, en raison des frais généraux plus bas. La bibliothèque C Run Time inclut une version de Quick Sort car cela peut être un algorithme très efficace pour des ensembles de données plus volumineux dans certaines circonstances.

Net-net, la réponse est "Cela dépend".

1

La « meilleure » façon dépend de beaucoup de facteurs:

  1. Avez-vous besoin de soutenir plus de la langue?
  2. Avez-vous besoin de supporter simultanément plus d'une langue?
  3. Avez-vous besoin de prendre en charge des langues autres que le système d'exploitation actuel ou la langue de l'utilisateur? (par exemple, applications Web)
  4. Avez-vous besoin de gérer plus d'un encodage? (unicode, utf-16le/utf-8, pages de codes ansi, etc.)
  5. Avez-vous besoin de prendre en charge des entrées longues ou hautement redondantes?(où le précalcul ou la compression peut accélérer les opérations de tri)
  6. Avez-vous besoin de prendre en charge un grand nombre d'entrées, par exemple: millions ou milliards d'entrées?