위상정렬
-
위상정렬 정리Algorithm 2021. 6. 26. 20:47
위상정렬 (Topological Sort) 위상 정렬은 선행 조건들을 가진 일들의 수행 순서를 정한다. 이 순서는 일들의 선행 조건들을 만족시켜야 한다. 예시를 들어보자. 한 학과의 학생들이 수강해야만 하는 7개의 필수 과목들이 있다. (1~7) 어떤순서로 강의를 수강해도 상관이 없지만, 선후수 관계는 만족시켜야한다. 2의 선수과목은 1 4의 선수과목은 1, 2, 3 5의 선수과목은 3 6의 선수과목은 2, 4, 5 7의 선수과목은 5, 6 이 순서에서 그래프의 각 간선 (v, w) 에 대해 v가 w보다 먼저 나와야한다. 이와 같은 순서를 찾는것이 위상정렬 이다. 조건 주어진 방향 그래프에 순환이 없어야 한다. (directed acyclic graph, DAG) Queue를 이용한 방법 진입차수가 0인..