Algorithm

[Algorithm] 선택정렬

by Donghwan 2021. 11. 26.

  • 정렬 중 가장 쉽게 구현이 가능합니다.
  • N번 만큼 가장 작은 수를 찾아서 맨 앞으로 보내야 합니다.
  • 처리되지 않은 모든 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복합니다.
  • 시간복잡도는 N + (N - 1) ... + 2로 등차수열 공식에 따라서 (N^2 + N - 2)/2로 표현할 수 있습니다.
  • 빅오 표기법에 따라 O(N^2)이 됩니다.
static void selectSort(int[] array) {
    for (int i = 0; i < array.length; i++) {
        int minIndex = array[i];
        for (int j = i + 1; j < array.length; j++) {
            if (array[minIndex] > array[j]) {
                minIndex = j;
            }
        }

        int temp = array[minIndex];
        array[minIndex] = array[i];
        array[i] = temp;
    }

    for (int i : array) {
        System.out.print(i + " ");
    }
}

 


참고자료

  • 나동빈 - 이코테

 

728x90
반응형

'Algorithm' 카테고리의 다른 글

[Algorithm] 퀵정렬  (0) 2021.11.26
[Algorithm] 삽입정렬  (0) 2021.11.26
[Algorithm] Vector  (0) 2021.10.06
[Algorithm] Stack  (0) 2021.09.21
[Algorithm] BOJ 1158  (0) 2021.07.28

댓글