11강-힙정렬.ppt

Similar documents
6장정렬알고리즘.key

chap01_time_complexity.key

untitled

chap 5: Trees

슬라이드 1

Index

Let G = (V, E) be a connected, undirected graph with a real-valued weight function w defined on E. Let A be a set of E, possibly empty, that is includ

슬라이드 제목 없음

슬라이드 1

hlogin2

03장.스택.key

제 1 장 기본 개념

슬라이드 1

슬라이드 1

2002년 2학기 자료구조

5.스택(강의자료).key

untitled

11 템플릿적용 - Java Program Performance Tuning (김명호기술이사)

Microsoft PowerPoint - Chap5 [호환 모드]

신림프로그래머_클린코드.key

Microsoft PowerPoint - ch10 - 이진트리, AVL 트리, 트리 응용 pm0600

7장

Line (A) å j a k= i k #define max(a, b) (((a) >= (b))? (a) : (b)) long MaxSubseqSum0(int A[], unsigned Left, unsigned Right) { int Center, i; long Max

PowerPoint 프레젠테이션

정의 이진탐색트리 이진탐색트리 (BST: binary search tree) 는각각의노드가 BST 특성을만족하는키 - 주소쌍을가지고있는이진트리 BST 특성 트리에있는각각의키에대해, 왼쪽서브트리에있는모든키는이것보다작고, 오른쪽서브트리에있는모든키는이것보다큼 < > 2

PowerPoint 프레젠테이션

public key private key Encryption Algorithm Decryption Algorithm 1

OCaml

Chapter 4. LISTS

02 C h a p t e r Java

chap10.PDF

PowerPoint 프레젠테이션

Chapter 4. LISTS

05-class.key

NoSQL


Data structure: Assignment 1 Seung-Hoon Na October 1, Assignment 1 Binary search 주어진 정렬된 입력 파일이 있다고 가정하자. 단, 파일내의 숫자는 공백으로 구 분, file내에 숫자들은

chap8.PDF

Something that can be seen, touched or otherwise sensed

OOP 소개

4.18.국가직 9급_전산직_컴퓨터일반_손경희_ver.1.hwp

Microsoft PowerPoint - 04-UDP Programming.ppt

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Microsoft PowerPoint - 제4장-스택과큐.pptx

06/09-101È£ä263»Áö

04/07-08(È£ä263»Áö

chap 5: Trees

2007_2_project4

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

K&R2 Reference Manual 번역본

쉽게 배우는 알고리즘 강의노트

Microsoft PowerPoint - 알고리즘_5주차_1차시.pptx

Microsoft PowerPoint - Chap5 [호환 모드]

07 자바의 다양한 클래스.key

ePapyrus PDF Document

10주차.key

대학교육151호-합침

chap x: G입력

<C3D6C0E7C3B528BAB8B5B5C0DAB7E1292D322E687770>

자바 프로그래밍

FileMaker ODBC and JDBC Guide

08장.트리

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

C++-¿Ïº®Çؼ³10Àå

untitled

<B0E8BBEABCF6B7D05FC7C1B7CEC1A7C6AEC3D6C1BEBAB8B0EDBCAD5FB1E8C1F8C0CF2E687770>

Javascript.pages

6주차.key

thesis

비긴쿡-자바 00앞부속

ilist.add(new Integer(1))과 같이 사용하지 않고 ilist.add(1)과 같이 사용한 것은 자바 5.0에 추가된 기본 자료형과 해당 객체 자료 형과의 오토박싱/언박싱 기능을 사용한 것으로 오토박싱이란 자바 컴파일러가 객체를 요구하는 곳에 기본 자료형

C# Programming Guide - Types

(72) 발명자 정유석 경기도 안양시 동안구 안양천동로 162, 103동 403 호 (비산동, 비산현대힐스테이트아파트) 마은경 경기도 수원시 영통구 효원로 363, 131동 2004호 (매탄동, 매탄위브하늘채아파트) 조용연 서울특별시 관악구 관악로24나길 13 (봉천동

Microsoft Word - FunctionCall

3ÆÄÆ®-11

12-file.key

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

유니티 변수-함수.key

(Microsoft Word - \301\337\260\243\260\355\273\347.docx)

목순 차서 v KM의 현황 v Web2.0 의 개념 v Web2.0의 도입 사례 v Web2.0의 KM 적용방안 v 고려사항 1/29

- 이 문서는 삼성전자의 기술 자산으로 승인자만이 사용할 수 있습니다 Part Picture Description 5. R emove the memory by pushing the fixed-tap out and Remove the WLAN Antenna. 6. INS

thesis

untitled

FileMaker ODBC and JDBC Guide

o 경로 (path) 트리에서사용하는용어 ~ 어떤한노드에서다른노드까지링크를통해이동했을때, 거쳐온노드들의집합. o 루트 (root) ~ 트리의가장상위에있는노드로루트는항상하나만존재 o 부모, 자식 (parent, children) ~ 링크로연결된노드중위에있는노드를부모노드,

Chap 6: Graphs

gnu-lee-oop-kor-lec11-1-chap15

BSC Discussion 1

JMF3_심빈구.PDF

Microsoft Word - java19-1-midterm-answer.doc

Network seminar.key

<B9CEC1D6C1A4C3A5BFACB1B8BFF82DBBE7B6F7B0FAC1A4C3A5BABDC8A328C6EDC1FD292E687770>

Microsoft PowerPoint - lecture2.ppt


PowerPoint Template

Vertical Probe Card Technology Pin Technology 1) Probe Pin Testable Pitch:03 (Matrix) Minimum Pin Length:2.67 High Speed Test Application:Test Socket

The Pocket Guide to TCP/IP Sockets: C Version

Oracle Apps Day_SEM

Java

Transcription:

11 (Heap ort) leejaku@shinbiro.com

Topics? Heap Heap Opeations UpHeap/Insert, DownHeap/Extract Binary Tree / Index Heap ort Heap ort

11.1 (Priority Queue) Operations

? Priority Queue? Priority Queue tack Push : Pop : Queue Put : Get : Heap Insert : emove :

Operations (Construct) N (Insert) (emove) (eplace) (Change) (Delete) (Join)

11.2 (Heap)? Insert Operation emove Operation

Heap? Full Binary Tree.! oot T M G OTALGOIM O O A I L

Insert Operation, UpHeap T T M G Z G O O A I L Z O O A I L M T Z Z T G G O O A I L M O O A I L M

emove Operation oot, oot, DownHeap T Z M T G G O O A I L M O O A I L T T M G M G O O A I L O O A I L

11.3 UpHeap/Insert DownHeap/Extract

Level-Order Traversal 1? Full Binary Tree Index 1 2 3 4 5 6 7 8 9 10 11 12 Node T M G O O A I L O O A I T 2 3 1 L M 4 5 6 7 8 9 10 11 12 G

. Index 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Node A L G - - - O - - - - - - - L A 2 3 1 G 4 5 6 7 O 8 9 10 11 12 13 14 15

Child/Parent j j/2. j j*2, j*2+1. N (N/2). O O A I T 2 3 1 L M 4 5 6 7 8 9 10 11 12 G

UpHeap/Insert Operation O O A I T M L Z 13 G void UpHeap(TYPE a[], int k) { TYPE v; v = a[k]; while (a[k/2] < v && k > 1) } { //. a[k] = a[k/2]; k /= 2; } a[k] = v; void Insert(TYPE a[], int& n, TYPE v) { a[++n] = v; // UpHeap(a, n); // UpHeap }

DownHeap/Extract Operation T O O A I L M Z G void DownHeap(TYPE a[], int n, int k) { int i; TYPE v = a[k]; while (k <= n/2) // { i = k * 2; // i k Left Child if (i < n && a[i] < a[i+1]) i++; // if (v >= a[i]) break; // a[k] = a[i]; // k = i; } a[k] = v; // k v } TYPE Extract(TYPE a[], int& n) { TYPE v = a[1]; // root = a[1] = a[n--]; // root DownHeap(a, n, 1); // root DownHeap return v; }

11.4 (Heap ort) class Heap

(Construct). ( ) Extract. void Heaport(TYPE a[], int n) { int i; int len = 0; // for (i = 1; i <= n; i++) // Insert(a, len, a[i]); for (i = len; i >= 1; i--) // a[i] = Extract(a, len); }

class Heap template <class TYPE> class Heap { public: Heap(); Heap(TYPE a[], int n); void etarray(type a[], int n); TYPE& a(int k) { return m_parray[k-1]; } int GetHeapLen() { return m_nheaplen; } void etheaplen(int n) { m_nheaplen = n; } void UpHeap(int k); void DownHeap(int k); void Insert(TYPE v); TYPE Extract(void); private: TYPE *m_parray; int m_narraylen; int m_nheaplen; }; 1. 0. a[k] a(k) > ==.

class Heap Implementation template <class TYPE> void Heap<TYPE>::UpHeap(int k) { TYPE v; v = a(k); while (v > a(k/2) && k > 1) { a(k) = a(k/2); k /= 2; } a(k) = v; } template <class TYPE> void Heap<TYPE>::Insert(TYPE v) { a(++m_nheaplen) = v; UpHeap(m_nHeapLen); } template <class TYPE> void Heap<TYPE>::DownHeap(int k) { int i; TYPE v; v = a(k); while (k <= m_nheaplen/2) { i = k*2; // Left-Child if (i < m_nheaplen && a(i+1) > a(i)) i++; if (v > a(i) v == a(i)) break; a(k) = a(i); k = i; } a(k) = v; } template <class TYPE> TYPE Heap<TYPE>::Extract(void) { TYPE v = a(1); a(1) = a(m_nheaplen--); DownHeap(1); return v;

Heaport Function template <class TYPE> void Heaport(TYPE a[], int n) { int i; Heap<TYPE> heap(a, n); for (i = 1; i <= n; i++) heap.insert(heap.a(i)); while (n > 1) heap.a(n--) = heap.extract(); } Extract

11.5

Extraction.

d = log 2 N + 1 N Insert, Extract, DownHeap, UpHeap O(logN). Full Binary Tree: N logn+1 Heaport O(NlogN) : N Insert O(NlogN) : N Extract O(NlogN)!!

11.6

Bottom-Up Heap Creation? Heap DownHeap Full Binary Tree N/2 Leaf Node DownHeap. Top-Down T TOOTALGOITHM O O T A L G O I T H M

template <class TYPE> void Heaport_up(TYPE a[], int n) { int k; Heap<TYPE> heap(a, n); // heap.etheaplen(n); } // DownHeap // Bottom-Up Heap Creation for (k = n/2; k >= 1; k--) heap.downheap(k); while (n > 1) heap.a(n--) = heap.extract(); Top-Down Creation N Insert Bottom-Up Creation N/2 DownHeap Animation : http://ciips.ee.uwa.edu.au/~morris/year2/pld210/heapsort.html

11.7 andom Array orted Array everse Array

andom Array andom Array Heaport Heaport_up

orted Array orted Array Heaport Heaport_up 8 6 19 14 42 31 92 67 199 144 430 310 orted Array Top-Down Bottom-Up? orted Array

everse Array everse Array Heaport Heaport_up 7 6 14 13 30 28 65 61 142 133 305 289 Bottom Up Heaport_up.

11.

11 Heap, Full Binary Tree Binary Tree k k/2, k k*2, k*2+1. Heap ort Heap Creation Heap Extraction. Top-Down Creation vs Bottom-Up Creation O(NlogN),.