๐ง ๋ช ์์ ๋ฆฌ์คํธ(Explicit List)
๋ฌต์์ ๋ฆฌ์คํธ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ฐ๋จํ์ง๋ง, ๋ธ๋ก ํ ๋น ์๊ฐ์ด ์ ์ฒด ํ ๋ธ๋ก์ ์์ ๋น๋กํ๊ธฐ ๋๋ฌธ์ ๋๋ฆฌ๋ค๋ ๋จ์ ์ด ์์์ต๋๋ค.
์ด ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด์ ๋ช ์์ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ช ์์ ๋ฆฌ์คํธ ๋ฐฉ์์ ๊ฐ์ฉ ๋ธ๋ก๋ค์ ์ด์ ๊ฐ์ฉ ๋ธ๋ญ๊ณผ ๋ค์ ๊ฐ์ฉ ๋ธ๋ญ์ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง ์ผ์ข ์ ์ด์ค ์ฐ๊ฒฐ ๋งํฌ๋ ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๋ก ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๊ฐ์ฉ ๋ธ๋ญ์ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉ๋์ง ์๊ธฐ ๋๋ฌธ์, ํด๋น ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ตฌํํ๋ ํฌ์ธํฐ๋ค์ ๊ฐ์ฉ ๋ธ๋ก์ ๋ณธ์ฒด ๋ด์ ์ ์ฅ๋ ์ ์์ต๋๋ค.
์ ๊ทธ๋ฆผ์์์ฒ๋ผ ๊ฐ ๊ฐ์ฉ ๋ธ๋ก ๋ด์ pred(predeccesor)์ succ(successor) ํฌ์ธํฐ๋ฅผ ํฌํจํ๋ ์ด์ค ์ฐ๊ฒฐ ๊ฐ์ฉ ๋ฆฌ์คํธ๋ก ๊ตฌ์ฑ๋ ์ ์์ต๋๋ค.
ํ ๋น๋ ๋ธ๋ก์ ๊ตฌ์กฐ๋ ๋ฌต์์ ๋ฆฌ์คํธ ๋ฐฉ์๊ณผ ๋์ผํ๋ฉฐ, ๋จ์ง ๊ฐ์ฉ ๋ธ๋ก์ ๊ตฌ์กฐ๋ง ๋ฐ๋๋ ๊ฒ์ ์ ์ํ์ฌ์ผ ํฉ๋๋ค.
๋ฌต์์ ๊ฐ์ฉ ๋ฆฌ์คํธ ๋์ ์ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ฉด first fit ํ ๋น ์๊ฐ์ ์ ์ฒด ๋ธ๋ก ์์ ๋น๋กํ๋ ๊ฒ์์ ๊ฐ์ฉ ๋ธ๋ก์ ์์ ๋น๋กํ๋ ๊ฒ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ธ๋ก์ ๋ฐํ(free) ์์๋ ๊ฐ์ฉ ๋ฆฌ์คํธ ๋ด์์ ๋ธ๋ก์ ์ ๋ ฌํ๋ ๋ฐฉ์์ ๋ฐ๋ผ, ๋ธ๋ก์ ์์ ๋น๋กํ๊ฑฐ๋ ์์ ์๊ฐ์ ๊ฐ์ง ์ ์์ต๋๋ค.
์ด์ ๋ํด ์ดํด๋ณด๊ธฐ ์ ์ ๋ช ์์ ๋ฆฌ์คํธ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋จํ ์ดํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ง ๋ช ์์ ๋ฆฌ์คํธ์ ๊ตฌ์กฐ
๋ช ์์ ๋ฆฌ์คํธ๋ ๋ ผ๋ฆฌ์ ์ผ๋ก๋ ๋ค์๊ณผ ๊ฐ์ด ์ด์ด์ง ํํ๋ก ๋์ด ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ค์ ์ค์ ์ฐ๊ฒฐ ํํ๋ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์์์๋ ๋ฌด๊ดํ๋ฉฐ, ๋ค์๊ณผ ๊ฐ์ต๋๋ค
๐ง ๋ช ์์ ๊ฐ์ฉ ๋ฆฌ์คํธ์์์ ๋ธ๋ก ๋ฐํ(free) ๋ฐฉ๋ฒ
๐ LIFO(Last-In-First-Out) ์ ์ฑ
์๋ก ๋ฐํํ ๋ธ๋ก๋ค์ ๋ช ์์ ๊ฐ์ฉ ๋ฆฌ์คํธ์ ์์ ๋ถ๋ถ์ ์ฝ์ ํ๋ ๋ฐฉ์์ ํตํด ํ์ ์ ์ถ(LIFO) ์์๋ก ์ ์งํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
LIFO ์์์ first-fit ๋ฐฐ์น ์ ์ฑ ์ ์ฌ์ฉํ๋ฉด, ํ ๋น๊ธฐ๋ ๋๋ถ๋ถ ์ต๊ทผ์ ์ฌ์ฉ๋ ๋ธ๋ก๋ค์ ๋จผ์ ์กฐ์ฌํ๊ฒ ๋ฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๋ธ๋ก์ ๋ฐํ์ ์์ ์๊ฐ์ ์ํ๋๋ฉฐ, ๊ฒฝ๊ณ ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ coalescing๋ ์์ ์๊ฐ์ ์ํ๋ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ ํํธํ๊ฐ ์๋์์ ๋์ฌ ์ฃผ์ ์ ๋ ฌ ์ ์ฑ ๋ณด๋ค ๋๋น ์ง๋ค๊ณ ํฉ๋๋ค.
free ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
case 1 : ๋ฐํํ๋ ๋ธ๋ก์ ๋ฆฌ์คํธ ๋งจ ์์ ์ถ๊ฐ
case 2 : ์ด์ ๋ธ๋ก๊ณผ ์ฐ๊ฒฐํ ํ ์ ๋ธ๋ก์ Root ๋ ธ๋๋ก ๋ง๋ ๋ค.
case 3 : ๋ค์ ๋ธ๋ก๊ณผ ์ฐ๊ฒฐํ ํ ์ ๋ธ๋ก์ Root ๋ ธ๋๋ก ๋ง๋ ๋ค.
case 4 : ์, ๋ค ๋ธ๋ก๊ณผ ๋ชจ๋ ์ฐ๊ฒฐํ ํ ์ ๋ธ๋ก์ Root ๋ ธ๋๋ก ๋ง๋ ๋ค.
๐ ์ฃผ์ ์ ๋ ฌ ์ ์ฑ
๋ช ์์ ๊ฐ์ฉ ๋ฆฌ์คํธ๋ฅผ ์ฃผ์ ์์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ผ๋ก, ๋ฆฌ์คํธ ๋ด์ ๊ฐ ๋ธ๋ก์ ์ฃผ์๊ฐ ๋ค์ ๋ธ๋ก์ ์ฃผ์๋ณด๋ค ์๋๋ก ์ ์งํฉ๋๋ค.
์ด ๊ฒฝ์ฐ ๋ธ๋ก์ ๋ฐํ์ ์ ๋นํ ์ ํ๋ธ๋ก์ ์ฐพ๋๋ฐ ์ ํ ๊ฒ์ ์๊ฐ($O(n)$)์ ํ์๋ก ํฉ๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฅผ first-fit ์ ์ฑ ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ค๋ฉด best-fit๊ณผ ๋น์ทํ ์์ค์ผ๋ก ํํธํ๋ฅผ ์๋ฐฉํ ์ ์์ต๋๋ค.
๐ง ๋ช ์์ ๊ฐ์ฉ ๋ฆฌ์คํธ์ ์ฅ๋จ์
์ฅ์ ์ผ๋ก๋ ํ ๋น์๊ฐ์ด ์ ์ฒด ๋ธ๋ก์ ์๊ฐ ์๋๋ผ ๊ฐ์ฉ ๋ธ๋ก์ ์์ ๋น๋กํ๋ค๋ ์ฅ์ ์ด ์์ต๋๋ค.
(๋ฌต์์ ๋ฆฌ์คํธ์ ๊ฒฝ์ฐ์๋ ์ ์ฒด ๋ธ๋ก์ ์์ ๋น๋กํ์์ต๋๋ค.)
๊ทธ๋ฌ๋ ์ด์ค ์ฐ๊ฒฐ์ ํ๊ธฐ ์ํด ๊ฐ์ฉ ๋ธ๋ก์ ๋ํด์ฌ ์ถ๊ฐ์ ์ธ ๊ณต๊ฐ์ด ํ์ํ๋ค๋ ๋จ์ ์ด ์กด์ฌํฉ๋๋ค.
๋ฐ๋ผ์ ์ต์ ๋ธ๋ก์ ํฌ๊ธฐ๊ฐ ์ปค์ง๊ณ , ์ ์ฌ์ ์ผ๋ก ๋ด๋ถ ๋จํธํ ๊ฐ๋ฅ์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
๋ํ ํ ๋น๊ณผ ๋ฐํ๊ณผ์ ์ด ๋ฌต์์ ๋ฆฌ์คํธ์ ๋นํด ๋ ๋ณต์กํฉ๋๋ค.
ํนํ ๋ฐํ ์ ์ฑ ์ผ๋ก ์ฃผ์์ ๋ ฌ ๋ฐฉ์์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ํ ์๊ฐ($O(n)$)์ด ์์๋ฉ๋๋ค.