-
위상 정렬Algorithms in Python/notes 2021. 2. 7. 08:40
위상 정렬(Topology Sort) 위상 정렬은 순서가 정해져 잇는 일련의 작업을 차례때로 수행해야 할 때 사용할 수 있는 알고리즘이다. 방향 그래프의 모든 노드를 '방향성에 거스르지 않도록 순서대로 나열하는 것이다. 위상 정렬 알고리즘 1. 진입차수가 0인 노드를 큐에 넣는다 2. 큐가 빌 때까지 다음의 과정을 반복한다. - 큐에서 원소를 꺼내 해당 노드에서 출발하는 간선을 그래프에서 제거한다. - 새롭게 진입차수가 0이 된 노드를 큐에 넣는다. * 진입차수가 0인 것이 없으면(큐가 빈 경우) 사이클을 포함한 것으로 해가 존재하지 않는다. * 한 특정 지접에서 2개 이상의 노드가 큐에 한꺼번에 들어갈 때는, 정렬 결과가 여러가지라는 의미이다. • 위상 정렬 소스코드 from collections im..