개발 무지렁이

[코테 알고리즘] 선택(Select) 정렬 본문

코딩 테스트

[코테 알고리즘] 선택(Select) 정렬

Gaejirang-e 2022. 12. 14. 18:39

선택(Select) 정렬


가장 작은(큰) 것을 선택해서 맨 앞으로 보내자

🕑 시간복잡도: O(N^2)
[ 비교연산횟수: N + N-1 + N-2 + ... + 1 = (N+1)N/2번 ]

선택(Select) 정렬 코드 구현


<백준 알고리즘, 1427번>

import java.util.*;
class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String str = scanner.next();
        int[] A = new int[str.length()];

        for(int i = 0; i < str.length(); i++) {
            A[i] = Integer.parseInt(str.substring(i, i+1));
        }

        for(int i = 0; i < str.length(); i++) {
            int maxIdx = i;
            for(int j = i+1; j < str.length(); j++) {
                if(A[j] > A[maxIdx]) {
                    maxIdx = j;
                }
            }
            int temp = A[i];
            A[i] = A[maxIdx];
            A[maxIdx] = temp;
        }
        for(int i = 0; i < str.length(); i++) {
            System.out.print(A[i]);
        }
    }
}
Comments