• [^] # Re: Pour sort, ca depend des options

    Posté par . En réponse au journal M'enfin ?? .... Évalué à 6.

    Normalement la stabilité de l'algorithme ne devrait pas influer sur sa performance. Un algorithme de tri stable semble être (d'après perldoc -f sort) la caractéristique de garder l'ordre initial d'éléments qui comparent comme étant égaux. Vu le reste de la doc perl et des chiffres ci-dessous, je dirais que la demande d'un algo stable fait passer de l'utilisation de quicksort à mergesort, qui est plus efficace dans ce cas particulier.


    [gc@meuh /tmp] head meuh
    39541
    21152
    70685
    8033
    13506
    82620
    34950
    34526
    99135
    29911


    [gc@meuh /tmp] /usr/bin/time sort -n meuh > n
    0:29.01elapsed

    [gc@meuh /tmp] /usr/bin/time sort -ns meuh > ns
    0:21.11elapsed

    [gc@meuh /tmp] cat meuh | time perl -e 'print sort {$a <=> $b} ' > perldef
    0:12.18elapsed

    [gc@meuh /tmp] cat meuh | time perl -e 'use sort _quicksort; print sort {$a <=> $b} ' > perlqui
    0:18.85elapsed

    [gc@meuh /tmp] cat meuh | time perl -e 'use sort _mergesort; print sort {$a <=> $b} ' > perlme
    0:12.17elapsed