λͺ©μ°¨
- μ»΄ν¨ν° μΈμ΄μλ λλΆλΆ λ΄μ₯ μ λ ¬ ν¨μκ° μμ΄ μ¬μ©μκ° μ€μ€λ‘ ꡬννλ λ° λλ μκ°κ³Ό λ Έλ ₯μ μκ»΄μ€λ€.
- μ»΄ν¨ν° μΈμ΄ μ€ λλ€μκ° λ΄λΆμ μΌλ‘ μ±νν μ λ ¬ μκ³ λ¦¬μ¦μ ν΅ μ λ ¬(quick sort)μ΄λ€.
- ν΅ μ λ ¬μ μ¬κ·λ₯Ό μ¬μ©ν μκ³ λ¦¬μ¦μΌλ‘, κ·Έ λμ λ°©μμ μμ보며 μ¬κ·λ₯Ό μ¬μ©ν΄ μ΄λ»κ² μκ³ λ¦¬μ¦μ μλλ₯Ό ν₯μμν€λμ§ λ°°μΈ μ μλ€.
- ν΅ μ λ ¬μ λ§€μ° λΉ λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μΌλ‘ νΉν νκ· μλ리μ€μμ λ§€μ° ν¨μ¨μ μ΄λ€.
- μ΅μ μ μλ리μ€(μμ μ λ ¬λ λ°°μ΄)μμλ μ½μ μ λ ¬μ΄λ μ ν μ λ ¬κ³Ό μ±λ₯μ΄ μ μ¬νλ λλΆλΆμ κ²½μ°μμλ ν¨μ¬ λΉ λ₯΄λ€.
- ν΅ μ λ ¬μ λΆν (partitioning)μ΄λΌλ κ°λ μ κΈ°λ°νλ€.
1. λΆν
- λ°°μ΄μ λΆν νλ€λ κ²μ λ°°μ΄λ‘λΆν° μμμ μ, μ¦ νΌλ²μ κ°μ Έμ νΌλ²λ³΄λ€ μμ μλ νΌλ²μ μΌμͺ½μ, ν° μλ νΌλ²μ μ€λ₯Έμͺ½μ λλ κ²μ΄λ€.
- νΌλ²μ μ΄λ€ κ°μ κ°μ Έμλ μκ΄μλ€. μ¦, λ°°μ΄μ κ°μ₯ μ€λ₯Έμͺ½μ κ°μ κ³ λ₯΄λ , κ°μ₯ μΌμͺ½μ κ°μ κ³ λ₯΄λ μκ΄μλ€λ λ»μ΄λ€.
- λΆν μ΄ λλλ©΄ νΌλ² μΌμͺ½μ κ°μ λͺ¨λ νΌλ²λ³΄λ€ μκ³ , μ€λ₯Έμͺ½μ κ°μ λͺ¨λ νΌλ²λ³΄λ€ ν¬λ€.
- λ€λ₯Έ κ°λ€μ μμ§ μμ ν μ λ ¬λμ§ μμμ§λ§ νΌλ² μ체λ μ΄μ λ°°μ΄ λ΄μμ μ¬λ°λ₯Έ μμΉμ μλ€.
2. ν΅ μ λ ¬
- ν΅ μ λ ¬ μκ³ λ¦¬μ¦μ λΆν κ³Ό μ¬κ·λ‘ μ΄λ€μ§λ€.
- λμ λ°©μμ λ€μκ³Ό κ°λ€.
- λ°°μ΄μ λΆν νλ€. νΌλ²μ μ΄μ μ¬λ°λ₯Έ μμΉμ μλ€.
- νΌλ²μ μμͺ½μ μλ νμ λ°°μ΄μ κ°κ° λ λ€λ₯Έ λ°°μ΄λ‘ λ³΄κ³ 1λ¨κ³μ 2λ¨κ³λ₯Ό μ¬κ·μ μΌλ‘ λ°λ³΅νλ€. μ¦, κ° νμ λ°°μ΄μ λΆν νκ³ κ° νμ λ°°μ΄μ μλ νΌλ²μ μμͺ½μμ λ μμμ§ νμ λ°°μ΄μ μ»λλ€. μ΄μ΄μ νμ λ°°μ΄μ λ€μ λΆν νλ κ³Όμ μ λ°λ³΅νλ€.
- νμ λ°°μ΄μ΄ μμλ₯Ό 0κ° λλ 1κ° ν¬ν¨νλ©΄ κΈ°μ 쑰건μ΄λ―λ‘ μ무κ²λ νμ§ μλλ€.
3. ν΅ μ λ ¬μ ν¨μ¨μ±
- ν΅ μ λ ¬μ ν¨μ¨μ±μ μμλ΄λ €λ©΄ ν λ² λΆν ν λμ ν¨μ¨μ±μ λ°νμΌ νλ€.
- λΆν μ νμν λ¨κ³λ₯Ό λΆλ₯ν΄ λ³΄μ.
- λΉκ΅: κ° κ°κ³Ό νΌλ²μ λΉκ΅νλ€.
- κ΅ν: μ μ ν λμ μΌμͺ½κ³Ό μ€λ₯Έμͺ½ ν¬μΈν°κ° κ°λ¦¬ν€κ³ μλ κ°μ κ΅ννλ€.
- κ° λΆν λ§λ€ λ°°μ΄ λ΄ κ° μμλ₯Ό νΌλ²κ³Ό λΉκ΅νλ―λ‘ μ΅μ Nλ² λΉκ΅νλ€.
- κ·Έλ¬λ κ΅ν νμλ λ°μ΄ν°κ° μ΄λ»κ² μ λ ¬λμ΄ μλλμ λ°λΌ λ€λ₯΄λ€.
- κ°λ₯ν κ°μ λͺ¨λ κ΅ννλ€ ν΄λ ν λ²μ κ° λκ°λ₯Ό κ΅ννλ―λ‘ ν λΆν μμ μ΅λ N/2λ² κ΅ννλ€.
- λλΆλΆμ κ²½μ° λ§€ λ¨κ³λ§λ€ κ΅νμ΄ μΌμ΄λμ§λ μλλ€. 무μμλ‘ μ λ ¬λ λ°μ΄ν°κ° μμ λ, μΌλ°μ μΌλ‘ λλ΅ κ°μ λ° μ λλ§ κ΅ννλ€. μ¦ νκ· μ μΌλ‘ N/4λ² μ λ κ΅ννλ€.
- λ°λΌμ νκ· μ μΌλ‘ Nλ² λΉκ΅νκ³ , N/4λ² κ΅ννλ€.
- O(N)μκ°μ λΆν μ μ€ννλ€κ³ λ³Ό μ μλ€.
- μ΄λ ν λ² λΆν ν λμ ν¨μ¨μ±μ΄λ€.
3.2 λΉ μ€λ‘ λνλΈ ν΅ μ λ ¬
- λΉ μ€ νκΈ°λ² κ΄μ μμ ν΅ μ λ ¬μ μ΄λ»κ² λΆλ₯ν κΉ?
- λ°°μ΄μ μμκ° Nκ°μΌ λ ν΅ μ λ ¬μ νμν λ¨κ³ μλ μ½ N * logNμ΄λ€.
- ν΅ μ λ ¬μ λΉ μ€λ O(NlogN)μ΄λ€.

4. ν΅ μ λ ¬μ μ΅μ μ μλ리μ€
- λ§μ μκ³ λ¦¬μ¦μμ μ΅μ μ μλ리μ€λ λ°°μ΄μ΄ μ΄λ―Έ μ λ ¬λμμ λλ€.
- κ·Έλ¬λ ν΅ μ λ ¬μμμ μ΅μ μ μλ리μ€λ λΆν ν νΌλ²μ΄ νμ λ°°μ΄μ νκ°μ΄λ° μμ λλ€.
- ν΅ μ λ ¬μμμ μ΅μ μ μλ리μ€λ νΌλ²μ΄ νμ νμ λ°°μ΄μ μ μ€μμ΄ μλ νμͺ½ λμ μμ λλ€.
- λ°°μ΄μ΄ μμ ν μ€λ¦μ°¨μ λλ λ΄λ¦Όμ°¨μμΌ λ μΌμ΄λ μ μλ€.
- μ¦, μ΄λ―Έ μ λ ¬λ λ°°μ΄μ ν΅ μ λ ¬μ μ΅μ μ μλ리μ€μ΄λ€.
- μ΅μ μ μλ리μ€μμ ν΅ μ λ ¬μ ν¨μ¨μ±μ O(N^2)μ΄λ€.
βπ»
λΉ μ€ νκΈ°λ²μ μ΅μ μ μλ리μ€μ μκ° λ³΅μ‘λλ₯Ό κΈ°μ€μΌλ‘ νλ€λ μ μ μκ°ν΄ 보면, ν΅ μ λ ¬μ μ νν λΉ μ€λ O(N^2)μ΄λ€.
κ·Έλ¬λ λ°°μ΄μ μμκ° Nκ°μΌ λ μ΄ λ°°μ΄μ μμλ€μ΄ μ΅μ μ μλ리μ€λ‘ μ λ ¬λμ΄ μμ νλ₯ μ κ·Ήν μ λ€.
μ νν νλ₯ μ 2/N!μ΄λ€.
λ°λΌμ ν΅ μ λ ¬μ μκ° λ³΅μ‘λλ O(N^2)μ΄λ, κ·Έ νλ₯ μ΄ κ·Ήν μ μΌλ―λ‘ ν΅μμ μΌλ‘ O(NlogN)μ΄λΌκ³ νκΈ°νλ€.
ν΅ μ λ ¬μ ν¨μ¨μ±μ μ’ λ μ νν λνλ΄κΈ° μν΄μλ λΉ μΈν νκΈ°λ²μ μ¬μ©ν μ μλ€.
Ξ(NlogN), O(N^2)
5. ν΅ μ λ νΈ
- 무μμλ‘ μ λ ¬λ λ°°μ΄μ΄ μμ λ, μ λ ¬μ μ ν΄λ λμ§λ§ λ°°μ΄μμ μ΄ λ²μ§Έλ‘ μμ κ° νΉμ μ΄λ€μ― λ²μ§Έλ‘ ν° κ°μ μκ³ μΆλ€κ³ νμ. κ°λ Ή λ°°μ΄μ μ€κ°κ°μ μκ³ μΆμ λ λμμ΄ λ κ²μ΄λ€.
- μ 체 λ°°μ΄μ μ λ ¬ν ν μ μ ν μΈλ±μ€λ₯Ό μ°Ύμ보면 μ΄ λ΅μ λ°λ‘ μ μ μλ€.
- κ·Έλ¬λ ν΅ μ λ ¬μ²λΌ λΉ λ₯Έ μ λ ¬μ μ¬μ©νλ€ νλλΌλ νκ· μ μΌλ‘ O(NlogN)μ μκ°μ΄ νμνλ€.
- μ΄λ° λ°©λ²λ³΄λ€λ ν΅ μ λ νΈ(Quick Select)λΌλ μκ³ λ¦¬μ¦μ μ¬μ©ν΄μ ν¨μ¬ λ λμ μ±λ₯μ λΌ μ μλ€.
- ν΅ μ λ νΈλ λΆν μ κΈ°λ°νλ©°, ν΅ μ λ ¬κ³Ό μ΄μ§ κ²μμ νμ΄λΈλ¦¬λ μ λλ‘ μκ°ν μ μλ€.
- 1μ₯μμ μ΄ν΄λ΄€λ―μ΄, λΆν μ΄ λλλ©΄ νΌλ² κ°μ λ°°μ΄ λ΄ μ¬λ°λ₯Έ μμΉμ μλ€.
- ν΅ μ λ νΈλ λ°°μ΄ λΆν μ€ μ°ΎμΌλ €λ κ°μ΄ μμΉν λ°°μ΄μμλ§ κ³μ κ²μμ μ΄μ΄λκ°λ€. μ¦, λ°°μ΄μ κ³μ λ°μΌλ‘ λλλ μ°ΎμΌλ €λ κ°μ΄ μμ λ°°μ΄μλ§ μ§μ€νλ€.
- λ²λ €μ§λ λ°°μ΄μ μμλ€μ μ λ ¬λμ§ μλλ€.
- ν΅ μ λ νΈμ νλ₯ν μ νλλ μ 체 λ°°μ΄μ μ λ ¬νμ§ μκ³ λ μ¬λ°λ₯Έ κ°μ μ°Ύμ μ μλ€λ κ²μ΄λ€.
5.1 ν΅ μ λ νΈμ ν¨μ¨μ±
- ν΅ μ λ νΈμ ν¨μ¨μ±μ νκ· μλ리μ€μμ O(N)μ΄λ€.
- κ° λΆν μ΄ μΌμ΄λ λλ§λ€ λΆν μ€μΈ νμ λ°°μ΄μ λν΄ Nλ¨κ³κ° νμνλ€.
- μμκ° 8κ°μΈ λ°°μ΄μ μκ°ν΄ 보μ. 8, 4, 2, μ΄ 3λ²μ λΆν μ΄ νμνλ€.
- 8 + 4 + 2 = 14λ‘ 8μ 2λ°°μμ κ·Όμ νλ€.
- μμκ° 64κ°μΈ λ°°μ΄μ 64 + 32 + 16 + 8 + 4 + 2 = 126λ¨κ³κ° νμνλ€.
- μμκ° Nκ°μΈ λ°°μ΄μ λν΄ λλ΅ 2N λ¨κ³κ° νμν¨μ μ μ μλ€.
6. λ€λ₯Έ μκ³ λ¦¬μ¦μ ν΅μ¬ μν μ νλ μ λ ¬
- νμ¬κΉμ§ μλ €μ§ κ°μ₯ λΉ λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μ μλλ O(NlogN)μ΄λ€. ν΅ μ λ ¬μ΄ κ°μ₯ μ λͺ νμ§λ§ λ€λ₯Έ μκ³ λ¦¬μ¦λ λ§λ€.
- μλ₯Ό λ€μ΄ λ³ν© μ λ ¬(merge sort)λν μ μλ €μ§ O(NlogN)μκ³ λ¦¬μ¦μ΄λ€.
- μ€μν μ μ κ°μ₯ λΉ λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μ΄ O(NlogN)μ μκ° λ³΅μ‘λλ₯Ό κ°λλ€λ μ¬μ€μΈλ°, μ΄ μλκ° λ€λ₯Έ μκ³ λ¦¬μ¦μλ μν₯μ λ―ΈμΉκΈ° λλ¬Έμ΄λ€.
- λ§μ μκ³ λ¦¬μ¦μμ μ λ ¬μ λ ν° νλ‘μΈμ€μ μΌλΆλ‘ μ¬μ©νλ€. μ΄λ κ² ν¨μΌλ‘μ¨ μ΅μ O(NlogN)μ μκ³ λ¦¬μ¦μ΄ λλ€.
7. λ§λ¬΄λ¦¬
- ν΅ μ λ ¬κ³Ό ν΅ μ λ νΈλ κ³¨μΉ μν λ¬Έμ λ₯Ό νΈλ ν¨μ¨μ μΈ ν΄κ²°λ²μ μ μνλ μ¬κ· μκ³ λ¦¬μ¦μ΄λ€.
- μ΄μ λ μ¬κ·λ₯Ό μ΄μ©ν΄ μ°μ°νλ μλ£ κ΅¬μ‘°λ₯Ό λ€λ£° μ€λΉκ° λμλ€.
'ποΈ μ± & κ°μ μ 리 > ποΈ λꡬλ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
15μ₯ μ΄μ§ νμ νΈλ¦¬λ‘ μλ ν₯μ (0) | 2022.12.26 |
---|---|
14μ₯ λ Έλ κΈ°λ° μλ£κ΅¬μ‘° (1) | 2022.12.09 |
12μ₯ λμ νλ‘κ·Έλλ° (0) | 2022.12.08 |
11μ₯ μ¬κ·μ μΌλ‘ μμ±νλ λ² (0) | 2022.12.07 |
10μ₯ μ¬κ·λ₯Ό μ¬μ©ν μ¬κ·μ λ°λ³΅ (0) | 2022.12.05 |
- μ»΄ν¨ν° μΈμ΄μλ λλΆλΆ λ΄μ₯ μ λ ¬ ν¨μκ° μμ΄ μ¬μ©μκ° μ€μ€λ‘ ꡬννλ λ° λλ μκ°κ³Ό λ Έλ ₯μ μκ»΄μ€λ€.
- μ»΄ν¨ν° μΈμ΄ μ€ λλ€μκ° λ΄λΆμ μΌλ‘ μ±νν μ λ ¬ μκ³ λ¦¬μ¦μ ν΅ μ λ ¬(quick sort)μ΄λ€.
- ν΅ μ λ ¬μ μ¬κ·λ₯Ό μ¬μ©ν μκ³ λ¦¬μ¦μΌλ‘, κ·Έ λμ λ°©μμ μμ보며 μ¬κ·λ₯Ό μ¬μ©ν΄ μ΄λ»κ² μκ³ λ¦¬μ¦μ μλλ₯Ό ν₯μμν€λμ§ λ°°μΈ μ μλ€.
- ν΅ μ λ ¬μ λ§€μ° λΉ λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μΌλ‘ νΉν νκ· μλ리μ€μμ λ§€μ° ν¨μ¨μ μ΄λ€.
- μ΅μ μ μλ리μ€(μμ μ λ ¬λ λ°°μ΄)μμλ μ½μ μ λ ¬μ΄λ μ ν μ λ ¬κ³Ό μ±λ₯μ΄ μ μ¬νλ λλΆλΆμ κ²½μ°μμλ ν¨μ¬ λΉ λ₯΄λ€.
- ν΅ μ λ ¬μ λΆν (partitioning)μ΄λΌλ κ°λ μ κΈ°λ°νλ€.
1. λΆν
- λ°°μ΄μ λΆν νλ€λ κ²μ λ°°μ΄λ‘λΆν° μμμ μ, μ¦ νΌλ²μ κ°μ Έμ νΌλ²λ³΄λ€ μμ μλ νΌλ²μ μΌμͺ½μ, ν° μλ νΌλ²μ μ€λ₯Έμͺ½μ λλ κ²μ΄λ€.
- νΌλ²μ μ΄λ€ κ°μ κ°μ Έμλ μκ΄μλ€. μ¦, λ°°μ΄μ κ°μ₯ μ€λ₯Έμͺ½μ κ°μ κ³ λ₯΄λ , κ°μ₯ μΌμͺ½μ κ°μ κ³ λ₯΄λ μκ΄μλ€λ λ»μ΄λ€.
- λΆν μ΄ λλλ©΄ νΌλ² μΌμͺ½μ κ°μ λͺ¨λ νΌλ²λ³΄λ€ μκ³ , μ€λ₯Έμͺ½μ κ°μ λͺ¨λ νΌλ²λ³΄λ€ ν¬λ€.
- λ€λ₯Έ κ°λ€μ μμ§ μμ ν μ λ ¬λμ§ μμμ§λ§ νΌλ² μ체λ μ΄μ λ°°μ΄ λ΄μμ μ¬λ°λ₯Έ μμΉμ μλ€.
2. ν΅ μ λ ¬
- ν΅ μ λ ¬ μκ³ λ¦¬μ¦μ λΆν κ³Ό μ¬κ·λ‘ μ΄λ€μ§λ€.
- λμ λ°©μμ λ€μκ³Ό κ°λ€.
- λ°°μ΄μ λΆν νλ€. νΌλ²μ μ΄μ μ¬λ°λ₯Έ μμΉμ μλ€.
- νΌλ²μ μμͺ½μ μλ νμ λ°°μ΄μ κ°κ° λ λ€λ₯Έ λ°°μ΄λ‘ λ³΄κ³ 1λ¨κ³μ 2λ¨κ³λ₯Ό μ¬κ·μ μΌλ‘ λ°λ³΅νλ€. μ¦, κ° νμ λ°°μ΄μ λΆν νκ³ κ° νμ λ°°μ΄μ μλ νΌλ²μ μμͺ½μμ λ μμμ§ νμ λ°°μ΄μ μ»λλ€. μ΄μ΄μ νμ λ°°μ΄μ λ€μ λΆν νλ κ³Όμ μ λ°λ³΅νλ€.
- νμ λ°°μ΄μ΄ μμλ₯Ό 0κ° λλ 1κ° ν¬ν¨νλ©΄ κΈ°μ 쑰건μ΄λ―λ‘ μ무κ²λ νμ§ μλλ€.
3. ν΅ μ λ ¬μ ν¨μ¨μ±
- ν΅ μ λ ¬μ ν¨μ¨μ±μ μμλ΄λ €λ©΄ ν λ² λΆν ν λμ ν¨μ¨μ±μ λ°νμΌ νλ€.
- λΆν μ νμν λ¨κ³λ₯Ό λΆλ₯ν΄ λ³΄μ.
- λΉκ΅: κ° κ°κ³Ό νΌλ²μ λΉκ΅νλ€.
- κ΅ν: μ μ ν λμ μΌμͺ½κ³Ό μ€λ₯Έμͺ½ ν¬μΈν°κ° κ°λ¦¬ν€κ³ μλ κ°μ κ΅ννλ€.
- κ° λΆν λ§λ€ λ°°μ΄ λ΄ κ° μμλ₯Ό νΌλ²κ³Ό λΉκ΅νλ―λ‘ μ΅μ Nλ² λΉκ΅νλ€.
- κ·Έλ¬λ κ΅ν νμλ λ°μ΄ν°κ° μ΄λ»κ² μ λ ¬λμ΄ μλλμ λ°λΌ λ€λ₯΄λ€.
- κ°λ₯ν κ°μ λͺ¨λ κ΅ννλ€ ν΄λ ν λ²μ κ° λκ°λ₯Ό κ΅ννλ―λ‘ ν λΆν μμ μ΅λ N/2λ² κ΅ννλ€.
- λλΆλΆμ κ²½μ° λ§€ λ¨κ³λ§λ€ κ΅νμ΄ μΌμ΄λμ§λ μλλ€. 무μμλ‘ μ λ ¬λ λ°μ΄ν°κ° μμ λ, μΌλ°μ μΌλ‘ λλ΅ κ°μ λ° μ λλ§ κ΅ννλ€. μ¦ νκ· μ μΌλ‘ N/4λ² μ λ κ΅ννλ€.
- λ°λΌμ νκ· μ μΌλ‘ Nλ² λΉκ΅νκ³ , N/4λ² κ΅ννλ€.
- O(N)μκ°μ λΆν μ μ€ννλ€κ³ λ³Ό μ μλ€.
- μ΄λ ν λ² λΆν ν λμ ν¨μ¨μ±μ΄λ€.
3.2 λΉ μ€λ‘ λνλΈ ν΅ μ λ ¬
- λΉ μ€ νκΈ°λ² κ΄μ μμ ν΅ μ λ ¬μ μ΄λ»κ² λΆλ₯ν κΉ?
- λ°°μ΄μ μμκ° Nκ°μΌ λ ν΅ μ λ ¬μ νμν λ¨κ³ μλ μ½ N * logNμ΄λ€.
- ν΅ μ λ ¬μ λΉ μ€λ O(NlogN)μ΄λ€.

4. ν΅ μ λ ¬μ μ΅μ μ μλ리μ€
- λ§μ μκ³ λ¦¬μ¦μμ μ΅μ μ μλ리μ€λ λ°°μ΄μ΄ μ΄λ―Έ μ λ ¬λμμ λλ€.
- κ·Έλ¬λ ν΅ μ λ ¬μμμ μ΅μ μ μλ리μ€λ λΆν ν νΌλ²μ΄ νμ λ°°μ΄μ νκ°μ΄λ° μμ λλ€.
- ν΅ μ λ ¬μμμ μ΅μ μ μλ리μ€λ νΌλ²μ΄ νμ νμ λ°°μ΄μ μ μ€μμ΄ μλ νμͺ½ λμ μμ λλ€.
- λ°°μ΄μ΄ μμ ν μ€λ¦μ°¨μ λλ λ΄λ¦Όμ°¨μμΌ λ μΌμ΄λ μ μλ€.
- μ¦, μ΄λ―Έ μ λ ¬λ λ°°μ΄μ ν΅ μ λ ¬μ μ΅μ μ μλ리μ€μ΄λ€.
- μ΅μ μ μλ리μ€μμ ν΅ μ λ ¬μ ν¨μ¨μ±μ O(N^2)μ΄λ€.
βπ»
λΉ μ€ νκΈ°λ²μ μ΅μ μ μλ리μ€μ μκ° λ³΅μ‘λλ₯Ό κΈ°μ€μΌλ‘ νλ€λ μ μ μκ°ν΄ 보면, ν΅ μ λ ¬μ μ νν λΉ μ€λ O(N^2)μ΄λ€.
κ·Έλ¬λ λ°°μ΄μ μμκ° Nκ°μΌ λ μ΄ λ°°μ΄μ μμλ€μ΄ μ΅μ μ μλ리μ€λ‘ μ λ ¬λμ΄ μμ νλ₯ μ κ·Ήν μ λ€.
μ νν νλ₯ μ 2/N!μ΄λ€.
λ°λΌμ ν΅ μ λ ¬μ μκ° λ³΅μ‘λλ O(N^2)μ΄λ, κ·Έ νλ₯ μ΄ κ·Ήν μ μΌλ―λ‘ ν΅μμ μΌλ‘ O(NlogN)μ΄λΌκ³ νκΈ°νλ€.
ν΅ μ λ ¬μ ν¨μ¨μ±μ μ’ λ μ νν λνλ΄κΈ° μν΄μλ λΉ μΈν νκΈ°λ²μ μ¬μ©ν μ μλ€.
Ξ(NlogN), O(N^2)
5. ν΅ μ λ νΈ
- 무μμλ‘ μ λ ¬λ λ°°μ΄μ΄ μμ λ, μ λ ¬μ μ ν΄λ λμ§λ§ λ°°μ΄μμ μ΄ λ²μ§Έλ‘ μμ κ° νΉμ μ΄λ€μ― λ²μ§Έλ‘ ν° κ°μ μκ³ μΆλ€κ³ νμ. κ°λ Ή λ°°μ΄μ μ€κ°κ°μ μκ³ μΆμ λ λμμ΄ λ κ²μ΄λ€.
- μ 체 λ°°μ΄μ μ λ ¬ν ν μ μ ν μΈλ±μ€λ₯Ό μ°Ύμ보면 μ΄ λ΅μ λ°λ‘ μ μ μλ€.
- κ·Έλ¬λ ν΅ μ λ ¬μ²λΌ λΉ λ₯Έ μ λ ¬μ μ¬μ©νλ€ νλλΌλ νκ· μ μΌλ‘ O(NlogN)μ μκ°μ΄ νμνλ€.
- μ΄λ° λ°©λ²λ³΄λ€λ ν΅ μ λ νΈ(Quick Select)λΌλ μκ³ λ¦¬μ¦μ μ¬μ©ν΄μ ν¨μ¬ λ λμ μ±λ₯μ λΌ μ μλ€.
- ν΅ μ λ νΈλ λΆν μ κΈ°λ°νλ©°, ν΅ μ λ ¬κ³Ό μ΄μ§ κ²μμ νμ΄λΈλ¦¬λ μ λλ‘ μκ°ν μ μλ€.
- 1μ₯μμ μ΄ν΄λ΄€λ―μ΄, λΆν μ΄ λλλ©΄ νΌλ² κ°μ λ°°μ΄ λ΄ μ¬λ°λ₯Έ μμΉμ μλ€.
- ν΅ μ λ νΈλ λ°°μ΄ λΆν μ€ μ°ΎμΌλ €λ κ°μ΄ μμΉν λ°°μ΄μμλ§ κ³μ κ²μμ μ΄μ΄λκ°λ€. μ¦, λ°°μ΄μ κ³μ λ°μΌλ‘ λλλ μ°ΎμΌλ €λ κ°μ΄ μμ λ°°μ΄μλ§ μ§μ€νλ€.
- λ²λ €μ§λ λ°°μ΄μ μμλ€μ μ λ ¬λμ§ μλλ€.
- ν΅ μ λ νΈμ νλ₯ν μ νλλ μ 체 λ°°μ΄μ μ λ ¬νμ§ μκ³ λ μ¬λ°λ₯Έ κ°μ μ°Ύμ μ μλ€λ κ²μ΄λ€.
5.1 ν΅ μ λ νΈμ ν¨μ¨μ±
- ν΅ μ λ νΈμ ν¨μ¨μ±μ νκ· μλ리μ€μμ O(N)μ΄λ€.
- κ° λΆν μ΄ μΌμ΄λ λλ§λ€ λΆν μ€μΈ νμ λ°°μ΄μ λν΄ Nλ¨κ³κ° νμνλ€.
- μμκ° 8κ°μΈ λ°°μ΄μ μκ°ν΄ 보μ. 8, 4, 2, μ΄ 3λ²μ λΆν μ΄ νμνλ€.
- 8 + 4 + 2 = 14λ‘ 8μ 2λ°°μμ κ·Όμ νλ€.
- μμκ° 64κ°μΈ λ°°μ΄μ 64 + 32 + 16 + 8 + 4 + 2 = 126λ¨κ³κ° νμνλ€.
- μμκ° Nκ°μΈ λ°°μ΄μ λν΄ λλ΅ 2N λ¨κ³κ° νμν¨μ μ μ μλ€.
6. λ€λ₯Έ μκ³ λ¦¬μ¦μ ν΅μ¬ μν μ νλ μ λ ¬
- νμ¬κΉμ§ μλ €μ§ κ°μ₯ λΉ λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μ μλλ O(NlogN)μ΄λ€. ν΅ μ λ ¬μ΄ κ°μ₯ μ λͺ νμ§λ§ λ€λ₯Έ μκ³ λ¦¬μ¦λ λ§λ€.
- μλ₯Ό λ€μ΄ λ³ν© μ λ ¬(merge sort)λν μ μλ €μ§ O(NlogN)μκ³ λ¦¬μ¦μ΄λ€.
- μ€μν μ μ κ°μ₯ λΉ λ₯Έ μ λ ¬ μκ³ λ¦¬μ¦μ΄ O(NlogN)μ μκ° λ³΅μ‘λλ₯Ό κ°λλ€λ μ¬μ€μΈλ°, μ΄ μλκ° λ€λ₯Έ μκ³ λ¦¬μ¦μλ μν₯μ λ―ΈμΉκΈ° λλ¬Έμ΄λ€.
- λ§μ μκ³ λ¦¬μ¦μμ μ λ ¬μ λ ν° νλ‘μΈμ€μ μΌλΆλ‘ μ¬μ©νλ€. μ΄λ κ² ν¨μΌλ‘μ¨ μ΅μ O(NlogN)μ μκ³ λ¦¬μ¦μ΄ λλ€.
7. λ§λ¬΄λ¦¬
- ν΅ μ λ ¬κ³Ό ν΅ μ λ νΈλ κ³¨μΉ μν λ¬Έμ λ₯Ό νΈλ ν¨μ¨μ μΈ ν΄κ²°λ²μ μ μνλ μ¬κ· μκ³ λ¦¬μ¦μ΄λ€.
- μ΄μ λ μ¬κ·λ₯Ό μ΄μ©ν΄ μ°μ°νλ μλ£ κ΅¬μ‘°λ₯Ό λ€λ£° μ€λΉκ° λμλ€.
'ποΈ μ± & κ°μ μ 리 > ποΈ λꡬλ μλ£κ΅¬μ‘°μ μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
15μ₯ μ΄μ§ νμ νΈλ¦¬λ‘ μλ ν₯μ (0) | 2022.12.26 |
---|---|
14μ₯ λ Έλ κΈ°λ° μλ£κ΅¬μ‘° (1) | 2022.12.09 |
12μ₯ λμ νλ‘κ·Έλλ° (0) | 2022.12.08 |
11μ₯ μ¬κ·μ μΌλ‘ μμ±νλ λ² (0) | 2022.12.07 |
10μ₯ μ¬κ·λ₯Ό μ¬μ©ν μ¬κ·μ λ°λ³΅ (0) | 2022.12.05 |