Вибрати довільну вершину v не з S. Виконати пошук в глибину від v. По завершені пошуку в глибину для кожної вершини u, заштовхуємо u на S.
Обернути всі ребра для отримання транспонованого графа.
Доки S непорожній (містить вершину в порядку завершення, на верхівці стека — останнє завершення пошуку в глибину):
Виштовхнути вершину v з S. Виконати пошук в глибину від v. Набір відвіданих вершин дасть компоненту сильної зв'язності, що містить v; записати це і видалити всі ці вершини з графа G і стека S. Так само можна використати пошук в ширину.
Лема
Розглянемо дві суміжні компоненти сильної зв'язності в G (зображення праворуч). Нехай f(v) — порядок завершення для вершини v в DFS-циклі. Тоді:
Доведення послуговується фактом, що мета-граф (ущільнений граф) такий, в якому всі компоненти сильної зв'язності стягнуті до однієї вершини є ациклічним.
Наслідок: найбільше значення f матиме в компоненті-джерелі (англ.source SCC), тобто вершина лежатиме на верхівці стека.
Складність
Якщо на вході граф описаний за допомогою списком суміжності[en], алгоритм виконує два повних обходи графа, отже виконується за Θ(V+E) (лінійний) час, який є оптимальним, бо збігається з нижньою межею (кожен алгоритм повинен обійти всі вершини і ребра). Це концептуально найпростіший ефективний алгоритм, але не настільки швидкий як алгоритм Тарджана і алгоритм компонент сильної зв'язності по шляхах, які виконують лише один обхід графа.
Якщо граф представлено через матрицю суміжності, алгоритм потребує час Ο(V2).