Как написать счётчик для подсчёта количества перестановок и сравнений в программе сортировки на C#?

using System;

class quicker
{
    
    static void Swap(ref int x, ref int y)
    {
        var t = x;
        
        x = y;
        y = t;
        
    }

    
    static int Section(int[] mas, int minIndex, int maxIndex)
    {
        var pivot = mas[maxIndex];
        var j = minIndex;
        var d = 0;
       
        for ( var i = minIndex; i < maxIndex - 1; i++)
        {
            if ( mas[i] <= pivot)
            {
                Swap(ref mas[j], ref mas[i]);
                j = j + 1;
                d++;
            }

            Console.WriteLine(d);
        }

        Swap(ref mas[j], ref mas[maxIndex]);
        return j;
        

    }

    
    static int[] QuickSort(int[] array, int minIndex, int maxIndex)
    {
        if (minIndex >= maxIndex)
        {
            return array;
        }

        var pivotIndex = Section(array, minIndex, maxIndex);
        QuickSort(array, minIndex, pivotIndex - 1);
        QuickSort(array, pivotIndex + 1, maxIndex);

        return array;
    }

    static int[] QuickSort(int[] array)
    {
        return QuickSort(array, 0, array.Length - 1);
    }

    

    static int[] RandomArray(int length, int minValue, int maxValue)
    {
        var r = new Random();
        var outputArray = new int[length];
        for (var i = 0; i < outputArray.Length; i++)
        {
            outputArray[i] = r.Next(minValue, maxValue);
        }

        return outputArray;
    }

    static void Main(string[] args)
    {
        var massiv = RandomArray(25, 0, 100);
        Console.WriteLine("Входные данные: {0}", string.Join(", ", massiv));
        Console.WriteLine("Отсортированный массив: {0}", string.Join(", ", QuickSort(massiv)));
        
        Console.ReadLine();
    }
}

Ответы (1 шт):

Автор решения: KuzCode
using System;

class quicker
{
    public int SwapCount { get; private set; } = 0

    static void Swap(ref int x, ref int y)
    {
        var t = x;
        
        x = y;
        y = t;
        
        SwapCount++;
    }

    // ...
}
→ Ссылка