How to implements the generic Fisher-Yates shuffle for int array in C#

1 Answer

0 votes
using System;

namespace ConsoleApplication_C_Sharp
{
    class Program
    {
        static Random _random = new Random();

        static void ShuffleArray<T>(T[] array)
        {
            int n = array.Length;

            for (int i = 0; i < n; i++)
            {
                int rnd = i + (int)(_random.NextDouble() * (n - i));
                T t = array[rnd];
                array[rnd] = array[i];
                array[i] = t;
            }
        }

        static void Main(string[] args)
        {
            int[] arr = { 1, 2, 3, 4, 5, 6, 7 };

            ShuffleArray(arr);

            foreach (int n in arr)
                Console.WriteLine(n);
        }
    }
}

/*
run:

1
3
2
7
6
5
4

*/

 



answered Jan 5, 2017 by avibootz

Related questions

1 answer 113 views
1 answer 161 views
1 answer 168 views
168 views asked Oct 30, 2021 by avibootz
2 answers 512 views
1 answer 161 views
2 answers 200 views
200 views asked Aug 25, 2018 by avibootz
...