Вот код, который я реализовал в двух словах. Два внутренних цикла должны иметь сложность O(n2) where n=vertices
. Я просто не могу понять общую сложность времени по внешнему циклу. Я думаю, что это будет O(E * n2) where E is the number of edges and n is the number of vertices
.Анализ сложности времени алгоритма (три вложенных цикла)
int vertices;
for(int Edges = 0; Edges < vertices-1 ; Edge++)
{
for (int i=0; i< vertices; i++)
for (int j=0; j<vertices; j++)
{
// TASKS
}
}
Этот код предназначен для примитивного алгоритма. Я могу опубликовать весь код, если вы хотите. Спасибо :)
не должен он O (E * n2), где E - число ребер, n - число вершин? Извините, сэр. Я новичок. – user3490561
@ user3490561- nO. Общее количество итераций будет определять сложность. Вы можете сказать, что он работает O (n^2 * E), но сам E сам повторяется от 0 до итераций VERTICES-1. И, пожалуйста, повторите мой ответ. Кроме того, я студент, как вы, а не сэр. Пожалуйста, будьте спокойны со мной. –
Вы имеете в виду, что константы выбрасываются, таким образом (ВЕРТИКИ-1) становится (ВЕРТИКАМИ). Соответственно, O (ВЕРТИКИ * ВЕРТИКИ * ВЕРТИКИ) = O (Вершины^3) – user3490561