선택정렬(Selection Sort)
- 대상 데이터에서 최대나 최소 데이터를 데이터가 나열된 순으로 찾아가며 선택하는 방법
- 단점 : 구현 방법이 복잡, 시간 복잡도 O(n^2) -> 비효율적
선택정렬 과정
- 남은 정렬 부분에서 최솟값 또는 최댓값을 찾는다.
- 남은 정렬 부분에서 가장 앞에 있는 데이터와 선택된 데이터를 swap
- 가장 앞에 있는 데이터의 위치를 변경해(index++) 남은 정렬 부분의 범위 축소
- 전체 데이터 크기만큼 index 가 커질 때까지, 즉 남은 정렬 부분이 없을 때까지 반복
1427 소트인사이드 (백준)
num=list(input())
n = len(num)
k = 0
max_num = -1
while k<n and max_num!=0: # k는 max값 구해줄 index
max_num = max(num[k:])
for i in range(n):
if max_num == 0: # max_num==0일 시, 바뀔 값이 없으므로 break
break
if max_num == num[i]: #max_num과 num[i]가 같을 시 swap -> 단 같은 값이 여러개 있을 수 있으니 모든 값을 확인하며 바꿔
num[k],num[i]=num[i],num[k]
k+=1
print(''.join(num))