🐯 μ•Œκ³ λ¦¬μ¦˜/BOJ

4-3 μ‚½μž… μ •λ ¬

κ³„λž€μ†Œλ…„ 2023. 7. 1. 22:49

μ‚½μž… 정렬은 이미 μ •λ ¬λœ 데이터 λ²”μœ„μ— μ •λ ¬λ˜μ§€ μ•Šμ€ 데이터λ₯Ό μ μ ˆν•œ μœ„μΉ˜μ— μ‚½μž…μ‹œμΌœ μ •λ ¬ν•˜λŠ” 방식이닀.

μ‹œκ°„ λ³΅μž‘λ„λŠ” O(n^2)

 

핡심

선택 데이터λ₯Ό ν˜„μž¬ μ •λ ¬λœ 데이터 λ²”μœ„ λ‚΄μ—μ„œ μ μ ˆν•œ μœ„μΉ˜μ— μ‚½μž…ν•˜λŠ” 것이 μ‚½μž… μ •λ ¬μ˜ 핡심이닀.

 

μ‚½μž… μ •λ ¬μ˜ μˆ˜ν–‰ 방식

1. ν˜„μž¬ index에 μžˆλŠ” 데이터 값을 μ„ νƒν•œλ‹€.

2. ν˜„μž¬ μ„ νƒν•œ 데이터가 μ •λ ¬λœ 데이터 λ²”μœ„μ— μ‚½μž…λ  μœ„μΉ˜λ₯Ό νƒμƒ‰ν•œλ‹€.

3. μ‚½μž… μœ„μΉ˜λΆ€ν„° index에 μžˆλŠ” μœ„μΉ˜κΉŒμ§€ shift 연산을 μˆ˜ν–‰ν•œλ‹€.

4. μ‚½μž… μœ„μΉ˜μ— ν˜„μž¬ μ„ νƒν•œ 데이터λ₯Ό μ‚½μž…ν•˜κ³  index++ 연산을 μˆ˜ν–‰ν•œλ‹€.

5. 전체 λ°μ΄ν„°μ˜ 크기만큼 indexκ°€ 컀질 λ•ŒκΉŒμ§€, 즉 선택할 데이터가 없을 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•œλ‹€.

 

μΆ”κ°€μ μœΌλ‘œ 이진탐색을 μ‚¬μš©ν•˜λ©΄ μ‹œκ°„ λ³΅μž‘λ„λ₯Ό 쀄일 수 μžˆλ‹€.