본문 바로가기

코딩테스트 예제

간단한 배열 정렬하기!

public class SelectionSort {
    public static void selectionSort(int[] arr) {
        int n = arr.length; // 배열의 길이를 구합니다.

        // i는 배열의 첫 번째 원소부터 마지막 바로 전 원소까지 반복합니다.
        for (int i = 0; i < n - 1; i++) {
            int minIdx = i; // 현재까지 가장 작은 값을 가진 원소의 인덱스를 저장합니다.

            // i 다음 원소부터 마지막 원소까지 반복합니다.
            for (int j = i + 1; j < n; j++) {
                // 현재까지 가장 작은 값보다 더 작은 값을 가진 원소가 있다면,
                // 그 원소의 인덱스를 minIdx에 저장합니다.
                if (arr[j] < arr[minIdx]) {
                    minIdx = j;
                }
            }

            // 가장 작은 값을 가진 원소를 현재 위치의 원소와 교체합니다.
            int temp = arr[minIdx];
            arr[minIdx] = arr[i];
            arr[i] = temp;
        }
    }

    public static void main(String[] args) {
        int[] arr = {5, 2, 9, 1, 5, 6};

        // 선택 정렬 알고리즘을 사용해 배열을 정렬합니다.
        selectionSort(arr);

        // 정렬된 배열을 출력합니다.
        for (int i : arr) {
            System.out.print(i + " ");
        }
    }
}