본문 바로가기
Language-LAB/Algorithm

[알고리즘] 선택정렬(Selection Sort)

by JS LAB 2023. 7. 8.
728x90
반응형

다른 정렬 알고리즘보다 더 일상적인 방법의 알고리즘이라 할 수 있는 것이 바로 선택 정렬

 

1. 전체 값 중 가장 작은 값을 찾음
2. 해당 값을 맨 첫번째에 배치함
3. 첫번째 값을 제외하고 가장 작은 값을 찾아 두번째에 배치함
4. 두번째, 세번째, ... n-1번째 값을 제외하고 가장 작은 값을 찾아 정해진 위치에 배치함.

선택 정렬의 시간복잡도

중간에 정렬된 상태라면 종료될 수 있는 버블 정렬과는 다르게, 선택 정렬의 경우 반드시 번의 비교 연산을 수행해야 하기 때문에 약  번의 연산을 필요로 합니다.

시간복잡도는 

 

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]

n = int(input())

elements = list(map(int, input().split()))

selection_sort(elements)

print(*elements)
728x90
반응형