๐ ๋ฒ์ : Ep22. ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ - Ep25. ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
๐ ์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์.
- ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฐ๋ฆฌ๊ฐ ์ฝ๋๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์์ฑํ ์ ์๊ฒ ๋ง๋ค์ด์ค๋ค.
- ์๊ณ ๋ฆฌ์ฆ = ์ปดํจํฐ์๊ฒ ๋ด๋ฆฌ๋ ์ง์์ฌํญ๋ค์ ๋์ด
- ์ง๋ : ํจ์คํ์ธ๋ ์๊ณ ๋ฆฌ์ฆ (์ต์ ๊ฒฝ๋ก ์ฐพ์์ค)
- JPG, PNG : ์์ถ ์๊ณ ๋ฆฌ์ฆ (์ด๋ฏธ์ง ์์ ์ต๋ํ ์ ๊ฒ, ์ฉ๋ ํจ์จ์ ์ผ๋ก ์ถ์)
- ์๋ฃ๊ตฌ์กฐ = data๋ฅผ ํจ์จ์ ์ผ๋ก ๋ณด๊ด/์ฐพ์ ์ ์๊ฒ ํด์ค
- ๋ฐ์ดํฐ๋ ๊ธฐ์ ๊ฐ๋ฐ์ ๊ผญ ํ์ํ๋ค.
- ์ฐ๋ฆฌ์๊ฒ ๋ฌด๋ฃ๋ก ์ ๊ณต๋๋ ์๋น์ค๋ ์ฐ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๋ ๋๊ฐ๋ก ๋ง๋ค์ด์ง๋ค.
- ๋ฐ์ดํฐ๋ฅผ ์ ๋ณด๊ดํ๋ ๊ฒ์ ๋์ด ์ฐพ๊ธฐ ์ฝ๊ฒ ๋ณด๊ดํด์ผ ํ๋ค.
- ์๋ฃ๊ตฌ์กฐ์ ์ฌ๋ฌ ๋ฐฉ์ ์์ : ํ๋ก๊ทธ๋จ์ ๋ชฉ์ ์ ๋ฐ๋ผ ๊ฒฐ์
- ์์ ๊ฒ๋ถํฐ ํฐ ์์๋ก ์ ๋ฆฌ (data size ๊ธฐ์ค)
- ์ด๋ฆํ ๋ถ์ฌ์ ์ ๋ฆฌ (๊ฒ์์ ์ํ index ๊ธฐ์ค)
- data๊ฐ ๋ค์ด์ค๋ ์์๋ก ์ ๋ฆฌ (์์ฑ ์๊ฐ ๊ธฐ์ค)
- ์๊ฐ๋ณต์ก๋ : ํ๋ก๊ทธ๋จ์ ์์
์๋๊ฐ ์ผ๋ง๋ ๋น ๋ฅธ์ง ์ธก์ ํ๋ ๋ฐฉ๋ฒ
- ์ธก์ ๋๋ ์๊ฐ์ด ์๋๋ผ, ์์ ๋จ๊ณ๋ก ๋ณต์ก๋๋ฅผ ํ๋จํ๋ค.
- ๋ฐฐ์ด
- RAM์ ์ค์ค์ด ์ด์ด์ง ํํ๋ก ๊ณต๊ฐ์ ์ฐจ์ง
- ์ปดํจํฐ๋ ๋ฐฐ์ด์ ์์์ฃผ์, ๊ธธ์ด๋ฅผ ์๊ณ ์์ ⇒ ๋ฐฐ์ด์ ์ฝ๊ธฐ ์๋ ๋งค์ฐ ๋น ๋ฆ
- ๋งจ ์๋ถํฐ ์ฐจ๊ณก์ฐจ๊ณก ์ฑ์์ ธ์ผ ํจ ⇒ ๋ฐฐ์ด ์ฝ์ /์ญ์ ๋๋ฆผ
- ๋น
์ค(Big-O) ํ๊ธฐ๋ฒ : ์๊ณ ๋ฆฌ์ฆ์ ์๋๋ฅผ ํํํ๋ค. (์๊ฐ๋ณต์ก๋๋ฅผ ํํ)
- ๋จ๊ณ์ ์ํฅ์ ์ฃผ๋ ์์๋ง ๋ณด๊ณ ๊ฒฐ์ ๋๋ค.
- ์์์๊ฐ(constant time) : O(1)
- O(N), O(N²)
- ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ
- ์ ํ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ (Linear search)
- ๊ฐ์ฅ ์์ฐ์ค๋ฌ์ด ๊ฒ์ ๋ฐฉ๋ฒ, ์์์ ๋ถํฐ ์ฐจ๋ก๋๋ก ๋น๊ตํ๋ฉฐ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ
- ์ด์ง ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ (Binary search)
- ๋ฐฐ์ด์ ํฌ๊ธฐ๊ฐ ํด ๋ ํจ์ฌ ์ ๋ฆฌํจ
- ๋ฐ์ดํฐ๊ฐ ์์๋๋ก ์ ๋ ฌ๋ ์ํ์์๋ง ์ฌ์ฉ๊ฐ๋ฅํจ
- ์ค๊ฐ๊ฐ๊ณผ ๊ฒ์ ๊ฐ์ ๋น๊ตํ ํ ํ์ ์๋ ๊ฐ์ ์ ์ธํ๊ณ ๋จ์ ๊ฐ์์ ๋ค์ ์ค๊ฐ ๊ฐ๊ณผ ๋น๊ตํ๋ฉฐ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ
- ์ ํ ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ (Linear search)
โ๐ป ์ค๋ ์ฝ์ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋ณด์ธ์.
์๊ณ ๋ฆฌ์ฆ์ ํญ์ ์ด๋ ต๋ค๊ณ ์๊ฐํ๋๋ฐ, ์ฑ ์์ ํ์ด์ ์ค๋ช ํด ์ค ๋ด์ฉ์ ๋ณด๋ ํจ์ฌ ์ดํดํ๊ธฐ๊ฐ ์ฌ์ ๋ค.
์๊ณ ๋ฆฌ์ฆ ํ ์คํธ๋ฅผ ์ํด์๋ง ๋ฐฐ์์ผ ํ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์๋๋ฐ, ์ฝ๋๋ฅผ ํจ์จ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ํด ๋ฐฐ์์ผ ํ๋ ๊ฒ์ด๋ผ๋ ์์ผ๋ก ๊ณต๋ถํ ๋ ์กฐ๊ธ ๋ ๋ค๋ฅธ ๋ง์๊ฐ์ง์ผ๋ก ๋ฐฐ์ธ ์ ์์ ๊ฒ ๊ฐ๋ค.
์ด๋๊น์ง๋ ์ฝ๋๋ฅผ ์์ฑํ ๋ ์๋ํ ์ ์๋๋ก ํ๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ๋ฉด์ ์์ฑํด ์๋ค. ํ์ง๋ง ์์ผ๋ก๋ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๊ณต๋ถํด์ ์๊ฐ๋ญ๋น๋ฅผ ์ค์ด๊ณ ํจ์จ์ ์ผ๋ก ์๋ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค ์ ์๋๋ก ๋ ธ๋ ฅํด์ผ๊ฒ ๋ค.
๐ ๊ถ๊ธํ ๋ด์ฉ์ด ์๊ฑฐ๋, ์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ด๋ณด์ธ์.
์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถ๋ฅผ ํ๋ ๊ฒ์ด ํ๋ค์ด์ ๋ฏธ๋ฃจ๊ธฐ๋ง ํ๋๋ฐ, ๋ค์ ์กฐ๊ธ์ฉ ๊ณต๋ถ๋ฅผ ์์ํด์ผ๊ฒ ๋ค๊ณ ๋๊ผ๋ค.
๋๊ธ