Пример #1
0
 public static void Sink(int[] array, SinkMethod sinkMethod)
 {
     swaps       = 0;
     comparisons = 0;
     sinkMethod(array, 0);
     maximum = array[0];
 }
Пример #2
0
        public static void Maxify(int[] array, SinkMethod sinkMethod)
        {
            swaps       = 0;
            comparisons = 0;
            int length = array.Length;
            int root   = length;

            while (root >= 0)
            {
                sinkMethod(array, root);
                --root;
            }
            maximum = array[0];
        }
Пример #3
0
 private static int TestMaxify(int[] array, int seed, SinkMethod sinkMethod, int repetitionIndex, ref long comparisonsSum, ref long swapsSum)
 {
     InitializeArray(array, seed);
     if (repetitionIndex == 0)
     {
         Dump(array);
     }
     Heaps.Maxify(array, sinkMethod);
     if (repetitionIndex == 0)
     {
         Dump(array);
         Console.WriteLine($"Maximum: {Heaps.maximum} Seed: {seed} Swaps: {Heaps.swaps} Comparisons: {Heaps.comparisons}", new object[0]);
     }
     comparisonsSum += Heaps.comparisons;
     swapsSum       += Heaps.swaps;
     return(Heaps.maximum);
 }
Пример #4
0
        private static int TestSink(int[] array, int seed, SinkMethod sinkMethod, int repetitionIndex, ref long comparisonsSum, ref long swapsSum)
        {
            int value = new Random(seed * 2).Next(array.Length);

            array[0] = value;
            if (repetitionIndex == 0)
            {
                Dump(array);
            }
            Heaps.Sink(array, sinkMethod);
            if (repetitionIndex == 0)
            {
                Dump(array);
                Console.WriteLine($"Maximum: {Heaps.maximum} Seed: {seed} Swaps: {Heaps.swaps} Comparisons: {Heaps.comparisons}", new object[0]);
            }
            comparisonsSum += Heaps.comparisons;
            swapsSum       += Heaps.swaps;
            return(Heaps.maximum);
        }
Пример #5
0
 public AlgorithmInformation(SinkMethod sinkMethod)
 {
     SinkMethod = sinkMethod;
 }