CODEDRAGON ㆍDevelopment/Algorithm, DataStructure
Selection Sort(선택정렬)
선택정렬(Selection Sort) 알고리즘은 반복적으로 특정 값을 정렬된 최종 위치에 배치시킴으로써 값들의 목록을 정렬한다. 즉, 목록의 각 위치에 대해서 그 위치에 배치되어야 하는 값을 선택하고, 그 값을 그 곳에 배치하게 됩니다.
단계 |
설명 |
|
정렬되지 않은 데이터 |
|
3에서 시작합니다. 3을 최소값에 넣고 오른쪽 방향으로 작은값이 있는지 비교해 갑니다. |
|
오른쪽의 9는 3보다 작지 않습니다. 그러므로 다음 오른쪽의 값과 비교를 진행하기 위해 넘어갑니다. |
|
오른쪽의 6도 3보다 작지 않습니다. 다음 비교를 위해 오른쪽으로 진행합니다. |
|
1은 3보다 작으므로 Minimum Value에 집어넣고 3은 1로 1은 3으로 서로 위치를 바꿔줍니다. 최소값이 변경되었으며 다시 오른쪽으로 진행하면서 비교합니다. |
|
오른쪽의 2는 1보다 작지않습니다. 다음 비교를 위해 오른쪽으로 진행해야 하지만 모든 요소를 순회했으므로 현재 비교는 종료됩니다. |
|
다음 비교를 위해 비교값 위치를 다음으로 이동합니다. 어떤 값도 비교되지 않은 상태이므로 현재 값인 9가 Minimum Value가 됩니다. 비교를 위해 오른쪽으로 진행합니다. |
|
오른쪽의 6도 9보다 작습니다. 그러므로 Minimum Value 6으로 변경한 후 서로위치를 변경합니다. 다음 비교를 위해 오른쪽으로 진행합니다. |
|
오른쪽의 3은 6보다 작습니다. 그러므로 Minimum Value를 3으로 변경한 후 서로위치를 변경합니다. 다음 비교를 위해 오른쪽으로 진행합니다. |
|
오른쪽의 2은 3보다 작습니다. 그러므로 Minimum Value를 2로 변경한 후 서로위치를 변경합니다. 다음 비교를 위해 오른쪽으로 진행합니다. |
|
다음 비교를 위해 비교값 위치를 다음으로 이동합니다. 어떤 값도 비교되지 않은 상태이므로 현재 값인 9가 Minimum Value가 됩니다. 비교를 위해 오른쪽으로 진행합니다. |
|
오른쪽의 6은 9보다 작습니다. 그러므로 Minimum Value를 6로 변경한 후 서로위치를 변경합니다. 다음 비교를 위해 오른쪽으로 진행합니다. |
|
오른쪽의 3은 6보다 작습니다. 그러므로 Minimum Value를 3로 변경한 후 서로위치를 변경합니다. 모든 순회를 마쳤습니다. |
|
다음 순회를 위해 위치를 오른쪽으로 이동합니다. 어떤 값도 비교되지 않은 상태이므로 현재 값인 9가 Minimum Value가 됩니다. 비교를 위해 오른쪽으로 진행합니다.
|
|
오른쪽의 6은 9보다 작습니다. 그러므로 Minimum Value를 6로 변경한 후 서로위치를 변경합니다. 모든 순회를 마쳤습니다. |
|
다음 순회를 위해 위치를 오른쪽으로 이동합니다. 어떤 값도 비교되지 않은 상태이므로 현재 값인 9가 Minimum Value가 됩니다. 비교를 위해 오른쪽으로 진행해야 하지만 비교할 값이 없으므로 선택 정렬을 종료합니다.
|
|
선택 정렬의 결과를 보면 1, 2, 3, 6, 9로 정렬된 상태로 변경된 것을 확인할 수 있습니다. |
'Development > Algorithm, DataStructure' 카테고리의 다른 글
key-value pair (키와 값의 쌍) (0) | 2018.10.11 |
---|---|
알고지즘을 표현하는 기본 스텝 (0) | 2018.10.03 |
3차원 배열을 이용한 선형 리스트의 구현 (0) | 2018.09.05 |
Queue 활용 사례 (0) | 2018.08.28 |
리스트(list) (0) | 2018.08.21 |