알고리즘/정렬
[알고리즘]-[정렬]-선택정렬(JAVA)
팡스
2018. 10. 30. 11:19
선택정렬
개념
- 최소값을 앞으로 이동시키며 정렬하는 방식. (오름차순 기준)
- 주어진 배열에서 최소값을 찾는다.
- 찾은 최소값을 배열의 맨 앞에 위치한 값과 교체한다.
- 맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
처리과정
선택정렬을 인덱스가 중요한데 최소값을 인덱스를 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 |