์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ
์ธ๋ฑ์ค๋ฅผ ํตํด ํด๋น ์์์ ์ ๊ทผํ ์ ์๋ค. (O(1))- ์ฆ
random access๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ฆ
- ๊ณ ์ ๋ ํฌ๊ธฐ๋ฅผ ๊ฐ๋ ๊ฐ์ ์๋ฃํ์ ์์๋ค์ด ์ฐ์์ ์ธ ํํ๋ก ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ
cache hit rate๊ฐ ๋๋ค.- ๋ฐฐ์ด์ ์์ฑํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์ํ ๊ตฌ๊ฐ์ ํ ๋นํด์ผํด์ ํ ๋น์ ์ ์ฝ์ด ๊ฑธ๋ฆด ์ ์๋ค.
- ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์์๋ค์ด ์กด์ฌํ๋ฏ๋ก ์ฒ์ ๋ฐฐ์ด์ ์ ์ธํ ํฌ๊ธฐ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ๋ค.
- Array์ ์ค๊ฐ ์์๋ฅผ ์ญ์ /์ฝ์
ํ๋ ๊ฒฝ์ฐ, ๋ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ /์ฝ์
ํ ์์ ์ ๋งํผ
shiftํด์ค์ผ ํ๋ ๋น์ฉ์ด ๋ฐ์ํ๋ค. (O(n))
๋ฐ์ดํฐ๋ฅผ ์๋ก ์ถ๊ฐํ ๋ Resizing ๋ฌธ์ (๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ด์ฆ๋ฅผ ๋ค์ ์กฐ์ ํ๋ ๋ฌธ์ )๊ฐ ์๊ธธ ์ ์๋ค. - ๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ทธ๋๋ก ๋๊ณ - ์๋ก์ด ๊ธธ์ด๋ก ์ง์ ๋ ๋ฐฐ์ด์ ๋ฐ๋ก ํ ๋น ํ - ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ์ ๋ณต์ฌ๋ฅผ ์งํํ๊ณ - ๊ธฐ์กด์ ๋ฐฐ์ด์ ์ญ์
์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋ชจ์์ด๋ค. ๋ค๋ฅธ ๋ง๋ก๋ ์ํ์ค(sequence)๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๋ฐฐ์ด์ ์ด์ฉํด์ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ ๊ฒ์ ์๋ฏธํ๋ค. ์ฅ์ : ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ์ ๊ทผํ๋ ๊ฒ์ด ๋น ๋ฅด๋ค. ๋จ์ : ๋ฐ์ดํฐ์ ์ถ๊ฐ์ ์ญ์ ๊ฐ ๋๋ฆฌ๋ค. + Dynamic Array ๋ฌธ์
๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ํน์ ํ ์ฐ๊ฒฐ๋ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๊ณ , ๋งํฌ๋ ๋ฆฌ์คํธ๋ ํ์ํ ๋ ๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค. ๋ฐฐ์ด์ ๋จ์ ์ ๊ทน๋ณตํ ์๋ฃ๊ตฌ์กฐ๊ฐ ๋งํฌ๋ ๋ฆฌ์คํธ๋ผ๊ณ ๋ณผ ์ ์๋ค.
- ๊ฐ ๋
ธ๋๋ ์ฐ์๋ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ๋ถ๋ถ์ ๋ถํฌ๋์ด ์๋ค.
- ์์ฐจ์ฑ์ ๋ณด์ฅํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ spacial locality ๋ณด์ฅ์ด ๋์ง ์์ cache hit๊ฐ ์ด๋ ต๋ค.
- ๊ฐ ๋ ธ๋์ ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ์ ์ฅํจ์ผ๋ก์จ ๋ค์ ๋ ธ๋๋ฅผ ํ์ํ ์ ์๋ค.
- ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
- ์์ฐจ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์ํด์ผ ํ๋ค. (
O(n)) - ์ฝ์
/์ญ์ :
O(1) - ์ํ๋ ๋
ธ๋์ ์ ๊ทผ + ์ฝ์
/์ญ์ :
O(n)
Array vs LinkedList
- Array๋ Random Access๋ฅผ ์ง์ํ๋ค. ์์๋ค์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ง์ ์ ๊ทผํ ์ ์๋ค. ๋ฐ๋ผ์ ํน์ ์์์ ์ ๊ทผํ๋ ์๊ฐ ๋ณต์ก๋๋ O(1)์ด๋ค. ๋ฐ๋ฉด Linkedlist๋ Sequential Access๋ฅผ ์ง์ํ๋ค. ์ด๋ค ์์๋ฅผ ์ ๊ทผํ ๋ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ๋ฉฐ ์ฐพ์์ผ ํ๋ค. ๋ฐ๋ผ์ ํน์ ์์์ ์ ๊ทผํ ๋ ์๊ฐ ๋ณต์ก๋๋ O(N)์ด๋ค.-
์ ์ฅ ๋ฐฉ์๋ ๋ฐฐ์ด์์ ์์๋ค์ ์ธ์ ํ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ฐ์ด์ด ์ ์ฅ๋๋ค. ๋ฐ๋ฉด Linkedlist์์๋ ์๋ก์ด ์์์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์น ์ฃผ์๊ฐ linkedlist์ ์ด์ ์์์ ์ ์ฅ๋๋ค.
-
๋ฐฐ์ด์์ ์ฝ์ ๊ณผ ์ญ์ ๋ O(N)์ด ์์๋์ง๋ง, Linkedlist์์ ์ฝ์ ๊ณผ ์ญ์ ๋ O(1)์ด ์์๋๋ค.
-
๋ฐฐ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ์ธ ์ ์ปดํ์ผ ํ์์ ํ ๋น์ด ๋๋ค. (์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น) ๋ฐ๋ฉด Linkedlist์์๋ ์๋ก์ด ์์๊ฐ ์ถ๊ฐ๋ ๋ ๋ฐํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค. (๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น)
-
๋ฐฐ์ด์ Stack ์น์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ค. ๋ฐ๋ฉด Linkedlist๋ Heap ์น์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ค.