이번 포스트는 선택 정렬에 대해 정리 해보려고 한다.
먼저 선택 정렬이란
선택정렬
- 제자리 정렬 알고리즘의 하나이다.
제자리 정렬 : 입력 배열(정렬되지 않은 값) 이외에 다른 추가 메모리를 요구하지 않는 방법
- 패스스루마다 원소를 넣을 위치는 정해져있고, 어떤 원소를 넣을지 선택하는 알고리즘.
선택 정렬은 다음과 같은 단계를 따른다.
int min = nums[i]
temp = nums[i]
nums[i] = min
코드는 다음과 같다.
int length = nums.length - 1;
for ( int i = 0; i < length; i ++ ){
int min = nums[i];
int position = i;
for ( int j = i + 1; j < nums.length; j++ ){
if ( nums[j] < min ) {
min = nums[j];
position = j;
}
}
nums[position] = nums[i];
nums[i] = min;
}
Arrays.stream(nums).forEach(System.out::println);