진행자

이준호

❗복잡도가 **O(n^2)**인 정렬 알고리즘

1. 선택정렬 (Selection Sort)


제일 작은/큰 값을 찾아 위치시키자!

def selection_sort(arr):
    n = len(arr)
    for i in range(n):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]

# Example usage:
arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("Sorted array is:", ar

selectionSort.gif

selectionSort.gif

2. 삽입정렬 (insertion Sort)


def insertion_sort(arr):
    for i in range(1, len(arr)):
        key = arr[i]
        j = i - 1
        while j >= 0 and key < arr[j]:
            arr[j + 1] = arr[j]
            j -= 1
        arr[j + 1] = key

# Example usage:
arr = [64, 25, 12, 22, 11]
insertion_sort(arr)
print("Sorted array is:", arr)

<aside> 💡 이미 정렬이 되었거나 거의 정렬이 된 경우라면? ⇒ O(n)

</aside>

insertionSort.gif