선택 정렬은 기본 정렬중에서 가장 쉽게 생각 할 수 있는 정렬 방식이다.
선택 정렬의 컨셉은 전체의 값을 비교해보고 가장 작은 수를 가장 앞으로 보내는 방식을 취하고 있다.
따라서 [a1,a2,a3,a4]가 각각 [1,4,3,2] 라고하면 우선 a1,a2,a3,a4를 전체다 비교해보고 가장 작은 수인 a1이 가장 앞에 위치한다.
[a1,a2,a3,a4] = [1,4,3,2]
다음 [a2,a3,a4]를 비교해본 결과 a4가 가장 작기 때문에 2번째 자리인 a2와 a4의 위치를 바꿔준다.
[a1,a4,a3,a2] = [1,2,3,4]
다음은 [a3,a2]를 비교하고 더 작은 수인 a3을 3번째 위치에 위치시키려고 했는데 a3이 이미 3번째 위치에 있음으로 그대로 반환하면 된다.
[a1,a4,a3,a2] = [1,2,3,4]
이렇게 해서 모든 정렬이 완료되었다.
이를 코드로 작성해보면
def select_sort(data):
for stand in range(len(data)-1):
lowest = stand
for index in range(stand+1, len(data)):
if data[lowest] > data[index]:
lowest = index
data[stand] , data[lowest] = data[lowest], data[stand]
return data
같이 된다.