반응형
자바 선택정렬 알고리즘, Java Selection Sort Algorithm
선택정렬이란,
데이터의 갯수-1 만큼 반복하면서 가장 작은 값을 찾아 현재 반복되는 인덱스의 값과 변경하는 정렬입니다.
1. 데이터 내 가장 작은 값을 찾는다.
2. 현재 반복되는 인덱스의 값과 가장 작은 값을 변경한다.
3. 1~2의 작업을 반복한다.
장점
데이터양이 적을 때 효율이 좋다.
단점
데이터양이 많은 때 효율이 떨어진다.
즉, 적은 데이터를 정렬할 때 사용하시면 됩니다.
테스트 코드를 보도록 하죠.
import java.util.Arrays;
public class SelectionSortTest {
public static void sort(int array[]) {
for(int i=0; i<array.length-1; i++) {
int lowerIndex = getLowerIndex(array, i);
swapValue(array, i, lowerIndex);
System.out.println(Arrays.toString(array));
}
}
public static int getLowerIndex(int array[], int j) {
int index = j;
for(int i=j; i<array.length; i++) {
if(array[i] < array[index]) {
index = i;
}
}
return index;
}
public static void swapValue(int array[], int currentIndex, int lowerIndex) {
int temp = array[currentIndex];
array[currentIndex] = array[lowerIndex];
array[lowerIndex] = temp;
}
}
getLowerIndex 메소드가 가장 작은 값의 인덱스를 리턴하고,
swapValue 메소드가 반복중 현재 인덱스와 최소 값의 인덱스 값을 교환합니다.
아래의 배열을 넘겨 실행 결과를 보도록 하죠.
int data[] = new int[] {5,7,3,1,4};
SelectionSortTest.sort(data);
실행결과
0 : [5, 7, 3, 1, 4]
1 : [1, 7, 3, 5, 4]
2 : [1, 3, 7, 5, 4]
3 : [1, 3, 4, 5, 7]
4 : [1, 3, 4, 5, 7]
위처럼 순차적으로 현재 반복되는 인덱스의 값과 최소값을 비교하여 치환하면서 정렬하게 됩니다.
반응형
'Programing > Algorithm' 카테고리의 다른 글
Java Javascript 프로그래머스 Level1 두 정수 사이의 합 (0) | 2018.07.04 |
---|---|
Java 프로그래머스 Level1 가운데 글자 가져오기 (0) | 2018.05.16 |
Java, Javascript 프로그래머스 Level1 수박수박수박수박수박수? (0) | 2018.05.16 |
Java, Javascript 프로그래머스 Level1 짝수와 홀수 (0) | 2018.05.16 |
Java 프로그래머스 Level1 나누어 떨어지는 숫자 배열 (0) | 2018.05.15 |
댓글