최단 경로
`최단경로` 문제란 **두 노드를 잇는 가장 짧은 경로**를 찾는 문제다. **가중치가 있는 그래프**(Weighted graph)에서는 가중치의 합이 최소가 되는 경로를 찾는것이 목적이다.
Theory 태그가 포함된 포스트들입니다.
`최단경로` 문제란 **두 노드를 잇는 가장 짧은 경로**를 찾는 문제다. **가중치가 있는 그래프**(Weighted graph)에서는 가중치의 합이 최소가 되는 경로를 찾는것이 목적이다.
`방향 그래프`는 이름에서 알 수 있듯이 `방향`을 가지고 있다. 여기서 방향을 표현하는 `(u, v)`는 노드 u로부터 노드v로의 방향을 갖는데, 무방향 그래프와 다르게 `(u, v)`와 `(v, u)`는 서로 다르다.
`해쉬 테이블`은 `Dynamic Set`을 구현하는 효과적인 방법 중 하나이다. `적절한 가정` 하에서 평균적인 탐색, 삽입 삭제 시간은 `O(1)`을 갖는다. 하지만 보통 최악의 경우에는 `O(n)` 시간복잡도를 갖는다.
- `Dynamic Set`을 `트리`의 형태로 구현
**_계층적인 구조를 표현한다._**
앞서 몇 포스트에서 재귀와 관련된 고찰과 관련된 내용들을 스크랩 하여 게시한 적이 있다.
최근 업무를 하던 도중 노드의 트리구조를 __Recursion__ 을 사용해서 구현하는 코드를 보고 충격을 받았다.
- [적절한 예시와 함께 개념, 시간복잡도까지 설명](https://ratsgo.github.io/data%20structure&algorithm/2017/11/27/bellmanford/) but `V-1`(경로의 길이) 설명이 조금 아쉬움