계발자 블로그

[알고리즘] 선택정렬 본문

Algorithm

[알고리즘] 선택정렬

더구더구 2022. 5. 17. 20:59

선택정렬(Selection Sort)이란 ?

선택정렬은 데이터를 정렬 할 때 가장 작은 수를 선택 하여 맨 앞자리의 수와 바꿔주는 정렬입니다.

 

9 1 8 4 2 3 5 6 7 이런 배열이 있다면

 

1 9 8 4 2 3 5 6 7

1 2 8 4 9 3 5 6 7

1 2 3 4 9 8 5 6 7

...

1 2 3 4 5 6 7 9 8

1 2 3 4 5 6 7 8 9

순으로 정렬 되는 것이 선택정렬입니다.

 

    public int[] solution(int n, int[] arr) {
        
        for(int i=0; i<n; i++) {
            int idx = i;
            
            for(int j=i+1; j<n; j++) {
                if(arr[j] < arr[idx]) {
                    idx = j;
                }
            }
            
            int tmp = arr[i];
            arr[i] = arr[idx];
            arr[idx] = tmp;
        }
        
        return arr;
    }

이와 같이 코드로 나타낼 수 있습니다.