LlListSort/fr

From Second Life Wiki
Jump to: navigation, search

Description

Fonction: list llListSort( list src, integer pas, integer croissant );

Renvoie un list correspondant au list src dont les éléments de chaque pas ont été triés.

• list src List à trier.
• integer pas Ecart entre deux éléments à trier, si la données est inférieure à 1, la valeur est considérée comme étant égale à 1.
• integer croissant Si FALSE alors, le tri est décroissant, sinon croissant.

Spécifications

Un tri bulle est utilisé pour effectuer l’opération.
L’ordre de tri est influencé par le type de chaque élément.
Chaque type est trié comme un list séparé puis les éléments sont recombinés dans un même list pour avoir le même ordre (cf exemple suivant). <lsl>llListSort([1, "C", 3, "A", 2, "B"], 1, TRUE) == [1, "A", 2, "B", 3, "C"] llListSort([1, 3, 2, "C", "A", "B"], 1, TRUE) == [1, 2, 3, "A", "B", "C"] llListSort([1, "C", 3, "A", 2, "B"], 2, TRUE) == [1, "C", 2, "B", 3, "A"]</lsl>

Avertissements

Un tri bulle a une complexité en N*N. La raison pour laquelle Linden Labs n’utilise pas un algorithme en N*log(N) tel que le tri tête ou le tri fusion est à ce jour inconnu...

Exemples

list numbers = [3, "trois", 2, "deux", 1, "un"];
default
{
    state_entry()
    {
        llOwnerSay(llDumpList2String(numbers, ","));
        // Object: 3,trois,2,deux,1,un
        numbers = llListSort(numbers, 2, TRUE);
        llOwnerSay(llDumpList2String(numbers, ","));
        // Object: 1,un,2,deux,3,trois
    }
}

Notes avancées

Code source

lsa_bubble_sort(): 'linden\indra\lscript\lscript_alloc.h'

Vous cherchez encore des informations ? Peut-être cette page du LSLwiki pourra vous renseigner.