Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 백준 1406
- 버킷 정렬
- 자료구조
- Stack 이란
- 게리멘더링2
- 백준 5397
- 1764
- 해시구현
- 백준 17822
- c#
- 백준 2447
- 해시 구현
- qorwns
- 풀이
- dfs
- AVL 시간 복잡도
- 백준 17471
- heap
- 5397
- C/C++ 구현
- ㅣ풀이
- 백준
- 시간 복잡도
- 조세퍼스 순열
- 백준 17779
- 별 찍기 10
- 백준 1158
- 원판 돌리기
- 구현
- 스택의 특징
Archives
- Today
- Total
홍시홍의 프로그래밍
코사라주 알고리즘(시간복잡도, 구현 방법, 준비 사항) 본문
코사라주 알고리즘
강한 연결 요소(SCC)를 구하는 것이다
SCC란 사이클을 가지는 정점의 집합이다ㅣ
시간복잡도
코사라주 알고리즘은 dfs를 기반으로 한다
인접리스트의 경우 O(V+E)로 가능하다
준비 사항
코사라주 알고리즘을 실행하기 위해서는
그래프
역방향 그래프
stack
세가지가 필요하다
구현 방법
1. 역방향 그래프를 구한다
2. 원래 그래프에서 dfs를 실시한다
3. dfs가 끝나는 대로 stack에 정점을 넣을 수 있도록 한다.
4. stack에 끝에서 부터 역방향 그래프로 dfs를 실시한다
5. 종료 되거나 방문되지 않는 것들끼리 엮어져 있는것이 SCC가 된다
아래 글이 도움이 되었다
https://wondy1128.tistory.com/130
'알고리즘' 카테고리의 다른 글
[알고리즘] 벨만포드 (특징, 시간복잡도, 구현 방법) (0) | 2020.06.11 |
---|---|
[알고리즘] 프림 알고리즘(시간 복잡도, 구현방법, 특징) (0) | 2020.06.11 |
위상 정렬(사용하는 이유, 특징, 구현, 시간 복잡도) (0) | 2020.06.10 |
셸 정렬(정의, 구현방법, 장점 및 시간복잡도) (0) | 2020.06.09 |
[알고리즘] MST, 최소 스패닝 트리(특징, 구현방법, 시간복잡도) (0) | 2020.05.28 |
Comments