11. Selection Sort
페이지 정보
작성자 관리자 댓글 0건 조회 4,571회 작성일 20-03-30 08:51본문
11. Selection Sort
간단하지만 성능은 안 좋은 선택 정렬에 대해 알아보겠습니다.
성능이 좋지 않아도 배우는 이유는 코드가 간단하고, 작은 수(보통 30 이하)에서는 효과적이기 때문입니다.
선택 정렬은 배열을 처음부터 훑어서 가작 작은 수를 제일 앞에 가져다 놓습니다.
그 다음, 다시 배열을 훑어서 두 번째로 작은 수를 두 번째 칸에 가져다 놓습니다.
계속 반복해서 끝까지 정렬합니다.
성능이 안 좋을 수밖에 없는 게, 배열을 한 번 훑었을때 숫자 하나밖에 정렬을 못 합니다.
하지만 사람이 정렬을 하는 방법과 상당히 유사합니다. 간단히 예제를 보죠.
[5,1,4,7,2,6,8,3] 배열을 처음부터 훑어 가장 작은 1을 앞으로 보냅니다.
[1,5,4,7,2,6,8,3] 다시 훑어 2를 앞으로 보냅니다.
[1,2,4,7,5,6,8,3] 3을 앞으로
[1,2,3,7,5,6,8,4]
[1,2,3,4,5,6,8,7]
[1,2,3,4,5,6,8,7]
[1,2,3,4,5,6,7,8] 정렬 끝
정렬 알고리즘과 연관 되어 이해하면 좋은 것이 시간복잡도를 계산하는 거지만,
요즘 컴퓨터가 너무 좋아서 시간복잡도는 별로 중요하지 않지만 대규모 빅이터에서는 대기 시간을 줄이기 위해 빠른 정렬 알고리즘을 사용하기도 합니다.
