알고리즘/정렬

[알고리즘]-[정렬]-선택정렬(JAVA)

팡스 2018. 10. 30. 11:19

선택정렬

개념

    • 최소값을 앞으로 이동시키며 정렬하는 방식. (오름차순 기준)
    1. 주어진 배열에서 최소값을 찾는다.
    2. 찾은 최소값을 배열의 맨 앞에 위치한 값과 교체한다.
    3. 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.


처리과정



선택정렬을 인덱스가 중요한데 최소값을 인덱스를 0부터 마지막 인덱스까지 증가 시키면서 최소값을 해당 인덱스의 값과 교체하면 된다.

위의 배열에서 최소값을 찾으면 7번 인덱스에 값 2가 최소값인걸 확인 할 수 있다.

이 값을 0번 인덱스의 값 14와 교체 한다.




기준점이 되는 인덱스를 1 올리고 그 다음 최소값을 찾아 같은 방법으로 정렬을 시작한다.

자세한 과정은 애니메이션을 확인해보면 알 수 있다.




소스 (JAVA)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public int[] getSelectionSortResult(int[] _intArr) {
        
        for (int i=0; i < _intArr.length; i++) {
            int index = i;
            
            for(int j=i; j < _intArr.length; j++) {
                
                if (_intArr[index] > _intArr[j]) {
                    index = j;
                }
            }
            int tmpA = _intArr[i];
            _intArr[i] = _intArr[index];
            _intArr[index] = tmpA;
        }
        return _intArr;
    }
cs