Trie aleatoire tableau c#

Fermé
david - 19 nov. 2011 à 14:56
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 19 nov. 2011 à 15:29
Bonjour,

Je fais une application en C# et j'aurai besoin de votre aide...

j'ai un tableau d'entier qui contient les valeurs suivantes : 1,2,3,4,5,6,7,8,9

et j'aimerai trier ce tableau de façon aléatoire. Comment faire ?

Est-il plus pratique de faire cette méthode ? ou bien de faire un nombre aléatoire entre 1 et 9 à chaque fois et vérifier qu'il n'existe pas déjà ?

Merci.

A voir également:

2 réponses

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
Modifié par nicocorico le 19/11/2011 à 15:31
Ou une autre solution, qui évite d'avoir à supprimer des cases :
- Ton tableau est rempli avec les valeurs dans l'ordre;
- Tu récupères un nombre aléatoire avec random ou Gettickcount (un compteur qui défile en permanence en millisecondes, "imprévisible");
Il faut faire un modulo pour que le nombre n'excède pas 9;
- En te servant de cette valeur comme index, tu inverses les valeurs dans le tableau entre cet emplacement et le dernier;
Par exemple : on trouve 7 en nombre aléatoire; on inverse les valeurs de Tab[07] et Tab[10]; si on trouve 39, on fait 39 modulo 9, ça donne 3, donc on inverse Tab[3] et Tab [10];
Je considère ici que le tableau commence à l'index 01.
En répétant cette méthode une centaines de fois, l'aléa me semble garanti... N'hésite pas si ça te semble obscur, c'est un peu dur à expliquer !

Le chêne aussi était un gland, avant d'être un chêne
1
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
19 nov. 2011 à 15:14
Je ne connais pas C# mais vu que ta question est plus théorique qu'autre chose j'y réponds quand même :

Ce que tu devrais faire c'est tirer un nombre aléatoire entre 1 et la taille de ton tableau, récupérer la valeur qui est à cette position et la mettre à la première position de ton tableau résultat (j'ai 9 cases, je tire un nombre entre 1 et 9, par exemple 3, je récupère la 3è valeur de mon tableau d'origine pour le mettre à la première case du tableau résultat)
Ensuite on recommence, mais avec un tableau qui a une case en moins, vu qu'entre temps tu auras supprimé la case que tu as récupéré précédemment.

Ici, quand on s'y connait un peu on voit tout de suite que l'utilisation d'une liste pour contenir les valeurs du tableau d'origine est bien plus efficace qu'un tableau lorsqu'il s'agit de supprimer une "case" n'importe où dans le tableau...
0