반응형
설명
- 가장 작은 것을 선택해서 가장 앞으로 보내는 방식
- 시간 복잡도 : O(N^2)
- 참고
예시
1. 초기값- 1 10 5 8 7
- 1(i)(m) 10 5 8 7
- 1 10 5 8 7
- 1 10(i) 5(m) 8 7
- 1 5(i) 10(m) 8 7
코드
public class Solution {
public static int[] sort(int[] data) {
for (int i = 0; i < data.length; i++) {
int minValue = Integer.MAX_VALUE;
int minIndex = -1;
// 제일 작은 값 탐색
for (int j = i; j < data.length; j++) {
if (minValue > data[j]) {
minValue = data[j];
minIndex = j;
}
}
// 기준 값과 작은 값 위치 변경
int temp = data[i];
data[i] = data[minIndex];
data[minIndex] = temp;
}
return data;
}
}
class SolutionTest extends Specification {
@Unroll
def "#data -> #result"() {
expect:
Solution.sort(data as int[]) == result
where:
data | result
[1, 10, 5, 8, 7, 6, 4, 3, 2, 9] | [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
}
}
반응형
'Development > Algorithm' 카테고리의 다른 글
[Algorithm] 힙 정렬(Heap Sort) (0) | 2020.12.28 |
---|---|
[Algorithm] 병합 정렬(Merge Sort) (0) | 2020.12.28 |
[Algorithm] 퀵정렬(Quick Sort) (0) | 2020.12.28 |
[Algorithm] 버블정렬(Bubble Sort) (0) | 2020.12.28 |
[Algorithm] 삽입정렬(Insertion Sort) (0) | 2020.12.28 |