Data structure
[자료구조] 인접행렬 과 인접리스트
배준오
2023. 3. 26. 12:50
반응형
📘 자료구조 노트
그래프관련 문제를 풀 때 문제에 조건에 맞게 그래프를 구현하고 푸는게 일반적입니다.
이 때, 그래프의 연결관계를 나타내는 두 가지 방식이 있습니다.
인접행렬
이와 같은 그래프가 있다고 했을 때 인접 행렬은
다음과 같은 대칭 행렬 형태로 표현됩니다.
그러므로
꼭짓점의 개수를 n이라고 할 때 인접 행렬은 O(n^2)의 공간 복잡도 를 갖습니다.
인접행렬의 특징
- 원소에 접근하는데 걸리는 시간이 상수 시간(1)이라면 꼭짓점 i에서 j로 가는 변이 있는지를 상수 시간에 알 수 있습니다.(O(1))
- 하지만, 그래프에 존재하는 모든 간선의 수는 O(n^2) 안에 알 수있습니다.
인접 리스트
이와 같은 그래프가 있다고 했을 때 인접 그래프는
다음과 같은 연결 리스트로 표현됩니다.
꼭지점의 개수를 n 간선의 개수를 e라고 할 때 인접 리스트는 O(n+e)의 공간 복잡도를 갖습니다.
인접 리스트의 특징
- 그래프 내에 간선의 숫자가 적은 희소 그래프(Sparse Graph)의 경우 많이 씀
- 그래프에 존재하는 모든 간선의 수는 O(n+e) 안에 알 수있습니다.
- 하지만, 두 정점 사이에 간선으 ㅣ존재 여부는 해당 정점의 차수만큼의 시간이 필요합니다.
반응형