์ •๊ธ€/TIL

[TIL] - 2023.04.09

Casteira 2023. 4. 20. 23:38

๐Ÿ—’๏ธ ์‹œ๊ฐ„ ๋ณต์žก๋„, ๊ณต๊ฐ„ ๋ณต์žก๋„(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

๋ชจ๋‘๊ฐ€ ๊ฐ„๊ณผํ•˜๊ณ  ๋„˜์–ด๊ฐ€๋Š” ๊ฒƒ์— ์ถ•๋ณต๊ณผ ์กฐํ™”๊ฐ€ ์ˆจ์–ด ์žˆ๋‹ค. ์ž์—ฐ์˜ ์ˆœ๋ฆฌ์— ๋”ฐ๋ผ ์„ธ์ƒ์„ ๋ฐ”๋ผ๋ณด๋ฉด ์ฃฝ์Œ ์†์—๋„ ์•„๋ฆ„๋‹ค์›€์ด ๊นƒ๋“ค์–ด ์žˆ๋‹ค.

 


 

์ฒซ ์ฃผ์ด๊ธฐ๋„ ํ•˜๊ณ , ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฃผ์ฐจ ์ค‘์—์„œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋“ค์„ ํ’€๊ธฐ ๋•Œ๋ฌธ์— ์•„๋งˆ ๋‹ค์Œ ์ฃผ์ฐจ๋ถ€ํ„ฐ๋Š” ์ด๋Ÿฐ ์—ฌ์œ ์‹œ๊ฐ„์ด ์—†์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ •๊ธ€์— ์˜ค๊ฒŒ ๋˜๋ฉด ํ•˜๊ณ ์‹ถ์—ˆ๋˜ ๊ฒƒ ์ค‘ ํ•˜๋‚˜์ธ ์„œ์šธ ๋‹ค๋…€์˜ค๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ํ–ˆ๋‹ค. ์„œ์šธ์ˆฒ๊นŒ์ง€ ๊ฐ€๋Š”๊ฒŒ ๋ชฉํ‘œ์˜€๋Š”๋ฐ ์นœ๊ตฌ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜์„œ, ๋‚™์„ฑ๋Œ€ ์ฃผ๋ณ€๋งŒ ๊ตฌ๊ฒฝํ•˜๋ฉด์„œ ๋ฆฌํ”„๋ ˆ์‰ฌํ•˜๊ณ  ์™”๋‹ค. ์กฐ๊ธˆ์ด๋ผ๋„ ์ด๋ ‡๊ฒŒ ๋ฆฌํ”„๋ ˆ์‰ฌ๋ฅผ ํ•ด์„œ ๋‹ค์Œ ์ฃผ๋„ ์ž˜ ๋ฒ„ํ‹ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. ๋•๋ถ„์— ์˜ค๋Š˜ ๊ณต๋ถ€๋Š” ๋„ˆ๋ฌด ์กฐ๊ธˆ๋ฐ–์— ๋ชปํ–ˆ์ง€๋งŒ ๊ทธ๋ž˜๋„ ๋ญ๋“ ์ง€ ์ž˜ ํ•ด๋‚ด๋Š” ์‚ฌ๋žŒ์€ ์ผ ํ•  ๋• ์ผ ํ•˜๊ณ  , ์‰ด ๋• ์‰ฌ๋Š” ์‚ฌ๋žŒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์กฐ๊ธˆ ์‰ฌ์—ˆ์œผ๋‹ˆ ๋‹ค๊ฐ€์˜ฌ ์ผ์ฃผ์ผ์„ ๋” ์—ด์‹ฌํžˆ ํ•˜์ž!