불로구

알고리즘 - 선택 정렬(JAVA) 본문

프로그래밍/알고리즘

알고리즘 - 선택 정렬(JAVA)

맹이맹이 2021. 3. 12. 13:19
반응형

선택 정렬

- 제자리 정렬 알고리즘의 하나로서, 리스트 중 최솟값을 찾아서 맨 앞에 위치한 값과 교체한다.

- 맨 처음 위치를 빼고 나머지 리스트들도 위와 같은 방법으로 교체를 하는 알고리즘이다.

시간 복잡도

- 시간 복잡도는 O(n^2)

장단점

장점

데이터의 이동이 미리 정해진다!

단점

안정성을 만족하지 않는다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Test{
    public static void main(String[] args) {
    	try {
			BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
			int[] arr = new int[5];
			for(int i=0; i<arr.length; i++){
				arr[i] = Integer.parseInt(br.readLine());
			}
			Ssort(arr);
		} catch (NumberFormatException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
    }
    public static void Ssort(int[] arr) {
        int indexMin, temp;

        for (int i = 0; i < arr.length - 1; i++) {
            indexMin = i;
            for (int j = i + 1; j < arr.length; j++) {
                if (arr[j] < arr[indexMin]) {
                    indexMin = j;
                }
            }
            temp = arr[indexMin];
            arr[indexMin] = arr[i];
            arr[i] = temp;
        }
        System.out.println(Arrays.toString(arr));
    }
}
	

 

알고리즘 추천도서

Do it! 자료구조와 함께 배우는 알고리즘 입문: 파이썬 편:내 손으로 직접 코딩하며 확인한다, 이지스퍼블리싱 Do it! 자료구조와 함께 배우는 알고리즘 입문: 자바 편:엄선된 88개의 실습 예제와 93개의 연습 문제!, 이지스퍼블리싱

반응형
Comments