public static TimeSpan test(SortImplementation s, int[] data)
            {
                //Uncomment the print lines for a view of the data before or after the sort

                Stopwatch sw = new Stopwatch();

                sw.Start();
                //PrintIntegerArray(data);
                s(data, 0, data.Length - 1);
                //PrintIntegerArray(data);
                sw.Stop();
                return(sw.Elapsed);
            }
            public static bool check_for_correctness(SortImplementation s)
            {
                int[] data      = seed_data(1000);
                int[] data_copy = copy_data(data);
                s(data, 0, data.Length - 1);

                for (int i = 0; i < data.Length - 1; i++)
                {
                    if (!data.Contains(data_copy[i]) || data[i + 1] < data[i])
                    {
                        return(false);
                    }
                }

                if (!data.Contains(data_copy[data.Length - 1]) || data[data.Length - 1] < data[data.Length - 2])
                {
                    return(false);
                }

                return(true);
            }