데이터를 특정 기준에 따라 순서대로 나열하는 것
검색 대상 배열에서 가장 작은 데이터를 선택해 맨 앞의 원소와 바꾸기
여기서 핵심은, 매번 가장 작은 것을 선택하는것
for i in range(len(arr)):
min_idx = i
for j in range(i+1, len(arr)):
if arr[min_idx] > arr[j]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]
정렬된 첫 번째는 제외하고 이후 데이터 중에서 가장 작은 데이터인 1을 선택해 처리되지 않은 데이터 중 가장 앞에 있는 데이터 4와 바꿉니다.
두번째 4 <-> 두번째로 작은 1
정렬된 데이터 제외하고 이후 데이터 중에서 가장 작은 데이터인 2를 선택해 처리되지 않은 데이터 중 가장 앞의 데이터 4와 바꿉니다.
세번째 4 <-> 세번째로 작은 2
마지막까지 이와 같은 방식으로 반복합니다.
완료!
N-1번 만큼 가장 작은 수를 찾기 + 매번 가장 작은 수 찾기 위한 배교 연산
=> N + (N-1) + (N-2) + ... + 2
= N(N+1)/2
-> O(N^2)