λ°μν
π₯ μ½μ μ λ ¬ (Insertion Sort) – μ§κ΄μ μ΄κ³ ν¨μ¨μ μΈ μ λ ¬ λ°©λ²
1. κ°λ
μ½μ
μ λ ¬μ μΉ΄λ μ λ ¬κ³Ό λΉμ·ν λ°©μμΌλ‘ μλνλ€.
λ λ²μ§Έ μμλΆν° μμν΄μ, μμͺ½ μ λ ¬λ ꡬκ°μ μμ μ΄ λ€μ΄κ° μ리λ₯Ό μ°Ύμ μ½μ
νλ λ°©μμ΄λ€.
2. μκ³ λ¦¬μ¦ λμ λ°©μ
- λ λ²μ§Έ μμλΆν° μμ
- νμ¬ μμλ₯Ό μμͺ½ μ λ ¬λ ꡬκ°κ³Ό λΉκ΅
- μκΈ°λ³΄λ€ ν° κ°λ€μ λ€λ‘ ν μΉΈμ© μ΄λ
- μλ§μ μ리μ μ½μ
3. C# μμ μ½λ (μλ‘μ΄ μμ )
void InsertionSort(int[] arr)
{
for (int i = 1; i < arr.Length; i++)
{
int key = arr[i];
int j = i - 1;
// μμͺ½ μ λ ¬λ ꡬκ°μμ ν° κ°μ λ€λ‘ λ―Όλ€
while (j >= 0 && arr[j] > key)
{
arr[j + 1] = arr[j];
j--;
}
// μ¬λ°λ₯Έ μμΉμ μ½μ
arr[j + 1] = key;
}
}
4. μκ°/κ³΅κ° λ³΅μ‘λ
κ²½μ° | μκ° λ³΅μ‘λ |
μ΅μ (μμ μ λ ¬λ λ°°μ΄) | O(n²) |
νκ· | O(n²) |
μ΅μ (μ΄λ―Έ μ λ ¬λ λ°°μ΄) | O(n) |
- κ³΅κ° λ³΅μ‘λ: O(1)
5. νΉμ§
- μ λ ¬μ΄ κ±°μ λμ΄ μμμλ‘ λΉ λ₯΄λ€
- μμ μ λ ¬ (κ°μ κ°μ μμκ° μ μ§λ¨)
- μ½λ κ΅¬μ‘°κ° λ¨μνκ³ μ§κ΄μ μ΄μ΄μ μ΄λ³΄μμκ² μΆμ²
- λ°μ΄ν°κ° λ§μ κ²½μ°μλ μ±λ₯μ΄ λ¨μ΄μ§λ€
6. μμ
[4, 2, 5, 1]
→ 2 μ½μ
→ [2, 4, 5, 1]
→ 5 μ½μ
→ [2, 4, 5, 1]
→ 1 μ½μ
→ [1, 2, 4, 5]
λ°μν
'C#' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
C# - λ³ν© μ λ ¬ (Merge Sort) (0) | 2025.07.11 |
---|---|
C# - ν΅ μ λ ¬ (Quick Sort) (1) | 2025.07.11 |
C# - μ λ ¬ μκ³ λ¦¬μ¦ β μ ν, μ½μ , ν΅, λ³ν© μ λ ¬ μκ°λ³΅μ‘λ λΉκ΅ (0) | 2025.07.11 |
C# - μκ° λ³΅μ‘λ vs κ³΅κ° λ³΅μ‘λ (2) | 2025.07.11 |
C# - Big-O νκΈ°λ² μ 리 β μκ³ λ¦¬μ¦ μ±λ₯μ κΈ°μ€ (0) | 2025.07.11 |