>Miles:
>entre les deux, c'est juste un rapport de proportionnalité... diviser pour régner fait du n*ln(n), donc c'est du bon
Non, le
QuickSort (qui est l'application du "diviser pour régner" au tri) est entre O(n*ln(n)) et O(n²) selon les cas.
HeapSort est
toujours en O(n*ln(n)), mais avec un coefficient plus grand devant, donc en pratique, ça ne se voit que pour de gros tableaux.
BubbleSort,
ShellSort, ... sont tous en
O(n²) si je ne me trompe, mais le coefficient devant est bien plus petit que celui du
QuickSort, donc pour les petits tableaux, c'est plus rapide. C'est d'ailleurs pour ça que les implémentations optimisées de
QuickSort passent à une de ces techniques une fois que le tableau a été coupé en tableaux suffisamment petits.
Et encore une fois: utilisez
qsort, ça utilisera automatiquement un algorithme adapté à votre système (
QuickSort sur un PC, et autre chose -
ShellSort en l'occurrence - sur un système comme les TI-89/92+).
[edit]Edité par Kevin Kofler le 03-04-2002 à 00:34:49[/edit]