public static (int, int) CalculateComparationAndMoveCount(int count, IStepSequenceGenerator generator)
        {
            var array = RandomGenerator.Generate(count);

            var comparer = new MockComparer();

            array.ShellSort(comparer, generator);

            return(comparer.ComparationCount, comparer.MoveCount);
        }
Beispiel #2
0
    public static IList <T> ShellSort <T>(this IList <T> collection, IStepSequenceGenerator sequenceGenerator) where T : IComparable <T>
    {
        var steps = sequenceGenerator.Generate(collection.Count);

        foreach (var step in steps)
        {
            collection.PartialInsertionSort(step);
        }
        return(collection);
    }