我正在分析排序算法,我遇到了一个快速排序的问题在网上查找一些图表时,我发现我的图表与其他图表明显不同,我想知道原因。
这是我的代码:

static int Particao(int[] vet, int min, int max, int modo)
{
    int i = min;
    int j = max;
    int pivot;

    if (modo == 0)
        pivot = vet[(min + max) / 2];
    else
        pivot = vet[min];
    while (i <= j)
    {
        while (vet[i] < pivot)
            i++;
        while (vet[j] > pivot)
            j--;
        if (i <= j)
        {
            int aux = vet[i];
            vet[i] = vet[j];
            vet[j] = aux;
            i++;
            j--;
        }
    };

    return i;
}

static void QuickSort(int[] vet, int ini, int fim)
{
    int pivo = Particao(vet, ini, fim, 0);

    if (ini < pivo - 1)
        QuickSort(vet, ini, pivo - 1);
    if (pivo < fim)
        QuickSort(vet, pivo, fim);

}

我的图表(时间以毫秒为单位,乘以1000):
c# - QuickSort错误的C#复杂性-LMLPHP
谢谢=)

最佳答案

由于测量的不同,你的图表与其他图表不同。
其他的图表有更多的数据点和许多平均测量值以避免误差。
你的图表只有6个数据点,每个数据点有1个测量值,从中很难得出任何结论。
或许你可以衡量互换或比较的数量,并由此推断出一个图表?

关于c# - QuickSort错误的C#复杂性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58575808/

10-11 19:25