ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 알고리즘...24
    일지 2021. 7. 22. 14:28

    선택 알고리즘

    n 개의 원소를 가진 정렬되지 않은 집합에서 최소 원소를 찾는 것은 Ω(n)이 소요된다. 더 나아가 i 번째로 작은 원소를 찾을 때 Ο(nlogn)이 소요되는 정렬을 수행 후 i 번째 원소를 찾는다면 Ο(nlogn)이 소요될 것이다.

     

    선택 알고리즘은 이러한 문제를 Ο(n)에 가깝게 수행하기 위한 알고리즘이다.

     

    평균 선형시간 선택 알고리즘

    퀵 정렬의 분할 알고리즘을 이용하여 기준 점 좌측 배열에 원하는 순서의 원소가 존재한다면 좌측 배열에 대해서만 재귀적으로 분할 알고리즘을 적용하여 원하는 위치의 원소를 찾을 수 있게 된다.

     

    쉽게 배우는 알고리즘 선택 알고리즘 그림 4-2

     

    평균 선형시간 선택 알고리즘

    Select(A[], p, r, i)
    {
        if (p = r) then
        {
            return A[p];
        }
        q ← Partition(A, p, r);
        k ← q - p + 1;
        if (i < k) then
        {
            return Select(A, p, q - 1, i);
        }
        else if (i = k) then
        {
            return A[q];
        }
        else
        {
            return Select(A, q + 1, r, i - k);
        }
    }

     

    댓글

Designed by Tistory.