ALGORITHM/이론

Selection sort. 선택정렬

SZCODE 2021. 1. 4. 17:56

1. 주어진 숫자 중에 최솟값을 선택한다.

2. 최솟값과 맨 앞의 위치(정렬된 것을 제외한)를 변경한다.

3. 정렬된 것은 제외하고 1, 2 를 반복한다. 

 

예시 )

5 1 8 2 6 에서 최솟값을 찾는다. : 1 , 맨 앞의 5와 바꾼다. // 1회전

1 5 8 2 6 에서 맨 앞의 1을 제외한 최솟값을 찾는다 : 2 , 정렬된 것을 제외한 맨 앞의 5와 바꾼다. // 2회전

1 2 8 5 6 에서 정렬된 1,2 를 제외한 최솟값을 찾는다. : 5 , 정렬된 것을 제외한 맨 앞의 8과 바꾼다. // 3회전 

1 2 5 8 6 에서 정렬된 1,2,5를 제외한 최솟값을 찾는다. : 6 , 정렬된 것을 제외한 맨 앞의 8과 바꾼다. // 4회전

1 2 5 6 8 마지막 원소는 자동으로 정렬된다. 

 

import java.util.Arrays;

public class 선택정렬 {
	public static void main(String[] args) {
		int[] arr = {5,1,8,2,6};
		int min = 0;
		
		for (int i = 0; i < arr.length-1; i++) {
			min = i;
			for (int j = i+1; j < arr.length; j++) {
				if(arr[min] > arr[j]) {
					min = j;
				}
			}
			
			int temp = arr[min];
			arr[min] = arr[i];
			arr[i] = temp;
			
			
			System.out.println(Arrays.toString(arr));
		}
		
		
	}
}

'ALGORITHM > 이론' 카테고리의 다른 글

Bubble Sort. 버블정렬  (0) 2021.01.05
Insertion sort. 삽입정렬  (0) 2021.01.04
HashMap(해시테이블)  (0) 2020.11.14
ArrayList(선형리스트)  (0) 2020.11.09
[정올] 1169 주사위던지기1  (0) 2020.05.17