๊ฒ์
์ปดํจํฐ ๊ณผํ์์ ๊ฒ์์ด๋ ์์ดํ
์ ์งํฉ ์ค์์ ํน์ ํ ์์ฑ์ ๊ฐ์ง ํ ์์ดํ
์ ์ฐพ๋ ๊ณผ์ .
๊ทธ๋์ ๊ฒ์์ ํต์ฌ์ ์ธ ์ปดํจํฐ ๊ณผํ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค.
์์ดํ
์ ์๊ฐ ๋งค์ฐ ๋ง์ ์ปดํจํฐ์ ํน์ฑ์ ๋งค์ฐ ํจ์จ์ ์ธ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ด ํ์ํ๊ฒ ๋๋ค.
๋ํ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ดํ
์ ์ ์ ๋ ฌํ๋๊ฒ๋ ๊ฒ์ ํจ์จ์ ํฌ๊ฒ ํฅ์์ํค๋ ์์ธ์ด ๋๋ค. ๊ทธ๋์ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๋ ๋งค์ฐ ์ค์ํ๋ค.
์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด ๋ ์ค์ํ์ง ์์๊น? ๋ฌด์์ ์ ํ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ์ด ์๋๋ผ๋ฉด ์๋ฃ๊ฐ ์ ์ ๋ ฌ๋์ด ์๋ค๋ ๊ฐ์ ํ์ ์คํ๋๋ ์๊ณ ๋ฆฌ์ฆ๋ค์ด๋๊น.
์ฃผ์ํ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ๋ค๋ก๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒ๋ค์ด ์๋ค.
- ๋ฌด์์ ์ ํ ๊ฒ์ (Unordered Linear Search)
- ์ ๋ ฌ/์์ ์ ํ ๊ฒ์ (Sorted/Ordered Linear Search)
- ์ด์ง ๊ฒ์ (Binary Search)
- ์ฌ๋ณผ ํ ์ด๋ธ (Symbol Table)๊ณผ ํด์ฑ(Hashing)
- ๋ฌธ์์ด ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ : ํธ๋ผ์ด(Trie), ์ผ์ง ๊ฒ์ (Ternary Search)์ ์ ๋ฏธ ํธ๋ฆฌ(Suffix tree)
๋ฌด์์ ์ ํ ๊ฒ์
๋ฌด์์๋ก ์ ์ฅ๋ ๋ฐ์ดํฐ๋ค์ ์ฒ์๋ถํฐ ์ํํ๋ฉด์ ์กฐ๊ฑด์ ๋ง๋ ํญ๋ชฉ์ ๊ฒ์ํ๋ค.
์๊ฐ ๋ณต์ก๋๋ ๋ชจ๋ ๋ฐฐ์ด์ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ O(n).
์ ๋ ฌ/์์ ์ ํ ๊ฒ์
์๋ฃ๊ฐ ์ ๋ ฌ๋์ด ์๊ธฐ ๋๋ฌธ์ ๋ง์ฐฌ๊ฐ์ง๋ก O(n) ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค๊ณ ํ๋๋ผ๋ ์กฐ๊ธ ๋ ๋นจ๋ฆฌ ๋๋ ์ ์๋ค.
์ด์ง ๊ฒ์
์ด์ง ๊ฒ์ ํธ๋ฆฌ ์๊ฐ์ ๋ฐฐ์ ๋๋๋ก ๊ณ์ํด์ ํ์ ๋ฒ์๋ฅผ ๋ฐ์ผ๋ก ์ค์ฌ๋๊ฐ๊ธฐ ๋๋ฌธ์ O(logn)์ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
๋
ธ๋๋ฅผ ๊ฒ์ํ๋ ํ์๋ ํธ๋ฆฌ์ ๋์ด๋ณด๋ค ๋ง์ ์ ์๋๋ฐ, ํธ๋ฆฌ์ ๋์ด๊ฐ logn์ด๋ค.