Language-LAB/Algorithm
[알고리즘] 선택정렬(Selection Sort)
JS LAB
2023. 7. 8. 18:35
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
반응형