๋ ์๋ฃ๊ตฌ์กฐ์ ์ฐจ์ด๋ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ์ ๊ธฐ์ธํ๋ค. ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ์์์ ์ฐ์์ , ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋น์ฐ์์ ์ผ๋ก ์ ์ฅํ๊ณ ์ด๊ฐ์ ๊ตฌ์กฐ ์ฐจ์ด๋ก ์ธํด operation ๊ตฌํ๋ฐฉ๋ฒ๊ณผ ์๊ฐ๋ณต์ก๋๊ฐ ๋ฌ๋ผ์ง๋ฉฐ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ๋์๋ ์ฐจ์ด๊ฐ ๋ฐ์ํ๋ค.
- ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ์์์ ์ฐ์์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ตฌ์กฐ์ธ ๋ฐ๋ฉด, ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฉ๋ชจ๋ฆฌ์์์ ๋น์ฐ์์ ์ด์ง๋ง, ๊ฐ ์์๊ฐ ๋ค์ ์์๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์๊ฐ์ ์ ์ฅํ์ฌ ๋ ผ๋ฆฌ์ ์ฐ์์ฑ์ ์ ์งํ๋ค.
- ์๋ก ๋ค๋ฅธ ์ฐ์์ฑ์ ์ฌ์ฉํ๊ธฐ์ ๊ฐ operation์ ์๊ฐ๋ณต์ก๋๊ฐ ๋ค๋ฅด๋ค.
Operation ๋ฐฐ์ด ๋งํฌ๋ ๋ฆฌ์คํธ Access(์กฐํ) O(1)
O(n)
Insertion(์ฝ์ ) O(n)
O(1)
Deletion(์ญ์ ) O(n)
O(1)
- ์ ์ฅํ ๋ฐ์ดํฐ์ ์๊ฐ ์ ํด์ ธ ์๊ณ , ์กฐํ๊ฐ ์์ฃผ ์ฌ์ฉ๋๋ค๋ฉด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํ๋ค.
- ์ ์ฅํ ๋ฐ์ดํฐ์ ์๊ฐ ๋ถํ์คํ๊ณ , ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ์ฆ๋ค๋ฉด ๋งํฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ ํฉํ๋ค.
- ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ์์์ ์ฐ์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์ ์ฅ๋ ๋ฐ์ดํฐ์ ์ฆ์ ์ ๊ทผ(Random Access
O(1)
)์ด ๊ฐ๋ฅํ๋ค. - ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฉ๋ชจ๋ฆฌ์์์ ๋ถ์ฐ์์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์์ฐจ ์ ๊ทผ(Sequential Access)๋ง ๊ฐ๋ฅํ๋ค. ํน์ ์ธ๋ฑ์ค์ ๋ฐ์ดํฐ ์กฐํ๋ฅผ ์ํด์๋
O(n)
์ ์๊ฐ์ด ์๋ชจ๋๋ค.
- ๋ฐฐ์ด์ ๋งจ ๋ง์ง๋ง ์์์ ์ถ๊ฐ/์ญ์ ์ ๊ฒฝ์ฐ
O(1)
์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ํ์ง๋ง ๊ทธ ์ธ ์์์ ์ถ๊ฐ/์ญ์ ์ ๊ฒฝ์ฐ ์ฝ์ /์ญ์ ๋ฅผ ์งํํ๋ ์์๋ณด๋ค ํฐ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๋ ์์๋ค์ ํ ์นธ์ฉ shiftํ๋ ๋น์ฉ(cost)์ด ๋ฐ์ํ๋ค. ์ด ๊ฒฝ์ฐ์๋O(n)
์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. - ๋งํฌ๋ ๋ฆฌ์คํธ๋ ์ด๋ค ์์์ ์ถ๊ฐ/์ญ์ ๋ผ๋ ๋
ธ๋์ ํฌ์ธํฐ ์ฃผ์๊ฐ๋ง ๋ณ๊ฒฝํ๋ฉด ๋๊ธฐ์ shift๊ฐ ํ์ ์๋ค. ๋ฐ๋ผ์
O(1)
์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ๊ทธ๋ฌ๋ ๋งํฌ๋ ๋ฆฌ์คํธ๋ ์ถ๊ฐ/์ญ์ ๋ฅผ ํ๋ ค๋ ์ธ๋ฑ์ค๊น์ง ๋๋ฌํ๋๋ฐO(n)
์ ์๊ฐ์ด ์๋ชจ๋๊ธฐ์ ์ค์ง์ ์ผ๋ก ๋งํฌ๋ ๋ฆฌ์คํธ ์ญ์ ์ถ๊ฐ/์ญ์ ์ํ์O(n)
์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค๊ณ ๋ณผ ์ ์๋ค.
- ๋ฐฐ์ด์ ์ฃผ์ ์ฅ์ ์ ๋ฐ์ดํฐ ์ ๊ทผ๊ณผ append๊ฐ ๋น ๋ฅด๋ค๋ ์ ์ด๋ค. ๊ทธ๋ฌ๋ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ผ๋ ๋จ์ ๋ ์๋ค. ๋ฐฐ์ด์ ์ ์ธ์ fixed size๋ฅผ ์ค์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ์ํํ๋ค. ์ฆ, ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์์ง ์์๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ ํ๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ๋ค.
- ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฐํ์(ํ๋ก๊ทธ๋จ ์คํ)์ค์์๋ ํฌ๊ธฐ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค. ๋ฐ๋ผ์ initial size๋ฅผ ๊ณ ๋ฏผํ์ง ์๊ณ ํ์ํ ๋งํผ memory allocation์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ์๋ค.
- ๋ฐฐ์ด์ ์ปดํ์ผ ๋จ๊ณ์์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ผ์ด๋๋ค. ์ด๋ฅผ ์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(Static Memory Allocation)์ด๋ผ๊ณ ํ๋ค. ์ด ๊ฒฝ์ฐ ์คํ(Stack) ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋๋ค.
- ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฐํ์ ๋จ๊ณ์์ ์๋ก์ด ๋ ธ๋๊ฐ ์ถ๊ฐ๋ ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ผ์ด๋๋ค. ์ด๋ฅผ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น(Dynamic Memory Allocation)์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด ๊ฒฝ์ฐ ํ(Heap) ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋๋ค.
- ์กฐํ ์์ ์ ์์ฃผ ํด์ผํ ๋
- ๋ฐฐ์ด์ ์ ์ธํ ๋น์ ๋ฐ์ดํฐ์ ์๋ฅผ ๋ฏธ๋ฆฌ ์๊ณ ์์ ๋
- ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ณต๋ฌธ์ ํตํด ๋น ๋ฅด๊ฒ ์ํํ ๋
- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๊ฒ ์ฐ๋ ๊ฒ์ด ์ค์ํ ์ํฉ์ผ ๋. ๋งํฌ๋ ๋ฆฌ์คํธ๋ณด๋ค ๋ฐฐ์ด์ด ๋จ์ผ ๋ฐ์ดํฐ์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด ์ ๊ธฐ ๋๋ฌธ์ ๋ฏธ๋ฆฌ ๋ค์ด์ฌ ๋ฐ์ดํฐ์ ์์ ์๊ณ ์๋ค๋ฉด ๋ฐฐ์ด์ด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ค.
O(1)
์ผ๋ก ์ฝ์ /์ญ์ ๋ฅผ ์์ฃผ ํด์ผํ ๋- ๋ฐ์ดํฐ์ ์์ ์์ธกํ ์ ์์ ๋
- ์กฐํ ์์ ์ด ๋๋ฌผ ๋