Les Snippets

Connexion

Mélanger un tableau

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 22/03/2006 11:50:00 et initié par sebmafate [Liste]
Date de mise à jour : 28/03/2006 23:27:34
Vue : 14488
Catégorie(s) : Algorithme
Langages dispo pour ce code :
- C# 1.x, C# 2.x
- PHP 4, PHP 5
- Javascript
- VB 2005, VB.NET 1.x
- C# 1.x, C# 2.x
- Python
- Javascript
- VB6, VBA
- Voir tous les langages pour ce code snippet



Langage : C# 1.x , C# 2.x
Date ajout : 28/03/2006
Posté par coq [Liste]
DateMAJ : 28/03/2006

private static readonly Random _shuffleRnd = new Random(); // nécessaire pour la méthode ShuffleArray
public static void ShuffleArray(object[] array) 
{ 
    int arrayLength = array.Length; 
    // parcours de la liste en partant de la fin


    for (int i = arrayLength - 1; i > 1; --i) 
    {
        // tirage au sort d'un index entre 0 et la valeur courante de "i"
        int randomIndex = _shuffleRnd.Next(i); 
        // intervertion des éléments situés aux index "i" et "randomIndex"
        object temp = array[i]; 
        array[i] = array[randomIndex];
        array[randomIndex] = temp;
    }
}

Remarque :
Permet d'éviter le problème que l'on peut des fois rencontrer avec l'algo QuickSort utilisé par Array.Sort

Snippets en rapport avec : Tableau, Melanger



Codes sources en rapport avec : Tableau, Melanger

{Visual Basic, VB6, VB.NET, VB 2005} COMPRESSION
Fonction pour comprimer un tableau de byte...

{Visual Basic, VB6, VB.NET, VB 2005} TRI PAR INSERTION
Les listes triées sont très pratiques pour des quantités de données limitées : une liste semble pouv...

{C / C++ / C++.NET} ALGORITHME DE TRI D'UN TABLEAU PAR ORDRE CROISSANT OU DÉCROISSANT.
Bonjour, Le code source que je vais présenter est simple mais on y pense pas tout le temps. Il cla...

{Visual Basic, VB6, VB.NET, VB 2005} SÉRIALISTION - DÉSERIALISATION DE TABLEAUX ET COLLECTIONS
Après la source pour la sérialisation - désérialisation d'une LameGrid (que j'ai amélioré d'ailleurs...

{Delphi} UTILISER LES COMPOSANTS PAR LEURS NUMÉROS
Le principe : 1. Parcourir tous les composants d'une forme. 2. Y choisir le composant voulu et l'i...

{Javascript / DHTML} MOOTABLEAU
Une classe mooTools qui transforme une balise table en un ensemble div/tables qui permet de visualis...

{Visual Basic, VB6, VB.NET, VB 2005} JEU DE PENDU (COUIC 1 DE +)
Lundi, 01 Février 2010 04:58 un petit jeu de pendu réalisé sous vb 2008 express But du jeu : ...

{PHP} EXÉCUTER DES REQUETE STYLE SQL SUR UN ARRAY
La classe myArray, pour l'instant en version "j'ai codé comme un cochon" permet l'exécution de requê...

{Javascript / DHTML} JEU DE COULEURS DANS UN TABLEAU À 3 DIMENSION
Un tableau à 3 dimensions(Plusieurs tableau de 2 dimensions) des couleurs existante sur un PC. Jusqu...

{Visual Basic, VB6, VB.NET, VB 2005} LE 421 AVEC CLASSEMENT V2
le 421 avec prise en compte du classement ici fonction lancer de dé select case streamreader cod...