[자료구조] 다익스트라 알고리즘 (길찾기)
·
개발/자료구조
1. 다익스트라 알고리즘 다익스트라의 이름을 딴 알고리즘으로 그래프의 두 정점사이에 존재하는 최단경로를 찾는 알고리즘이다. 그래프를 가로지르면서 순회하고 우선순위큐를 사용한다. gps, 네트워크 라우팅, 전염병 등등 많은 부분에서 씅니다. 2. 우선순위큐 class PriorityQueue { constructor() { this.values = []; } enqueue(val, priority) { this.values.push({ val, priority }); this.sort(); } dequeue() { return this.values.shift(); } sort() { this.values.sort((a, b) => a.priority - b.priority); } } 3. 다익스트라 알고리..
[자료구조] 우선순위큐
·
개발/자료구조
[자료구조] 이진힙 - BinaryHeap 1. 이진힙이란? 힙이란 모양은 트리와 같다. 트리와는 다르게 힙은 부모와 자식간의 규칙이 있다는 것이다. 최대 이진힙에서는 부모노드가 항상 자식노드보다 큰 값을 가진다. 왼쪽이나 오른쪽 diary-blockchain.tistory.com 1. 우선순위큐 리스트 또는 구조 즉 우리가 데이터를 저장한곳에서 한번에 하나씩 요소를 가지고 온다. 한번에 하나씩 처리를 한 다음에 그 다음것을 처리하게 되는데 병원에 있는 응급실과 비슷하다. 많은 사람들이 대기하고 있고 모두에게는 어느정도의 우선순위가 부여된다. 그러면 간호사나 의사가 와서 한번에 한사람을 그 우선순위에 따라 데려가는것이다. 서로 다른 우선순위를 가지는 데이터나 정보를 관리할 필요가 있거나 무언가를 입력하는..