알고리즘/알고리즘 도감
선택 정렬
개발 초보
2022. 6. 8. 20:52
지난 글: [알고리즘] - 버블 정렬
선택 정렬(selection sort)에서는 '수열 중에서 최솟값을 검색해서 왼쪽 끝에 있는 숫자와 교체'하는 작업을 반복한다. 수열 중에서 최솟값을 찾을 때는 선형 탐색을 사용한다.
1
6 1 7 8 9 3 5 4 2
여기에서 1부터 9까지 숫자를 정렬하도록 한다.
2
수열을 선형 탐색해서 최솟값을 찾는다.
6 1 7 8 9 3 5 4 2
--
최솟값 1을 찾았다. 최솟값인 1을 왼쪽 끝에 있는 6과 교체하고 1은 정렬이 끝난 것으로 간주한다. (최솟값이 이미 왼쪽 끝에 있는 경우는 아무런 작업을 하지 않는다.)
1 6 7 8 9 3 5 4 2
1라운드 종료.
3
남은 숫자를 선형 탐색해서 최솟값을 찾는다. 이번에는 최솟값 2를 발견했다.
1 6 7 8 9 3 5 4 2
--
2를 왼쪽에서 두 번째에 있는 6과 교체하고 정렬을 마친다.
1 2 7 8 9 3 5 4 6
4
같은 작업을 모든 숫자가 정렬을 마칠 때까지 반복한다.
5
정렬을 완료했다.
1 2 3 4 5 6 7 8 9
알고리즘 재밌다
참고 서적:
