-
[알고리즘]-[정렬]-선택정렬(JAVA)알고리즘/정렬 2018. 10. 30. 11:19
선택정렬
개념
- 최소값을 앞으로 이동시키며 정렬하는 방식. (오름차순 기준)
- 주어진 배열에서 최소값을 찾는다.
- 찾은 최소값을 배열의 맨 앞에 위치한 값과 교체한다.
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
처리과정
선택정렬을 인덱스가 중요한데 최소값을 인덱스를 0부터 마지막 인덱스까지 증가 시키면서 최소값을 해당 인덱스의 값과 교체하면 된다.
위의 배열에서 최소값을 찾으면 7번 인덱스에 값 2가 최소값인걸 확인 할 수 있다.
이 값을 0번 인덱스의 값 14와 교체 한다.
기준점이 되는 인덱스를 1 올리고 그 다음 최소값을 찾아 같은 방법으로 정렬을 시작한다.
자세한 과정은 애니메이션을 확인해보면 알 수 있다.
소스 (JAVA)1234567891011121314151617public 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 '알고리즘 > 정렬' 카테고리의 다른 글
[알고리즘]-[정렬]-퀵정렬(JAVA) (0) 2018.10.30 [알고리즘]-[정렬]-합병정렬(JAVA) (0) 2018.10.30 [알고리즘]-[정렬]-삽입정렬 (JAVA) (0) 2018.10.30 [알고리즘]-[정렬]-버블정렬(JAVA) (0) 2018.10.29 댓글