알고리즘 구현

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];
		}
	}
}