Najdłuższa ścieżka w DAG

Aby znaleźć najdłuższą ścieżkę w DAG, zdaję sobie sprawę z 2 algorytmów: algo 1: wykonaj sortowanie topologiczne + użyj dynamicznego programowania w wyniku sortowania ~ lub ~ algo 2: wylicz wszystkie ścieżki w DAG przy użyciu DFS, i nagrywaj najdłużej. Wydaje się, że wyliczenie wszystkich ścieżek z DFS ma lepszą złożoność niż algo 1. Czy to prawda?