LINUX.ORG.RU

История изменений

Исправление KennyMinigun, (текущая версия) :

2) по запросу: для данных двух файлов просто сверяешь их массивы на предмет общего элемента

Это надо делать рекурсивно. Каждый раз. Потому не эффективно.

К примеру ситуация:

bar.h # цикл 
  |
foo.h
  \
  bar.h  baz.h
    \     /
    baz.cpp

f(foo.h, baz.h) == true

Я сейчас пытаюсь выровнять граф до леса деревьев по 1 уровню:

bar.h foo.h baz.h    bar.h  foo.h
  \    |   /           |   /
   baz.cpp           foo.h

С такой структурой проверка f(x,y) будет О(1) (не считая поиска нужного дерева)

Исходная версия KennyMinigun, :

2) по запросу: для данных двух файлов просто сверяешь их массивы на предмет общего элемента

Это надо делать рекурсивно. Каждый раз. Потому не эффективно.

К примеру ситуация:

bar.h # цикл 
  |
foo.h
  \
  bar.h  baz.h
    \     /
    baz.cpp

f(foo.h, baz.h) == true

Я сейчас пытаюсь выровнять граф до леса деревьев по 1 уровню:

bar.h foo.h baz.h    bar.h  foo.h
  \    |   /           |   /
   baz.cpp           foo.h

С такой структурой проверка f(x,y) будет О(1)