알고리즘 구현
SelectionSort[선택 정렬] _java
HUII
2020. 3. 4. 11:32
< Alg동작 원리 >
1. 전체 데이터에서 가장 작은값을 고른다.
2. 그 값을 temp(result) 배열에 저장
2. 해당 값을 삭제한다.
3. temp 배열을 다 채울 때 까지 반복
import java.util.Arrays;
public class SelectionSort {
public static void main(String[] args) {
int[] data = { 58, 8, 28, 3, 18, 6, 33, 20 };
selectionSort(data);
System.out.println(Arrays.toString(data));
}
public static void selectionSort(int[] data) {
int[] result = new int[data.length];
int count = 0;
int min = 0;
int minValue = Integer.MAX_VALUE;
while (count < result.length) {
for (int i = 0; i < data.length; i++) {
if (data[i] != -1) {
if (data[i] < minValue) {
min = i;
minValue = data[i];
}
}
}
result[count++] = minValue;
data[min] = -1;
minValue = Integer.MAX_VALUE;
}
for (int i = 0; i < data.length; i++) {
data[i] = result[i];
}
}
}