Oh My Algorithm
Algorithm Guidecomplexity: O(n²)

선택 정렬 (Selection Sort)

배열에서 가장 작은(혹은 가장 큰) 요소를 반복적으로 찾아 맨 앞의 요소와 교체하는 방식으로 정렬을 수행하는 직관적인 제자리 정렬 알고리즘입니다.

01 알고리즘 작동 원리 탐색

Interactive Step-by-Step
Selection Sort
45
12
89
34
67
23
56
10

선택 정렬을 시작합니다. 매 반복마다 미정렬 영역에서 최솟값을 찾아 앞으로 배치합니다.

Logic Node1 / 14

02 쉽게 이해하기

For Everyone
🔑비유

남은 것 중 가장 작은 걸 골라 맨 앞에 놓는 것을 반복합니다.

💡쉽게 말하면

매번 최솟값을 찾아 앞에서부터 채웁니다.

교환 횟수는 적지만 비교는 항상 O(n²)이에요.

📍어디에 쓰나
  • 교환 비용이 클 때
  • 정렬 개념 학습

03 파이썬 구현 코드

선택 정렬 (Selection Sort)의 핵심 로직을 담은 표준 구현 예시입니다. 가급적 간결하고 읽기 쉬운 코드로 작성되었습니다.

core_implementation.py
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]
    return arr

04 자주 묻는 질문

FAQ
선택 정렬 (Selection Sort)란 무엇인가요?+

배열에서 가장 작은(혹은 가장 큰) 요소를 반복적으로 찾아 맨 앞의 요소와 교체하는 방식으로 정렬을 수행하는 직관적인 제자리 정렬 알고리즘입니다.

선택 정렬 (Selection Sort)의 시간복잡도는 어떻게 되나요?+

선택 정렬 (Selection Sort)의 시간복잡도는 O(n²) 입니다. 시각화의 단계별 진행을 따라가며 왜 이런 복잡도가 나오는지 직접 확인할 수 있습니다.

선택 정렬 (Selection Sort)은(는) 어디에 사용하나요?+

교환 비용이 클 때, 정렬 개념 학습.

선택 정렬 (Selection Sort)를 쉽게 비유하면?+

남은 것 중 가장 작은 걸 골라 맨 앞에 놓는 것을 반복합니다.