MathValue


홈으로 > Harvard 젤라니 알고리즘> 고급 알고리즘 강좌

Harvard University Open Course Ware
고급 알고리즘 (Advanced Algorithms)



Instructor: Jelani Nelson
Lecture 06. Advanced Algorithms

출처: 유튜브에서 바로 보기

이 강의에서는 (분할 감소) 자원 사용량 분석, 이항 힙, 피보나씨 힙 에 대해서 다룹니다.

피보나씨 힙 알고리즘



        피보나씨 힙 은 러닝 타임 분석에 피보나씨 수가 쓰였기
    
        때문에 이런 이름이 붙었습니다.
        
        priority queue 연산을 위한 힙 정렬한 트리의 자료 구조이며
    
        (이진 트리로 만든) 이진 힙, (이항 트리를 결합한) 이항 힙 처럼
    
        priority 큐 자료구조에 비해 훨씬 나은 성능을 보입니다.
        
    
        피보나씨 힙 자료구조는
        
        병합이 가능한 힙에 대해서 연산을 지원하며 자원 사용량을 
        
        분석하는 응용 프로그램에 적합한 (분할감소) 타임을 갖는 
        
        특징이 있습니다.
        

        피보나씨 힙에서, 최소값 탐색 연산의 분할-타임은 O(1) 입니다.
        
        삽입 연산, 키 감소 연산에서  힙의 크기가 n 인 구성요소를
        
        삭제 (최소 구성요소를 삭제하는 특수한 경우) 할 때의 
        
        분할 타임은 
        
                O(log n)
                
        입니다. 
        
        최대 힙 크기가 n 일때, 
        
        총 a개의 삽입, 키 감소, b개의 삭제 연산의 수행시간은  
        
                    O(a + b log n)
        
        입니다.
        
        이진 힙, 이항 힙의 경우에는 
        
                    O((a + b) log n)
                    
        입니다.
        
        이때 b < a 인 경우에
        
        피보나씨 힙이 이진 힙, 이항 힙 보다 더 효율적 입니다.
        
         
        
        그러면 이제 힙을 병합하는 경우를 생각해 봅시다.
        
        이항 힙을 병합하는 경우 수행시간은 O(log n) 입니다.
        
        이진 힙의 경우 병합은 비효율적 이며,
        
        피보나씨 힙의 경우에는 병합 할 때 효율적입니다.
        
        피보나씨 힙을 쓰면 다른 priority 큐 알고리즘에 비해서
        
        그래프 노드 사이의 거리를 계산할 때 러닝 타임의 효율을 높여줍니다.
        
        

(본문은 위키백과를 참고하여 작성 하였습니다.)
다른글 보기 1 2 3 4 5 6
© 2025 mathvalue.net