Dijkstra algorithm: directed, shortest path

๋‹ค์ต์ŠคํŠธ๋ผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๊ฐ„์„ ์— ๊ฐ€์ค‘์น˜๊ฐ€ ์žˆ๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„์—์„œ ์ตœ๋‹จ๊ฑฐ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋งŒ์•ฝ ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด ํ•˜๋‚˜์˜ ๊ฐ„์„ ์— ๋Œ€ํ•ด ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ด์–ด์ง€๋Š” ๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ๋ฌด๋ฐฉํ–ฅ ๊ทธ๋ž˜ํ”„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ฃผ์–ด์ง€๋Š” ๊ฒฝ์šฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์ธ์ ‘ ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ๋งŒ๋“ค์–ด์ค„ ํ•„์š”๊ฐ€ ์žˆ๋‹ค.

Dijkstra

Prim vs Dijkstra


Time: O(v^2 + e)

Space: O(V)

with out heap

With Priority Queue

With visited Array

Time: O((v + e)logv โ‡’ elogV)

Space: O(v)

using visited array not to add visited vertex

without visited Array

Last updated