<.> R.Next ()) `Un Roths pour mélanger une collection?
"/>
var r = new Random(); var shuffled = ordered.OrderBy(x => r.Next());
Cet algorithme n'est pas la meilleure méthode de tri aléatoire. Il a trié les éléments basés sur des nombres aléatoires attribués à chaque élément, ce qui entraîne une complexité temporelle est O (n log n). Ceci est bien inférieur à l'algorithme Fisher-Yates (la complexité du temps est O (n)). <底> Le mécanisme sous-jacent
L'algorithme attribue un nombre aléatoire pour chaque élément de la collection, puis trie les éléments en fonction de ces nombres. Ce processus aléatoire efficacement l'ordre des éléments, mais ce n'est pas une véritable opération de tri aléatoire.
<合> Méthode de tri aléatoire plus appropriée
Bien que cette méthode puisse produire des résultats de tri aléatoire, ce n'est pas la première méthode en raison de sa faible efficacité. L'algorithme de tri aléatoire Fisher-Yates a une complexité de calcul plus faible et une efficacité plus élevée. De plus, une méthode d'expansion de shuffle spéciale peut fournir une expression de fonction de tri aléatoire claire et concise.
La collection d'entrée est convertie en tableau. Utilisez la fonction prédéterminée (par exemple,
) l'élément de la liste d'échanges aléatoires.Retour aux échanges.
Next
<能> Optimisation des performances Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!