LlListSort/fr
Jump to navigation
Jump to search
LSL Portail Francophone | LSL Portail Anglophone | Fonctions | Évènements | Types | Operateurs | Constantes | Contrôle d'exécution | Bibliothèque | Tutoriels |
Description
Fonction: list llListSort( list src, integer pas, integer croissant );184 | N° de fonction |
0.0 | Delais |
10.0 | Energie |
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).
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"]
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.