알고리즘

[Algorithm/java] 선택 정렬의 의미와 예시 코드

바울리나 2021. 4. 13. 00:34

선택 정렬(Selection Sort)

정렬하는 방식 중 하나이다. 주어진 데이터값을 모두 비교해 최솟값의 위치를 기억해뒀다가 그 값을 앞으로 교환한다. 데이터 전체에서 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환하는 방식으로 특정 배열의 값을 정리한다.

예시 코드

for (int i = 0; i < num.length - 1; i++){
    for (int j = i + 1; j < num.length; j++){
        if (num[i] > num[j]){
            int temp = num[j];
            num[j] = num[i];
            num[i] = temp;
        }
    }
}

결국, 해당 배열에서 지속적으로 i와 j를 비교해 숫자가 더 큰 것을 뒤로 보내는 방법이다.

중요한 것은 temp와 같은 임시 int 값을 만들어 숫자를 임시적으로 담아주어야 두 개의 숫자를 온전히 바꿀 수 있다는 것이다.


모든 인자를 다 비교하기 때문에 시간이 오래 걸려 효율성이 좋다고 보기는 어렵지만 간단하면서도 쉬운 방식이라 알고리즘에서 많이 사용된다.

참고

Selection_Array_Fork_Dance


선택 정렬 포크 댄스
선택 정렬에 대한 개념을 확실히 이해 시켜 주는 포크 댄스!