๋ฐฐ์ด์ด๋?
๋ฐฐ์ด์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ์ ์ฐ์์ผ๋ก ๋ฃ์ด๋๋ ํํ๋ค. ๋งจ ์ฒซ๋ฒ์งธ ์นธ์ ์ฃผ์๋ง ๊ฐ์ง๊ณ ์์ผ๋ฉด ๊ทธ ๋ค์ ์นธ์ ์ฃผ์๋ ๋ฐ๋ก ์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฃผ์๋ก ๋ฐ๋ก ์ ๊ทผํด ๋น ๋ฅด๊ฒ ์ฝ์ ์ ์๋ค.
๋ฐฐ์ด์ ํ ๋นํ ๋๋ arr = a[8] ์ฒ๋ผ ๋ฉ๋ชจ๋ฆฌ์๊ฒ '์ผ๋ง๋งํผ' ์ฐ์์ ์ผ๋ก ์ฐจ์งํ ์ง ์๋ ค์ค์ผ ํ๋ค. ์ผ๋ถ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๊ธธ์ด๋ฅผ ์๋ ค์ฃผ์ง ์์๋ ๋ด๋ถ์ ์ผ๋ก ์์์ ํ ๋นํด์ฃผ๊ณ ํ์ฅํ๋ค.
๋ฐ์ดํฐ ์ ๊ทผ ์์๋ ์ฃผ์๋ฅผ ์ฐ์ง ์๊ณ arr[1] ์ฒ๋ผ ์ธ๋ฑ์ค๋ผ๋ 0๋ถํฐ ์์๋๋ ์ซ์๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐฐ์ด์ ์ด๋ฆ์ด ์ฒซ๋ฒ์งธ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , ์นธ๋ง๋ค +1 ๋๋ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด ๋ค์ ์ฃผ์๋ฅผ ์์๋ด๋ ๊ฒ์ด๋ค. ์ธ๋ฑ์ค๋ 0๋ถํฐ ์์ํ๊ธฐ ๋๋ฌธ์ length - 1 ๊น์ง๋ค.
๋ฐฐ์ด์ ์ฐ์ฐ
READ
์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ๋ฉด RAM์ ๋ฐ๋ก ์ ๊ทผํด ์ฝ์ ์ ์๋ค. array[n] ์ ๊ฐ์ ์ฐพ์๊ฐ๊ธฐ ์ํด ๋จ์ ๋ง์ ์ฐ์ฐ(+n)๋ง ์คํํ๋ฏ๋ก O(1) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
SEARCH
ํน์ ๊ฐ์ด ์ด๋์ ์๋์ง ์์๋ด๋ ค๋ฉด ๋ฐฐ์ด ๊ณต๊ฐ์ ํ์ํด์ผ ํ๋ค. ํ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์ํ๊ฒ ์๋๋ฐ, ์ ์ผ ๊ฐ๋จํ๊ฑด Linear Search ์ Binary Search ๋ค.
Linear Search
์ฒซ๋ฒ์งธ ์นธ๋ถํฐ ํ์นธ ํ์นธ ํ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฐพ๋ ๊ฐ์ด ์ฒซ๋ฒ์งธ์ ์๋ค๋ฉด ํ ๋ฒ์ ๋จ๊ณ๋ง ๊ฑฐ์น๋ฉด ๋์ง๋ง, ์ ์ผ ๋ง์ง๋ง ์นธ์ ์๋ค๋ฉด ์ต๋ ๊ธธ์ด๋งํผ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ฏ๋ก O(n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
Binary Search
์ด๋ฏธ ์ ๋ ฌ๋์ด ์๋ ๋ฐฐ์ด์ ์ค๊ฐ ๊ฐ์ ์ ํํด ๊ฒ์ ๊ฐ๋ณด๋ค ์๋ค๋ฉด ์ผ์ชฝ์ ์ค๊ฐ๊ฐ, ํฌ๋ค๋ฉด ์ค๋ฅธ์ชฝ์ ์ค๊ฐ๊ฐ์ ๋น๊ตํด ๋๊ฐ๋ฉฐ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋จ๊ณ๋ฅผ ๊ฑฐ์น ์๋ก ํด์ผ๋๋ ์์ ์ด ๋ฐ์ ๋ก ์ค์ด๋๋ O(log n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
INSERT
๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ๊ณต๊ฐ์ ํ๋ณดํ๊ธฐ ๋๋ฌธ์ ์ ํ์ ์ธ ๊ณต๊ฐ ์์์ insert ์์ ์ด ์ด๋ฃจ์ด์ง๋ค. ๋ฐฐ์ด์ ๋น ๊ณต๊ฐ์ด ์๊ณ ๋งจ ๋ง์ง๋ง์ ๋ฃ์ผ๋ฉด ๋๋ ๊ฒฝ์ฐ์๋ ๋์ ๋ฐ๋ก ๋ถ์ด๋ฉด ๋๋ค. ๋งจ ๋์ ์ธ๋ฑ์ค๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ก ์ฝ๊ฒ ์์๋ผ ์ ์์ผ๋ ์์ํ ์์ ์ด๋ค.
๋ฐฐ์ด์ ๋น ๊ณต๊ฐ์ด ์์ง๋ง ์ฒ์์ด๋ ์ค๊ฐ์ ๋ฃ์ด์ผ ํ๋ค๋ฉด, ์๋ฆฌ๋ฅผ ๋ง๋ จํ๊ธฐ ์ํด ๋ค์ชฝ ๋ฐ์ดํฐ๋ฅผ ํ์นธ ์ฉ ๋์ผ๋ก ์ด๋์์ผ์ผ ํ๋ค. ์ต์ ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์นธ์ ๋ฃ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ํ์นธ์ฉ ์ด๋์ํค๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก O(n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
์๋์ผ๋ก ํ์ฅ์์ผ์ฃผ์ง ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์๋ ๋ฐฐ์ด์ ๋น ๊ณต๊ฐ์ด ์๋ ๊ฒฝ์ฐ, ๋ ๊ธด ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด ๋ณต์ฌํ ๋ค์์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ผ ํ๋ค. ๊ธฐ์กด์ ์ฐ๋ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์๊ฒ ์ ์ด๋ค๊ณ ์๋ ค์ฃผ์ด์ผ ํ๋๋ฐ, ๋ด๋ถ์์ ์ ์ฐ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์๋์ผ๋ก ์ฒ๋ฆฌํด์ฃผ๋ ์ธ์ด๋ ์๊ณ ๊ฐ๋ฐ์๊ฐ ์ง์ ๋ฉ๋ชจ๋ฆฌ ์ ๋ฆฌ ํจ์๋ฅผ ์ด์ฉํด ์ฒ๋ฆฌํด์ฃผ๋ ์ธ์ด๋ ์๋ค.
DELETE
๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ํ๋ณดํด ๋๋๋ฐ, ์ค๊ฐ์ ๋น ๊ณต๊ฐ์ด ์๊ธฐ๋ฉด ๊ณต๊ฐ์ ๋นํจ์จ์ ์ผ๋ก ์ฐ๊ฒ ๋๋ ๋น๊ณต๊ฐ์ด ์๊ธฐ์ง ์๊ฒ ๊ด๋ฆฌ๋ฅผ ํด์ฃผ์ด์ผ ํ๋ค. ๋ฐฐ์ด ๋์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ๋๊ฑด ๊ฐ๋จํ๋ค. ์ค๊ฐ์ ๋น ๊ณต๊ฐ์ด ์ ์๊ธฐ๋ ๊ทธ๋ฅ ์ญ์ ํ๋ฉด ๋๋ค.
๋ฐฐ์ด์ ์ฒ์์ด๋ ์ค๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํด์ผ ํ๋ค๋ฉด ์ญ์ ํ์ ์๊ธฐ๋ ๋น๊ณต๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํด ๋ค์ชฝ ๋ฐ์ดํฐ๋ค์ ํ๋ํ๋ ์ด๋์์ผ์ผ ํ๋ค. ์ต์ ์ ๊ฒฝ์ฐ ์ฒซ ๋ฒ์งธ ์นธ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ์ ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ถ ํ์นธ์ฉ ์ด๋์ํค๋ ๊ฒฝ์ฐ์ด๋ฏ๋ก O(n) ์ ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
์ ๋ฆฌ
๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด RAM ์ ๋ฐ๋ก ์ ๊ทผํ ์ ์์ด์ READ๋ ์ ๋ง ๋น ๋ฅด๋ค.
๊ทธ๋ฐ๋ฐ ๊ณต๊ฐ์ ๋ฏธ๋ฆฌ ํ๋ณดํด์ผ ํ๊ณ , ์ค๊ฐ์ ๋น ๊ณต๊ฐ์ด ์๊ธฐ์ง ์๊ฒ ๊ด๋ฆฌํด์ค์ผ ํ๋ฏ๋ก DELETE, INSERT ์๋๋ ์๋์ ์ผ๋ก ๋๋ฆฌ๋ค. ๊ทธ๋ฌ๋ ๋ฐฐ์ด์ ๋งจ ๋์์๋ง READ, DELETE ์์ ์ ํ๋ ๊ฒฝ์ฐ์ ์ฐ๋ ๊ฒ ๊ฐ์ฅ ์ข๋ค.
๋ ๋ฐฐ์ด์ ๋๋ถ๋ถ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ๋์ด ์๋ ์๋ฃ๊ตฌ์กฐ๋ค. ๋ด๋ถ์ ์ผ๋ก ๋ค์ํ ์ฐ์ฐ์ ์ ๊ณตํด์ฃผ๋ ํด๋น ์ธ์ด์ ๋ฌธ์๋ฅผ ์ดํด๋ณด๋ฉด ์ข๋ค. ๋ฐฐ์ด์ ์ด์ฉํด ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๋ง๋ค๊ธฐ๋ ํ๋ค.