How to implements the generic Fisher-Yates shuffle for string 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)
        {
            string[] arr = new string[]
            {
                "c#",
                "java",
                "c",
                "c++",
                "python"
            };

            ShuffleArray(arr);

            foreach (string s in arr)
                Console.WriteLine(s);
        }
    }
}

/*
run:
 
java
c#
c
c++
python
 
*/

 



answered Jan 5, 2017 by avibootz

Related questions

1 answer 166 views
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
...