n๊ฐ์ ์ซ์๊ฐ ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ฌ์ฉ์๊ฐ ์ง์ ํ ๊ธฐ์ค์ ๋ง๊ฒ ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ์๊ณ ๋ฆฌ์ฆ
์ฃผ์ด์ง ๋ฐฐ์ด์์ ์ต์๊ฐ์ ์ฐพ๊ณ ๋ฐฐ์ด์ ๊ฐ์ฅ ์์ ๊ฐ๊ณผ ์์น๋ฅผ ๋ฐ๊พธ๋ฉด์ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ๋ฐฐ์ด์ ์ต์๊ฐ์ ์ฐพ์์ ํ
ํ์ฌ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ์ ํ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ๊ตฌํ์ด ๊ฐ๋จํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์ ๋ฐํ ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋น๊ตํ๋ ํ์์ ๋นํด ๊ตํํ๋ ํ์๊ฐ ์ ๋ค.
- ๋จ์
- ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค.
- ์ ๋ ฌ๋ ์ํ์์ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋๋ฉด ํจ์จ์ด ์ข์ง ์๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(n^2)
- ์ต์ : O(n^2)
- ์ต์ : O(n^2)
์๋ก ์ธ์ ํ ์์๋ฅผ ๋น๊ตํ์ฌ ์์ ๊ฐ์ ํฌ๊ธฐ๊ฐ ์๋๋ก ์๋ฆฌ๋ฅผ ๋ฐ๊พธ๋ฉด์ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ์ ๋ ฌ ๋ฐฉ์์ด ๋ง์น ๋ฌผ์์์ ์ฌ๋ผ์ค๋๋ฌผ๋ฐฉ์ธ
๊ณผ ๊ฐ๊ธฐ ๋๋ฌธ์ ๋ฒ๋ธ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ๊ตฌํ์ด ๊ฐ๋จํ๋ค.
- ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์ ๋ฐํ ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋จ์
- ๋ฐ์ดํฐ๋ฅผ ํ๋์ฉ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ค๋๊ฑธ๋ฆฐ๋ค.
- ์์์ ๋ง์ง ์์ ์์๋ฅผ ์ธ์ ํ ์์์ ๊ตํํ๋ค.
- ํฐ ์๊ฐ ์์ ์์์๋ก ๋ค๋ก ์ด๋ํ๊ธฐ ์ํด ๋ง์ ๊ตํ์ด ์ด๋ฃจ์ด์ง๋ค.
- ํน์ ์์๊ฐ ์ต์ข ์ ๋ ฌ ์์น์ ์์ด๋ ๊ตํ๋๋ ์ผ์ด ๋ฐ์ํ๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(n^2)
- ์ต์ : O(n^2)
- ์ต์ : O(n^2)
ํ์ฌ ์์น์ ์์๋ฅผ ์ ๋ ฌ๋ ์ํ์ ์๋ถ๋ถ๊ณผ ๋น๊ตํ์ฌ ์ ์ ํ ์์น์ ์ฝ์ ํ๋ฉด์ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ์์๋ฅผ ๋ฐฐ์ด์ ์ ์ ํ ์์น๋ก์ฝ์
ํ๊ธฐ ๋๋ฌธ์ ์ฝ์ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ๋ฐฐ์ด์ ์์๊ฐ ์ ๋ ฌ๋์ด ์์์๋ก ์๋๊ฐ ๋น ๋ฅด๋ค.
- ์ด๋ฏธ ์ ๋ ฌ๋ ๊ฐ์ ๊ตํ์ด ์ผ์ด๋์ง ์๋๋ค.
- ๋จ์
- ์ฝ์ ์ ๊ตฌํํด์ผ ํ๋ฏ๋ก ์๋๊ฐ ์๋ฃ๊ตฌ์กฐ์ ์ํญ์ ๋ง์ด ๋ฐ๋๋ค. (์ฝ์ ํ ์ ๋ถ๋ถ์ ๋ค๋ก ์ด๋์์ผ์ผ ํ๋ค.)
- ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ๋ฐฐ์ด์ด ์ญ์์ ๊ฐ๊น์ธ์๋ก ํจ์จ์ด ๋งค์ฐ ๋จ์ด์ง๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(n^2)
- ์ต์ : O(n)
- ์ต์ : O(n^2)
๋ฐฐ์ด์ ์์ ๋จ์๋ก ์ชผ๊ฐ์ด ์ ๋ ฌํ ๊ฒฐ๊ณผ๋ฅผ ํฉ์น๋ฉด์ ์ ์ฒด๋ฅผ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ์ชผ๊ฐ ํํฉ๋ณ
ํ๋ฉด์ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ํฉ๋ณ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ํญ์ ์ผ์ ํ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
- ์์ ์ ์ด๋ฉฐ, ๋๋ถ๋ถ์ ๊ฒฝ์ฐ์์ ์ข์ ์ฑ๋ฅ์ ๋ธ๋ค.
- ๋จ์
- ์ถ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ํ์ํ๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(nlogn)
- ์ต์ : O(nlogn)
- ์ต์ : O(nlogn)
๋ฐฐ์ด์์ ํ๋์ ํผ๋ฒ(pivot)์ ์ ํ์ฌ ์ด ํผ๋ฒ๋ณด๋ค ์์ ๊ฐ์ ์ผ์ชฝ, ํฐ ๊ฐ์ ์ค๋ฅธ์ชฝ์ ์์น์ํจ ํ, ํผ๋ฒ ์์ชฝ ๋ฐฐ์ด์์ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ํ๊ท ์ ์ผ๋ก๋น ๋ฅธ ์ํ ์๋
๋ก ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ํต ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ํ๊ท ์ ์ผ๋ก ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค.
- ๋จ์
- ํผ๋ฒ์ ์ด๋ป๊ฒ ์ค์ ํ๋ ์ง์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ฐจ์ด๊ฐ ์ฌํ๋ค.
- ์์ ์ฑ์ด ์ข์ง ์๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(nlogn)
- ์ต์ : O(nlogn)
- ์ต์ : O(n^2)
์์ ์ด์ง ํธ๋ฆฌ์ธ ํ์ ์ด์ฉํ์ฌ ๊ฐ์ฅ ํฐ ์๋ฅผ root ๋ ธ๋๋ก ์ด๋์ํค๋ฉฐ ํ๋์ฉ ๊บผ๋ด ๋ฐฐ์ด์ ๋ค๋ถํฐ ์ ์ฅํ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ์์ ์ด์ง ํธ๋ฆฌ์ ์ผ์ข ์ธํ(Heap)
์ ์ฌ์ฉํ์ฌ ์ ๋ ฌํ๊ธฐ ๋๋ฌธ์ ํ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ํญ์ ๊ฐ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์ฑ๋ฅ์ด ์ค์ํ๋ค.
- ๋จ์
- ๊ฐ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น๊ตํ๋ฉด ๋๋ฆฐ ํธ์ด๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(nlogn)
- ์ต์ : O(nlogn)
- ์ต์ : O(nlogn)
์ผ์ ๊ฐ๊ฒฉ(gap)์ผ๋ก ๋ฐฐ์ด์ ์์ฑํ์ฌ ๊ฐ ๋ฐฐ์ด๋ผ๋ฆฌ ์ฝ์ ์ ๋ ฌํ ํ, ๋ ์ ์ ๊ฐ์์ ๋ฐฐ์ด์ ์์ฑํ์ฌ ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ์
โ ์ฝ์ ์ ๋ ฌ์ ๋ณด์ํ๋ ๋ฐฉ์์ผ๋กDonald L. Shell
์ด๋ผ๋ ์ฌ๋์ด ์ ์ํ์ฌ ์ ์ ๋ ฌ์ด๋ผ๊ณ ๋ถ๋ฆผ
- ์ฅ์
- ์ฝ์ ์ ๋ ฌ์ ๋ฌธ์ ์ ์ ํด๊ฒฐํจ์ผ๋ก์จ ์ฑ๋ฅ์ด ์ข๋ค.
- ๋จ์
- ์ค์ ํ ๊ฐ๊ฒฉ(gap)์ ๋ฐ๋ผ ์ฑ๋ฅ์ ์ฐจ์ด๊ฐ ์ฌํ๋ค.
- ์๊ฐ ๋ณต์ก๋
- ํ๊ท : O(n^1.3~1.5)
- ์ต์ : O(n)
- ์ต์ : O(n^2)
- ?? ์ ๋ ฌ์ ๋ํด ์ค๋ช ํด ๋ณด์ธ์.