๐๏ธ ์๊ฐ ๋ณต์ก๋, ๊ณต๊ฐ ๋ณต์ก๋(Big-Oh Notation)
- ์๊ฐ ๋ณต์ก๋์๋ O(n) - ์๊ฐ์ ์ํ(์ต์
์ ๊ฒฝ์ฐ), Ω(n) - ์๊ฐ์ ํํ(์ต์ ์ ๊ฒฝ์ฐ), Θ(n) - ํ๊ท ์ ์ธ ๊ฒฝ์ฐ
- ์๊ฐ์ ํ๊ณ์น๊ฐ ๋ช
ํํ ๋ฐ๋ฉด ๊ณต๊ฐ์ ์ต๊ทผ ๋์ฉ๋ ์์คํ
์ด ๋ณดํธํ ๋๋ฉด์, ๊ณต๊ฐ ๋ณต์ก๋ ๋ณด๋ค๋ ์๊ฐ ๋ณต์ก๋๊ฐ ์ฐ์ ์ด ๋๋ค. ๊ทธ๋์ ์๊ฐ ๋ณต์ก๋๊ฐ ๋ ์ค์ํ๊ฒ ์๊ฐ๋๋ค.
- ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ด์ ํฌ๊ธฐ, ๋์ ํ ๋น, ์ฌ๊ทํธ์ถ ์ ๋ฑ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค.
๐๏ธ Quick sort, Insertion sort, merge sort, heap sort
- O(n log n) : ํต ์ ๋ ฌ(quick), ํ ์ ๋ ฌ(heap), ๋ณํฉ ์ ๋ ฌ(merge)
- O(n^2) : ์ฝ์
์ ๋ ฌ(insertion)
Quick sort๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฐ๋ ์ด์
์ต์ ์ ๊ฒฝ์ฐ์๋ O(n^2)์ผ ์ ๋๋ก ์ ์ข์ ์ฑ๋ฅ์ด๋ฉฐ, Merge sort์ ๊ฐ์ด ์ต์ , ์ต์ , ํ๊ท ์ ๊ฒฝ์ฐ์ ์๊ด์์ด O (n log2 n)์ ๋ณด์ฅํ์ง ์์ง๋ง ๊ฐ์ฅ ๋ง์ด ์ฐ์ธ๋ค.
์ด์ ๋??
- ํต ์ ๋ ฌ์ ๋ฃจํ๋ ๋๋ถ๋ถ ์ปดํจํฐ ์ํคํ
์ฒ์์ ํจ์จ์ ์ผ๋ก ์๋ํ๋๋ก ์ค๊ณ ๋์ด ์๋ค.
- ๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ๊ฐ ์ง์ญํ๋์ด ์์ด CPU ์บ์์ ํํธ์จ์ด ๋์์ง๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฉ๋ชจ๋ฆฌ ์ฐธ์กฐ์ ์ง์ญํ - ํ์๋ค์ ์ฐ๊ตฌ ๊ฒฐ๊ณผ์ ๋ฐ๋ฅด๋ฉด ์ด๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ๊ทธ ๋ค์์ ์ฃผ๋ณ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ ํ๋ฅ ์ด ๋๋ค๋ ํน์ฑ์ด ์๋ค.
๊ทธ๋์ ๊ฐ๊น๊ฑฐ๋ ์ฐ์๋ ์์น์ ์๋ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋จ์ ๊ทธ๋ ์ง ์์ ํ๋ก๊ทธ๋จ๋ณด๋ค ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค. ์บ์๋ฏธ์ค๊ฐ ๋ฐ์ํ๋ฉด OS๊ฐ ์บ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฆฌํด์ผ ํ๊ณ ๊ทธ๋์ ์ฐ์ฐ์ ๋ฉ์ถฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ์คํ ์๊ฐ์ด ๋์ด๋๋ค.
ํต์ ๋ ฌ์ ์ฌ๊ท๊ฐ ์ผ์ด๋๋ฉด์ ๋ฆฌ์คํธ์ ํฌ๊ธฐ๊ฐ ์์์ง๊ณ , left, right ์ธ๋ฑ์ค๋ 1์ฉ ์ปค์ง๊ฑฐ๋ ์์์ง๋ฏ๋ก ๋ถํ ์ด ์ผ์ด๋ ์๋ก ๊ฐ๊น์ด ์ธ๋ฑ์ค ํญ๋ชฉ์ ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ์บ์๋ฏธ์ค๊ฐ ์ ๋ค. ๊ทธ๋์ ๊ฐ์ฅ ๋น ๋ฅด๊ณ ๋ง์ด ์ฌ์ฉํ๋ค.
์บ์ ํํธ์จ - CPU๊ฐ ์ํ๋ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์บ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์๋ ์ํ์ด๊ณ ๊ทธ ๋ฐ๋๋ ์บ์๋ฏธ์ค์ด๋ค.
๐๏ธ stableํ ์ ๋ ฌ์ด๋?
- ์ค๋ณต๋ ๊ฐ๋ค์ ์ ๋ ฌ ํ์ ๊ฒฝ์ฐ, ๊ทธ ๊ฐ๋ค์ ์์๊ฐ ๋ณํ์ง ์์ผ๋ฉด stable ์ ๋ ฌ, ๋ณํ๋ฉด unstable ์ ๋ ฌ์ด๋ค.
- [ 1, 2, 3, 4(1), 4(2), 5] - stable
- [ 1, 2, 3, 4(2), 4(1), 5] - unstable
Stable Sort
- Insertion Sort
- Merge Sort
- Bubble Sort
- Counting Sort
**Unstable Sort
- Selection Sort
- Heap Sort
- Shell Sort
- Quick Sort
dfs ๊ธฐ๋ณธ ์๊ธฐ
NO | ์ ํ | ์ ๋ชฉ | ๋น๊ณ |
---|---|---|---|
15649 | ๋ฐฑํธ๋ํน | N๊ณผ M(1) | |
15650 | ๋ฐฑํธ๋ํน | N๊ณผ M(2) | |
15651 | ๋ฐฑํธ๋ํน | N๊ณผ M(3) | |
15652 | ๋ฐฑํธ๋ํน | N๊ณผ M(4) | |
15654 | ๋ฐฑํธ๋ํน | N๊ณผ M(5) | |
15655 | ๋ฐฑํธ๋ํน | N๊ณผ M(6) | |
15656 | ๋ฐฑํธ๋ํน | N๊ณผ M(7) | |
15657 | ๋ฐฑํธ๋ํน | N๊ณผ M(8) | |
15663 | ๋ฐฑํธ๋ํน | N๊ณผ M(9) | |
15664 | ๋ฐฑํธ๋ํน | N๊ณผ M(10) | |
15665 | ๋ฐฑํธ๋ํน | N๊ณผ M(11) | |
15666 | ๋ฐฑํธ๋ํน | N๊ณผ M(12) |
โ๏ธโ๏ธโ๏ธ ์ด๊ฑฐ ๋ค ๋น์ทํ ๋ฌธ์ ๊ธดํ๋ฐ ํ๋ฒ์ฉ ํด๋ณด๋ฉด ์ด๋ค ๊ตฌ์กฐ๋ก ๋ฐฉ๋ฌธ์ฒดํฌํ๊ณ ๋์๊ฐ๋์ง ์กฐ๊ธ์ ์ดํด ํ ์ ์๊ฒ ๋จ
๐บ ์ธํ์ ์ํ2 ๋ฌธ์ ์ค์ ๊ณ์ 35%์์ ํ๋ ธ๋ค๊ณ ๋์ด
-> ๋ง์ง๋ง์ ์ถ๋ฐ์ ์ผ๋ก ๋์์ฌ ๋ ๊ฐ ์ ์๋ ๊ฒฝ์ฐ์๋ 0์ ๋ฃ์ด์ ๊ณ์ฐํ๊ณ ์์์.
์ด์ ๋ฅผ ๋ชจ๋ฅด๋ฉด ๋ฐฉ๋ฒ๋ ์ ์ ์๋ค.
" ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฌ๋๋ค์ ์์ ์ ํ๋์ ์ฌ๋ฐ๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ด๋๊ธฐ๋ณด๋ค๋ ๋น์ฐธํ ๊ฒฐ๋ก ์ด ๋์ถ๋๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ๋ผ๊ฐ๊ณค ํ๋ค. ์ฒ ํ์ ํ๋ จ์ ๋ฐ์ ์ฌ๋์ ๊ณ ํต๊ณผ ์พ๋ฝ์์ ๋ฒ์ด๋๊ธฐ ์ํด ์ด์ฐํจ์ ํ๊ตฌํด์ผ ํ๋ค. ์ถ๊ณผ ์ฃฝ์์ ๋งค๋ฌ๋ฆฌ๋ ์ง์ ๋ฉ์ถ๊ธฐ ์ํด์๋ ์ด์ฐํจ์ด ํ์ํ๋ค. ์ฌ์ฐ๊ณผ ๋์ ๊ดํด์๋ ๋ง์ฐฌ๊ฐ์ง์ด๋ค. "
- ๋ฌด์๋์ฐ์ค ๋ฃจํธ์ค, ๊ฐ์๋ก, 6.25. 5-11
" ์ง๊ธ ์ด๋ ๊ฒ ํ๋ ๊ฒ์ด ์ต์ ์ ๊ธธ์ธ๊ฐ? " ๊ทธ๋ฆฌ๊ณ ์ด ์ผ์ ๋ด๊ฐ ์ ํ๊ณ ์๋์ง๋ฅผ ์์์ผ ํ๋ค. ์ด์ ๋ฅผ ์์ง ๋ชปํ๋ฉด ๋ฐฉ์์ด ์ณ์ ๊ฒ์ธ์ง ํ๋ฆฐ ๊ฒ์ธ์ง๋ ์ ์ ์๋ค.
์ผ๋จ ์์ํ๋ผ. ๋๋จธ์ง๋ ๋ฐ๋ผ์จ๋ค.
" ์ค์น์ผ๋ก์ ๋์ ๋ชฉํ๋ ์๋ค๋ฅผ ์์ฑ์ํค๋ ๊ฒ์ด์ผ. ์ ์ฝ๋ฐ์ง ์๊ณ , ์ถฉ๋์ ์ธ ํ๋์ผ๋ก ๋ถํฐ ์์ ๋ก์ฐ๋ฉฐ, ๊ฑฐ๋ฆฌ๋ ์๋ ์ถ์ ์ด์๊ฐ ์ ์๋๋ก ์๋ค๋ฅผ ๊ฐ๋ฅด์น ๊ฒ์ด๋ค. ์ฌํ์ ํ์ธ์ ๋์น๋ฅผ ๋ณด์ง ์๋ ์์ ๋ก์ด ์ถ, ๊ตฌ์๋ฐ์ง ์๋ ํ๋ณต, ๊ทธ๋ฆฌ๊ณ ํ์ฐฎ์ ์ฌ๋ฌผ๋ค ์์์๋ ์ ์ ์ญ๋ฆฌ๋ฅผ ๊ฟฐ๋ซ์ด ๋ณผ ์ ์๋ ํ์์, ์๋ค๋ ์ด ๋ชจ๋ ๊ฒ์ ๋ถ์ง๋ฐํ ๋ฐฐ์ฐ๊ณ ์ฐ์ตํด์ผ ํ ๊ฒ์ด์ผ. ์๋ค๊ฐ ์ฌ๋ฐ๋ฅธ ๋ง์์ ๊ฐ์ก๊ณ ๋ด๊ฐ ๋ฐ๋ฅธ ๋ชฉํ๋ฅผ ์ ์ํ๊ณ ๊ต์กํ๋ค๋ฉด ์ ์ด ๊ณผ์ ๋ฅผ ์์ํ์ง ๋ชปํ๊ฒ ๋๊ฐ? ๋ชจ๋ ๊ฒ์ ์คํ ๊ฐ๋ฅํ ๋ฟ๋๋ฌ ์ด๋ฏธ ์ฐ๋ฆฌ ์์ ์๋ค๋ค. ์ง๋ ์ผ์ ์์ด๋ฒ๋ฆฌ๊ฒ๋. ์ง๊ธ๋ถํฐ๊ฐ ์์์ด์ผ. ๋๋ฅผ ๋ฏฟ๊ณ ์์ ๋ณด๊ฒ๋. "
- ์ํฝํ ํ ์ค, ๋ํ๋ก, 2,19.29-34
๋์ด๊ฐ ๋ค์๋ก ์คํจ์ ๋ํ ๋๋ ค์์ ๋์ฑ ์ปค์ง๋ค. ํ์ง๋ง ๊ทธ๋ฐ ๋๋ ค์์ด ์ฐ๋ฆฌ๋ฅผ ์ํํ๋๋ก ๋ด๋ฒ๋ ค๋์ง ๋ง์์ผ ํ๋ค. ์ฐ๋ฆฌ๊ฐ ๋๋ผ๋ ๋๋ ค์์ ๋๋ถ๋ถ ์ค์ฒด๊ฐ ์๋ค. ๊ทธ์ ๋๋์ผ ๋ฟ์ด๋ค.
" ์ผ๋จ ์์ํ๋ผ, ๋๋จธ์ง๋ ๋ฐ๋ผ์จ๋ค "
์ฃฝ์ ์์ ๊น๋ ์๋ฆ๋ค์
" ์๊ฐ์ ์์ ์กฐ๊ฐ๋ค์ด ์์ฐ์ ์์ํ๋ฉฐ ํ๋ฌ๊ฐ๋ฉด, ๋ง์น ์ ์ต์ ์ฌ๋ฆฌ๋ธ ํ ์์ด ๋ ์ ๋จ์ด์ง๋ ๊ฒ์ฒ๋ผ ์ฐ๋ฆฌ์ ๋ง์ง๋ง ์์์ฒ๊ฐ ์ฐ์ํ๊ฒ ๋ค๊ฐ์จ๋ค. ์ด ๋ชจ๋ ์๋ช ์ ๊ธฐ๋ฅธ ๋์ง๋ฅผ ์ฐฌ๋ฏธํ๋ผ. ์ฐ๋ฆฌ๋ฅผ ํค์์ค ๋๋ฌด๋ค์๊ฒ๋ ๊ฐ์ฌํ๋ผ. "
- ๋ง๋ฅด์ฟ ์ค ์์ฐ๋ ๋ฆฌ์ฐ์ค, ๋ช ์๋ก, 4.48.2
๋ชจ๋๊ฐ ๊ฐ๊ณผํ๊ณ ๋์ด๊ฐ๋ ๊ฒ์ ์ถ๋ณต๊ณผ ์กฐํ๊ฐ ์จ์ด ์๋ค. ์์ฐ์ ์๋ฆฌ์ ๋ฐ๋ผ ์ธ์์ ๋ฐ๋ผ๋ณด๋ฉด ์ฃฝ์ ์์๋ ์๋ฆ๋ค์์ด ๊น๋ค์ด ์๋ค.
์ฒซ ์ฃผ์ด๊ธฐ๋ ํ๊ณ , ์๊ณ ๋ฆฌ์ฆ ์ฃผ์ฐจ ์ค์์ ๊ฐ์ฅ ๊ฐ๋จํ ๋ฌธ์ ๋ค์ ํ๊ธฐ ๋๋ฌธ์ ์๋ง ๋ค์ ์ฃผ์ฐจ๋ถํฐ๋ ์ด๋ฐ ์ฌ์ ์๊ฐ์ด ์์ ๊ฒ ๊ฐ์์ ์ ๊ธ์ ์ค๊ฒ ๋๋ฉด ํ๊ณ ์ถ์๋ ๊ฒ ์ค ํ๋์ธ ์์ธ ๋ค๋ ์ค๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ํ๋ค. ์์ธ์ฒ๊น์ง ๊ฐ๋๊ฒ ๋ชฉํ์๋๋ฐ ์น๊ตฌ๋ฅผ ๋ง๋๊ฒ ๋์, ๋์ฑ๋ ์ฃผ๋ณ๋ง ๊ตฌ๊ฒฝํ๋ฉด์ ๋ฆฌํ๋ ์ฌํ๊ณ ์๋ค. ์กฐ๊ธ์ด๋ผ๋ ์ด๋ ๊ฒ ๋ฆฌํ๋ ์ฌ๋ฅผ ํด์ ๋ค์ ์ฃผ๋ ์ ๋ฒํธ ์ ์์ ๊ฒ ๊ฐ๋ค. ๋๋ถ์ ์ค๋ ๊ณต๋ถ๋ ๋๋ฌด ์กฐ๊ธ๋ฐ์ ๋ชปํ์ง๋ง ๊ทธ๋๋ ๋ญ๋ ์ง ์ ํด๋ด๋ ์ฌ๋์ ์ผ ํ ๋ ์ผ ํ๊ณ , ์ด ๋ ์ฌ๋ ์ฌ๋์ด๋ผ๊ณ ์๊ฐํ๋ค. ์กฐ๊ธ ์ฌ์์ผ๋ ๋ค๊ฐ์ฌ ์ผ์ฃผ์ผ์ ๋ ์ด์ฌํ ํ์!