본문 바로가기

자료구조 알고리즘

선택 정렬

선택 정렬

배열을 전체 스캔을 통해서 가장 우선순위가 되는 원소를 맨 앞으로 이동시킨다. 즉, 버블 처럼 순간순간 비교하여 바꾸는 것이 아니라 배열 전체 스캔 후 1번. 이것을 정렬이 끝날 때 까지 반복한다

. 버블 정렬보다는 성능이 좋지만 O(N^2) 이다. 좋지 않음

 

void SelectionSort(vector<int>& v)
{
    const int n = (int)v.size();

    for (int i = 0; i < n - 1; i++)
    {
        int bestI = i;
        for (int j = i + 1; j < n; ++j)
        {
            if (v[j] < v[bestI])
                bestI = j;
        }

        // swap
        int temp = v[i];
        v[i] = v[bestI];
        v[bestI] = temp;
    }
}

'자료구조 알고리즘' 카테고리의 다른 글

힙 정렬  (0) 2024.05.30
삽입 정렬  (0) 2024.05.30
버블 정렬  (0) 2024.05.30
이진 탐색  (0) 2024.05.30
길찾기4 A* 알고리즘  (0) 2024.05.29