Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Week7. 힙
특성
완전 이진 트리 (왼쪽부터 차례로)
최대 힙: 임의의 노드 값은 부모 보다 클 수 없다 (Left, Right의 대소 관계는 중요치 않다)
서브 트리 모두 힙 (재귀적)
구현에 필요한 프로시저
MA...
MAX-HEAPIFY
현재 노드가 자식보다 큰 값인지 확인
작을 경우 자식으로 내려 보냄
4
9 2
9
4 2
재귀 호출 하더라도
최대 힙의 높이 만큼이기 때문에
O(lg n)
BUILD-MAX-HEAP
배열을 최대 힙으로 만드는 프로시저
MAX-HEAPIFY를 마지막 노드부터
루트까지 호출하면 최대 힙 완성
자식이 있는 노드에 한해서만 호출
(A[length/2+1].. A[n] 생략)
N ...
HEAP-SORT
힙의 자료구조
특성을 이용해
정렬
배열이 최대 힙
일경우 오름 차
순 정렬
HEAP-SORT
BUILD-MAX-HEAP 선행
루트노드와 마지막 노드 스왑
루트노드에서 MAX-HEAPIFY 수행
10
12
11
12
10
SWAP
MAX-HEAPIFY
1. 2. 3.
Upcoming SlideShare
Loading in …5
×

Week7heapsort

6 views

Published on

sorting, heap, heapsort

Published in: Software
  • Be the first to comment

  • Be the first to like this

Week7heapsort

  1. 1. Week7. 힙 특성 완전 이진 트리 (왼쪽부터 차례로) 최대 힙: 임의의 노드 값은 부모 보다 클 수 없다 (Left, Right의 대소 관계는 중요치 않다) 서브 트리 모두 힙 (재귀적) 구현에 필요한 프로시저 MAX-HEAPIFY O(lg n) BUILD-MAX-HEAP O(n) HEAPSORT O(n lg n) PARENT(i) = i / 2 LEFT(i) = 2i RIGHT(i) = 2i + 1
  2. 2. MAX-HEAPIFY 현재 노드가 자식보다 큰 값인지 확인 작을 경우 자식으로 내려 보냄 4 9 2 9 4 2 재귀 호출 하더라도 최대 힙의 높이 만큼이기 때문에 O(lg n)
  3. 3. BUILD-MAX-HEAP 배열을 최대 힙으로 만드는 프로시저 MAX-HEAPIFY를 마지막 노드부터 루트까지 호출하면 최대 힙 완성 자식이 있는 노드에 한해서만 호출 (A[length/2+1].. A[n] 생략) N * MAX-HEAPIFY 이므로 O(n lg n) MAX-HEAPIFY를 높이 h인 노드에서 호출 높이 h인 노드의 갯수
  4. 4. HEAP-SORT 힙의 자료구조 특성을 이용해 정렬 배열이 최대 힙 일경우 오름 차 순 정렬
  5. 5. HEAP-SORT BUILD-MAX-HEAP 선행 루트노드와 마지막 노드 스왑 루트노드에서 MAX-HEAPIFY 수행 10 12 11 12 10 SWAP MAX-HEAPIFY 1. 2. 3.

×