static void Main(string[] args) { var exitRequested = false; while (!exitRequested) { Console.Clear(); Console.WriteLine("Enter number to shuffle"); var input = Console.ReadLine(); if (!int.TryParse(input, out var parsedValue) || parsedValue <= 0) { Console.WriteLine("Value should be positive integer number"); } else { foreach (var value in NumbersShuffle.GetShuffled(parsedValue)) { Console.WriteLine(value); } } Console.WriteLine("Would you like to shuffle again? (y/n)"); var reply = Console.ReadKey(); exitRequested = !(reply.KeyChar == 'y' || reply.KeyChar == 'Y' || reply.Key == ConsoleKey.Enter); } // RunNaiveTest(10000, 100); // RunBucketsTest(10000, 100); Console.ReadKey(); }
private static void RunBucketsTest(int targetNumber, int numberOfIterations) { //warmup _ = NumbersShuffle.GetShuffledWithBucketing(targetNumber).ToList(); var stopWatch = new Stopwatch(); stopWatch.Start(); for (var i = 0; i < numberOfIterations; i++) { _ = NumbersShuffle.GetShuffledWithBucketing(targetNumber).ToList(); } stopWatch.Stop(); Console.WriteLine($"Bucketed elapsed: {stopWatch.Elapsed}"); }