Programing/Algorithm

자바 선택정렬 알고리즘, Java Selection Sort Algorithm

리커니 2020. 1. 7.
반응형

 

자바 선택정렬 알고리즘, 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, 37, 5, 4]
3 : [1, 3, 4, 5, 7]
4 : [1, 3, 4, 57]

 

위처럼 순차적으로 현재 반복되는 인덱스의 값과 최소값을 비교하여 치환하면서 정렬하게 됩니다.

 

반응형

댓글

💲 추천 글