Какова временная сложность этого алгоритма и является ли он правильным? - PullRequest
0 голосов
/ 10 декабря 2018

Это алгоритм, который я написал, чтобы найти хроматическое число графа.У меня проблемы с выяснением временной сложности этого алгоритма.Поскольку у меня есть 3 вложенных цикла, я считаю, что временная сложность составляет не менее n³.Поскольку я также перебираю края каждой отдельной вершины, будет ли это что-то около O (n2ⁿ)?Также будет ли этот алгоритм правильным?

int ChromaticNumber()
{
    for (int i = 0; i < Vertices.size(); ++i)
    {
        ++Vertices[i].Color;
        bool Ok = false;

        while (!Ok)
        {
            Ok = true;

            for (int j = 0; j < Vertices[i].Edges.size(); ++j)
            {
                int AdjacentVertex = Vertices[i].Edges[j];

                if (Vertices[i].Color == Vertices[AdjacentVertex].Color)
                {
                    ++Vertices[i].Color;
                    Ok = false;
                }
            }
        }
    }

    int MaxColor = 0;

    for (int i = 0; i < Vertices.size(); ++i)
    {
        if (Vertices[i].Color > MaxColor)
            MaxColor = Vertices[i].Color;
    }

    return MaxColor;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...