Effizienter Zufallssortierungsalgorithmus für C#-Ganzzahllisten
In diesem Artikel wird eine effizientere Möglichkeit zum zufälligen Sortieren oder Mischen einer Liste von Ganzzahlen untersucht.
Fisher-Yates-Shuffling-Algorithmus
Der Fisher-Yates-Shuffling-Algorithmus ist ein linearer Zeitalgorithmus, der Listen effizient randomisiert. So funktioniert es:
Gehen Sie für jeden Index i in der Liste von 0 bis n-1 wie folgt vor:
<code>int j = random.Next(i + 1); 交换索引i和j处的数值;</code>
Bestehende Probleme im Algorithmus verbessern
Der vorgeschlagene Algorithmus weist einige Mängel auf:
Code-Implementierung
Der folgende Codeausschnitt implementiert den Fisher-Yates-Shuffling-Algorithmus in C#:
<code class="language-csharp">using System; using System.Collections.Generic; class Program { static void Shuffle<T>(IList<T> list) { Random random = new Random(); for (int i = 0; i < list.Count; i++) { int j = random.Next(i + 1); T temp = list[i]; list[i] = list[j]; list[j] = temp; } } static void Main(string[] args) { List<int> values = new List<int>(); for (int i = 0; i < 10; i++) { values.Add(i); } Shuffle(values); Console.WriteLine(string.Join(", ", values)); } }</code>
Das obige ist der detaillierte Inhalt vonWie können wir eine Ganzzahlliste in C# effizient mischen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!