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

Similar documents
Microsoft PowerPoint - 알고리즘_2주차_1차시.pptx

chap 5: Trees

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

6장정렬알고리즘.key

Microsoft PowerPoint Merging and Sorting Files.ppt

2002년 2학기 자료구조

2007_2_project4

Microsoft PowerPoint - 알고리즘_11주차_2차시.pptx

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

chap 5: Trees

Chap 6: Graphs

Oracle Database 10g: Self-Managing Database DB TSC

step 1-1

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

내지- 2도필름

PowerPoint Presentation

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

01....b

(291)본문7

¾Ë·¹¸£±âÁöħ¼�1-ÃÖÁ¾

00목차

2007백서-001-특집

3장

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

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

Chapter 4. LISTS

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

휠세미나3 ver0.4

歯MW-1000AP_Manual_Kor_HJS.PDF

7장

Microsoft PowerPoint - chap06-2pointer.ppt


adfasdfasfdasfasfadf

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

리뉴얼 xtremI 최종 softcopy

초보자를 위한 분산 캐시 활용 전략

11강-힙정렬.ppt

chap8.PDF

Orcad Capture 9.x

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

Microsoft PowerPoint - Chap5 [호환 모드]

untitled

PowerPoint 프레젠테이션

KARAAUTO_4¿ù.qxd-ÀÌÆå.ps, page Normalize

C# Programming Guide - Types

Oracle9i Real Application Clusters

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

11장 포인터

Microsoft PowerPoint - o8.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

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

슬라이드 제목 없음

PowerPoint 프레젠테이션

Microsoft PowerPoint - 27.pptx

슬라이드 1

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

Microsoft PowerPoint - [2009] 02.pptx

<4D F736F F F696E74202D C61645FB3EDB8AEC7D5BCBA20B9D720C5F8BBE7BFEBB9FD2E BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch07 - 포인터 pm0415

[ 정보 ] 과학고 R&E 결과보고서 Monte Carlo Method 를이용한 고교배정시뮬레이션 연구기간 : ~ 연구책임자 : 강대욱 ( 전남대전자컴퓨터공학부 ) 지도교사 : 최미경 ( 전남과학고정보 컴퓨터과 ) 참여학생 : 박진명 ( 전

결과보고서

ÃູÀÇÅë·Î

hlogin2

CD-RW_Advanced.PDF

Microsoft PowerPoint - Java7.pptx

Chap06(Interprocess Communication).PDF

Microsoft PowerPoint - AC3.pptx

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

김기남_ATDC2016_160620_[키노트].key

Microsoft PowerPoint - polling.pptx

PRO1_04E [읽기 전용]

알람음을 출력하는 이동통신 단말기에 있어서, 실시간 알람음을 출력하는 음향 출력 수단; 디지털 멀티미디어 방송(DMB: Digital Multimedia Broadcasting, 이하 'DMB'라 칭함) 신호를 수신하면 오디오 형태로 변 환하여 DMB의 음향을 전달하는

강의10

슬라이드 1

(72) 발명자 이동희 서울 동작구 여의대방로44길 10, 101동 802호 (대 방동, 대림아파트) 노삼혁 서울 중구 정동길 21-31, B동 404호 (정동, 정동상 림원) 이 발명을 지원한 국가연구개발사업 과제고유번호 부처명 교육과학기술부

4. #include <stdio.h> #include <stdlib.h> int main() { functiona(); } void functiona() { printf("hihi\n"); } warning: conflicting types for functiona

6.24-9년 6월

Chapter 4. LISTS

untitled

( )실험계획법-머리말 ok


금오공대 컴퓨터공학전공 강의자료

untitled

Microsoft PowerPoint - chap06-1Array.ppt

< C6AFC1FD28B1C7C7F5C1DF292E687770>

Interstage5 SOAP서비스 설정 가이드

PowerPoint Presentation

06장.리스트

MS-SQL SERVER 대비 기능

github_introduction.key

Observational Determinism for Concurrent Program Security

Frama-C/JESSIS 사용법 소개

chap01_time_complexity.key

PJTROHMPCJPS.hwp

PowerPoint 프레젠테이션


Transcription:

Basic Idea of External Sorting run 1 run 2 run 3 run 4 run 5 run 6 750 records 750 records 750 records 750 records 750 records 750 records run 1 run 2 run 3 1500 records 1500 records 1500 records run 1 3000 records run 1 4500 records 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 4)

Binary Sort/Merge Sorting Phase 초기 run 들을 sorting 한후, 2 개의외부파일에저장 Merging Phase 각파일에서하나씩 run을선택하여큰 run으로병합하여세번째파일에저장 결과파일을다시 2 개의파일로분배한후병합진행 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 5)

Binary Sort/Merge 의예 Input File (Run = 3) 50 110 95 10 100 36 153 40 120 60 70 130 22 140 80 Sorting Phase의완료후 File 1: (50 95 110) (40 120 153) (22 80 140) File 2: (10 36 100) (60 70 130) 첫번째병합의결과 File 3: (10 36 50 95 100 110) (40 60 70 120 130 153) (22 80 140) 첫번째병합후재분배의결과 File 1: (10 36 50 95 100 110) (22 80 140) File 2: (40 60 70 120 130 153) File 3: 비었음 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 6)

Binary Sort/Merge 의예 - 계속 두번째병합의결과 File 3: (10 40 36 50 60 70 95 100 110 120 130 153) (22 80 140) 두번째병합후재분배의결과 File 1: (10 40 36 50 60 70 95 100 110 120 130 153) File 2: (22 80 140) File 3: 비었음 세번째병합의결과 File 3: (10 22 40 36 50 60 70 80 95 100 110 120 130 140 153) 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 7)

다른 Sort/Merge Algorithm 들 Balanced Binary Sort/Merge 입력파일수 = 출력파일수 = 2 파일수가동일하므로, 파일의재분배필요없음 Balanced k-way Sort/Merge k-way k Sort/Merge 의 Balanced version 파일수가증가하므로더적은수의병합과 run 가짐 k 의값이무한히증가할수있는가? Polyphase Sort/Merge 입력파일수 출력파일수일경우에도, 재분배필요없음 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 8)

Ex: Balanced a Binary Sort/Merge Input File: 50 110 95 10 100 36 153 40 120 60 70 130 22 140 80 Sorting Phase 의완료후 File 1: (50 95 110) (40 120 153) (22 80 140) File 2: (10 36 100) (60 70 130) 첫번째병합의결과 File 3: (10 36 50 95 100 110) (22 80 140) File 4: (40 60 70 120 130 153) 두번째병합의결과 File 1: (10 36 40 50 60 70 95 100 110 120 130 153) File 2: (22 80 140) 세번째병합의결과 File 3: (10 22 36 40 50 60 70 80 95 100 110 120 130 140 153) 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 9)

Ex: Balanced a k-way Sort/Merge Input File: 50 110 95 10 100 36 153 40 120 60 70 130 22 140 80 Sorting Phase의완료후 File 1: (50 95 110) (60 70 130) File 2: (10 36 100) (22 80 140) File 3: (40 120 153) 첫번째병합의결과 File 4: (10 36 40 50 95 100 110 120 153) File 5: (22 60 70 80 130 140) File 6: 두번째병합의결과 File 1: (10 22 40 36 50 60 70 80 95 100 110 120 130 140 153) 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 10)

Ex: Polyphase Sort/Merge Sorting Phase의완료후 File 1: (50 95 110) (40 120 153) (22 80 140) File 2: (10 36 100) (60 70 130) 첫번째병합의결과 File 1: (22 80 140) File 2: 비었음 File 3: (10 36 50 95 100 110) (40 60 70 120 130 153) 두번째병합의결과 File 1: 비었음 File 2: (10 22 36 50 80 95 100 110 140) File 3: (40 60 70 120 130 153) 세번째병합의결과 File 1: (10 22 40 36 50 60 70 80 95 100 110 120 130 140 153) 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 11)

추가적인고려사항 초기 run의수가r인 Binary Sort/Merge Level 의수 = logl 2 R + 1 전체병합단계의수 = log 2 R 초기 run의수가r인 k-way Sort/Merge 전체병합단계의수 = log k R k개의 run에서가장작은 key 값을갖는 run 검색 Linear search: 전체비교수 = n * (k 1) * logg k R Selection tree: 전체비교수 = n * log 2 k * log k R = n * log 2 R Selection Tree? See Section 5.8 of HSF 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 12)

Selection ect Tree for k = 8 6 6 8 9 6 8 17 10 9 20 6 8 9 90 17 15 16 20 38 20 30 15 15 25 50 11 16 100 110 18 20 run 1 run 2 run 3 run 4 run 5 run 6 run 7 run 8 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 13)

3. 2 Phase Multiway Merge/Sort 2PMM의기본개념 2 Phase Sorting Phase + 1번의 Merging Phase 각 phase 마다데이터에대한 read/write 가 1 회수행 Multiway 사용할수있는파일의수는무제한 2PMM으로 sorting 할수있는파일의크기는 Memory 크기 M에의해결정 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 14)

2PMM Algorithm Phase 1 정렬단계 Fill main memory with records. Sort using favorite internal sort. (e.g. Quick Sort) Write sorted sub-list to a specific file. Repeat until all records are put into one of the sorted lists. Phase 2 병합단계 각 sorted-list에서한블록씩판독하여메모리에저장. 가장작은키값을갖는레코드를판단하여, 출력블록에저장. 출력블록이가득찰경우, 출력블록을디스크에기록. 입력블록에레코드가존재하지않을경우, 해당리스트에서다음블록판독하여메모리에저장. 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 15)

2PMM 의동작과정 Source File 21, 37, 40 17, 10, 1 7, 20, 11 31, 27, 30 14, 24, 28 12, 26, 20 9, 25, 16 29, 2, 4 25, 13, 53 23, 15, 45 33, 43, 22 13, 3, 5 Run 0 1, 7, 10 11, 17, 20 21, 27, 30 31, 37, 40 Run 1 2, 4, 9 12, 14, 16 20, 24, 25 26, 28, 29 Run 2 3, 5, 13 13, 15, 22 23, 25, 33 43, 45, 53 Memory 1, 7, 10 1, 7, 10 1, 7, 10 1, 7, 10 2, 4, 9 2, 4, 9 2, 4, 9 2, 4, 9 3, 5, 13 3, 5, 13 3, 5, 13 3, 5, 13 1, 2, 3 4, 5, 7 9 1, 7, 10 11, 17, 20 11, 17, 20 11, 17, 20 12, 14, 16 12, 14, 16 12, 14, 16 12, 14, 16 3, 5, 13 3, 5, 13 3, 5, 13 13, 15, 22 9, 10 9, 10, 11 12, 13 12, 13, 13 Maximum file size = M * ((M / B) - 1) Sorted File 1, 2, 3 4, 5, 7 9, 10, 11 12, 13, 13 정렬단계 병합단계 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 16)

Discussion of 2PMM Analysis Assume blocks are stored at random, so average access time is about 15 ms. File is stored on 250,000000 blocks, read and written once in each phase. 1,000,000 disk I/O s * 15 ms = 15,000 sec = 4+hours. 시간을줄이는방법? 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 17)

4. Optimization k-way Sort/Merge에서 Parallel I/O 기본개념 Buffer 수 : 2k + 2 (double buffering for I/O) 입력, 출력, 병합연산을병렬로처리 Fixed Buffer Allocation 입력파일마다 2개의버퍼를고정할당 입력대기현상발생가능 Dynamic Buffer Allocation Run 들의최대키값을비교 (Selection Tree 이용 ) Algorithm: HSF Section 7.11.3 참조 2PMM 에서 Parallel l I/O 지원방법? Clustering, Double Buffering Data Replication with Multiple Disks 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 18)

Run Generatione 기본개념 Memory 크기이상으로초기 run 의크기를설정 Merge pass의수감소 Algorithm Double buffering을위하여 2개의 I/O 버퍼이용 키값을차례로입력받아 selection tree 구성 Selection tree: 노드수 = (M 4 ) * rec_per_page Tree가 full인경우, 루트레코드출력 출력된레코드보다작은키값을갖는레코드가입력될경우, run number를증가 비교대상 : concatenate(run t number, key value) HSF Section 7.11.4 참조 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 19)

Example Memory 크기 = 3 Input File= (8, 6, 1, 3, 2, 7, 5, 4, 9) 1 st run = (1, 3, 6, 7, 8) 8, 6, 1, 3, 2, 7, 5, 4, 9 1 8, 6, 1, 3, 2, 7, 5, 4, 9 3 8, 6, 1,3,2, 7,5,4,9 6 8, 6, 1, 3, 2, 7, 5, 4, 9 7 8, 6, 1, 3, 2, 7, 5, 4, 9 8 8, 6, 1, 3, 2, 7, 5, 4, 9 done 2 nd run = (2, 4, 5, 9) 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 20)

Optimization - 계속 Optimal Merging of Runs Run generation 에의해생성된 run 의크기는상이 각 run의병합순서에따라실행속도차이발생 External path length 를이용하여비용계산 26 26 11 15 6 20 6 5 2 4 2 4 5 15 Path Length = 52 Path Length = 43 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 21)

최소비용트리 : Huffman Tree void huffman(tree_pointer heap[], int n) { /* heap is a list of n single node binary trees */ int i; tree_pointer tree; initialize(heap, n); /* initialize min heap */ for (i =1;i <n;i++) { tree = (tree_pointer) malloc(sizeof(tree_node)); } } tree->left >left_child = least(heap, n-i+1); tree->right_child = least(heap, n-i); tree->weight = tree->left_child->weight + tree->right_child->weight; insert(heap, n-i-1, tree); 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 22)

Construction o of a Huffman Tree Run: 2, 3, 5, 7, 9, 13 5 10 16 2 3 5 5 7 9 2 3 23 10 13 5 5 2 3 39 16 23 7 9 10 13 5 5 2 3 영남대학교데이터베이스연구실 Algorithm: Chapter 5 (Page 23)