C# での効率的な整数リスト シャッフル
C# で整数リストを最適にシャッフル (ランダム化) するには、処理時間を最小限に抑える高効率のアルゴリズムが不可欠です。 Fisher-Yates シャッフル アルゴリズムは線形時間ソリューションを提供し、シャッフルされていない要素を繰り返し検索する方法よりも大幅に優れたパフォーマンスを発揮します。 これらの効率の悪いメソッドは、リストのサイズが大きくなるにつれて徐々に遅くなります。
非効率的なシャッフル手法に伴う一般的な問題は、特に奇数の要素を含むリストの場合に無限ループが発生する可能性があることです。
フィッシャー・イェーツのシャッフル アルゴリズム
フィッシャー・イェーツのシャッフルは、リストのシャッフルされていない部分からランダムな要素を繰り返し選択し、それをすでにシャッフルされたセクションの要素と交換します。 これにより、すべての要素が最終的にシャッフルされたリスト内の任意の位置に同じ確率で出現することが保証されます。
フィッシャー・イェーツ シャッフルの C# 実装は次のとおりです。
<code class="language-csharp">private static void FisherYatesShuffle(int[] values) { Random random = new Random(); for (int i = values.Length - 1; i > 0; i--) { int swapIndex = random.Next(i + 1); int temp = values[i]; values[i] = values[swapIndex]; values[swapIndex] = temp; } }</code>
この洗練された実装には、いくつかの利点があります。
これにより、フィッシャー・イェーツ シャッフルは、C# での効率的な整数リスト シャッフルに推奨される方法になります。
以上がC# で整数リストのシャッフルを最適化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。