리스트 내에 있는 수들 중에서 최솟값을 첫번째에 넣고, 그 다음 값들에 대해서 두번째에 넣고 ..... 하는 행위들을 반복해서 진행하는 정렬 방식
해당 정렬 알고리즘에는 과정이 있다.
- 주어진 배열 중 최솟값을 찾는다.
- 그 값을 배열 내에 있는 가장 앞 값과 위치를 변경한다.
- 가장 앞 값을 제외한 배열 내에서 1~2 과정을 반복한다.
소스
작성 언어: java
public static int[] calc(int[] list){
int list_len = list.length;
for(int i = 0; i < list_len; i++){
int now_num = list[i];
// 최솟값을 찾아야 하는 리스트
int[] findList = Arrays.copyOfRange(list, i, list_len);
int min = 1000000;
int min_count = 0;
int findList_len = findList.length;
// 최솟값과 최솟값의 순번 구하기
for(int j = 0; j < findList_len; j++){
if(findList[j] < min) {
min = findList[j];
min_count = j;
}
}
// 최솟값과 i 값 스왑
list[i] = list[min_count + i];
list[min_count + i] = now_num;
}
return list;
}
참고
https://gmlwjd9405.github.io/2018/05/06/algorithm-selection-sort.html