6장정렬알고리즘.key

Similar documents
11강-힙정렬.ppt

chap01_time_complexity.key

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

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

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

chap 5: Trees

第 1 節 組 織 11 第 1 章 檢 察 의 組 織 人 事 制 度 등 第 1 項 大 檢 察 廳 第 1 節 組 대검찰청은 대법원에 대응하여 수도인 서울에 위치 한다(검찰청법 제2조,제3조,대검찰청의 위치와 각급 검찰청의명칭및위치에관한규정 제2조). 대검찰청에 검찰총장,대

슬라이드 1

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

2002년 2학기 자료구조

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

Algorithms

Microsoft PowerPoint - ch11_정렬 [호환 모드]

슬라이드 1


歯기구학

씨에이에스는 서울특별시 시설관리공단 계약 제1579호( ) 장애인 콜택시 콜센터 차량관제시스템 구축사업 감리용역 에 근거하여 카나스 에서 수행중인 장애인콜택시 콜센터 차량관제시스템 구축사업에 대한 최종감리를 실시하고 본 보고서를 제출합니다

슬라이드 1

JTN 81ȣĮ¶ó¾Õ

-09- 학습목표 기본정렬알고리즘을이해한다. 정렬을귀납적관점에서볼수있도록한다. 1 장과 2 장에서배운기법을사용해각정렬의수행시간을분석할수있도록한다. 비교정렬의한계를이해하고, 선형시간정렬이가능한조건과선형시간정렬알고리즘을이해한다. - - 한빛미디어 Sortng Algorth

Microsoft PowerPoint Merging and Sorting Files.ppt

PowerSHAPE 따라하기 Calculate 버튼을 클릭한다. Close 버튼을 눌러 미러 릴리프 페이지를 닫는다. D 화면을 보기 위하여 F 키를 누른다. - 모델이 다음과 같이 보이게 될 것이다. 열매 만들기 Shape Editor를 이용하여 열매를 만들어 보도록

Solaris Express Developer Edition

untitled

歯AG-MX70P한글매뉴얼.PDF

2

<BFA9C7E0BEF720C1A6B5B5B0B3BCB1B9E6BEC82E687770>

untitled

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

Oracle Database 10g: Self-Managing Database DB TSC

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

<49534F C0CEC1F520BBE7C8C4BDC9BBE720C4C1BCB3C6C320B9D D20BDC3BDBAC5DB20B0EDB5B5C8AD20C1A6BEC8BFE4C3BBBCAD2E687770>

슬라이드 1

Microsoft Word - KIS_Touchscreen_5Apr11_K_2.doc

슬라이드 1

BSC Discussion 1

LIDAR와 영상 Data Fusion에 의한 건물 자동추출

- 1 -

Ch.8 Procedures and Environments

. "" "",.... :...,,....,.. :..,,,..,,...,.... 2

6주차.key

사용자 설명서 SERVO DRIVE (FARA-CSD,CSDP-XX)

untitled

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

2007_2_project4

untitled

(실제 구현은 더욱 단순하다). 다음은 배열의 길이 n과 간격비 K의 서로 다른 셋팅에 대한 셸 정렬의 진행 순서에 대한 예이다. 1. n = 150, K = 3인 경우, Eq. (2)에 따라 m = 5이다. 즉, 셀 정렬은 총 5 단계를 거치며 (m = 5), 121

personal-information-handling-policy

제 출 문 한국산업안전공단 이사장 귀하 본 보고서를 2002 년도 공단 연구사업계획에 따라 수행한 산 업안전보건연구수요조사- 산업안전보건연구의 우선순위설정 과제의 최종보고서로 제출합니다. 2003년 5월 연구기관 : 산업안전보건연구원 안전경영정책연구실 정책조사연구팀 연

untitled

Promise for Safe & Comfortable Driving

ASETAOOOCRKG.hwp

(Microsoft Word - ONYX1640i \307\321\261\333\270\336\264\272\276\3632)

Àü³²Àú³Î 317È£

< FC1A6BEC8BFE4C3BBBCAD2E687770>


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

A 001~A 036

Microsoft Word _반도체-최종

06_sorting

결과보고서

Microsoft Word - ONYX1620 한글매뉴얼.doc

슬라이드 제목 없음

목차 본 취급설명서의 사용법 본 사용설명서에서는 제품상에 표시된 채널명 및 버튼명, 소프트웨어의 메뉴명 등이 대괄호 ([ ]) 안에 표시됩니 (예: [MASTER] 채널, [ON/ OFF], [File] 메뉴) 시작하시기 전에 특징...3 부속품...4 시작하시기 전에

03이경미(237~248)ok

chap 5: Trees

T100MD+

15_3oracle

[2010 년디지털시스템설계및실험중간고사 2 답안지 ] 출제 : 채수익 1. (a) (10 pts) Robertson diagram Quotient 와 remainder 의 correction 을뒤로미루는것이 non-restoring division 이다. 즉, q =

3 Gas Champion : MBB : IBM BCS PO : 2 BBc : : /45

歯CFX

공개 SW 기술지원센터

문서의 제목 나눔명조R, 40pt

ez-md+_manual01

보고서(겉표지).PDF

EP-B-P211.eps

Microsoft PowerPoint - eSlim SV [080116]

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

untitled

OBJ_DOKU fm

hwp

OfficeServ 솔루션 OfficeServ 솔루션 OfficeServ는 삼성전자의 기업형 IP 솔루션으로서 음성과 데이터, 유선과 무선이 융합된 미래 오피스형 솔루션입니다. OfficeServ 7400/7200 삼성전자가 다년간 쌓아 온 기간망 사업 경험 및 모바일


자기공명영상장치(MRI) 자장세기에 따른 MRI 품질관리 영상검사의 개별항목점수 실태조사 A B Fig. 1. High-contrast spatial resolution in phantom test. A. Slice 1 with three sets of hole arr

ePapyrus PDF Document

PowerPoint 프레젠테이션

untitled

TViX_Kor.doc

인켈(국문)pdf.pdf

2

SERVO DRIVE (FARA CSDJ-XX) 사용자 설명서

Microsoft PowerPoint - 05알고리즘.pptx

BK21 플러스방법론워크숍 Data Management Using Stata 오욱찬 서울대사회복지학과 BK21 플러스사업팀

ODS-FM1

정진관( ), 메모리반도체 Overweight 4월 반도체 가격 소폭 약세 시장수요는 회복 1분기말 주요 메모리 가격은 약세로 전환되고 있는데, 크게 우려할 수준은 아니라 고 여겨진다. 1분기는 계절적 비수기에 수요가

AV....n17.

FTTH 기술발표

이제는 쓸모없는 질문들 1. 스마트폰 열기가 과연 계속될까? 2. 언제 스마트폰이 일반 휴대폰을 앞지를까? (2010년 10%, 2012년 33% 예상) 3. 삼성의 스마트폰 OS 바다는 과연 성공할 수 있을까? 지금부터 기업들이 관심 가져야 할 질문들 1. 스마트폰은

CS.hwp

<C1DFB0EDB5EEBACE2E687770>

Transcription:

6

: :.

(Internal sort) (External sort) (main memory). :,,..

6.1 (Bubbble Sort).,,.

1 (pass). 1 pass, 1. (, ), 90 (, ).

2 40-50 50-90, 50 10. 50 90. 40 50 10 비교 40 50 10 비교 40 50 10 40 10 50 40 10 50 90 90 90 90 90

40 10, 40-50 50-90. 40 50. 40 10 비교 40 10 10 40 10 40 50 50 50 50 90 90 90 90

n (n-1). BubbleSort : n A : A 1. for pass = 1 to n-1 2. for i = 1 to n-pass 3. if (A[i-1] > A[i]) // 4. A[i-1] A[i] //. 5. return A

Line 1: for- (n-1). Line 2 for- A[0] A[npass]. (n-pass) pass=1 A[n-1], pass=2 A[n-2], pass=1 A[n-1] A[n-2]. pass=3, 2 A[n-2] A[n-3]. Line 3~4: if- (A[i-1] > A[i]),,, A[i-1] A[i]. if- i.

for- for-, pass=1 (n-1), pass=2 (n-2), pass=n-1 1. : (n-1) + (n-2) + + 1 = n(n-1)/2 for- if- O(1). : n(n-1)/2xo(1) = O(n 2 )xo(1) = O(n 2 )

6.2 (Selection Sort) 0, 0, 1. 2.

40 70 60 30 10 50 최솟값 40 70 60 30 10 50 10 70 60 30 40 50 최솟값 10 70 60 30 40 50 10 30 60 70 40 50

최솟값 10 30 60 70 40 50 10 30 40 70 60 50 최솟값 10 30 40 70 60 50 10 30 40 50 60 70 최솟값 10 30 40 50 60 70

10. 10 40. 10 30. 30 70..

SelectionSort : n A : A 1. for i = 0 to n-2 { 2. min = i 3. for j = i+1 to n-1 { // A[i]~A[n-1]. 4. if (A[j] < A[min]) 5. min = j } 6. A[i] A[min] // min } 7. return A

Line 1 for- i 0 (n-2), A[i] A[n-1] (n-1) (n-1) line 3 j i+1 = (n-1)+1 = n Line 2: A[i],, min = i Line 3 for- A[i+1] 1 A[min], A[min] min = j, A[n-1] min. Line 6: line 3~5 for- A[min] A[i]. Line 7: line 1~6 for-, A.

line 1 for- (n-1), i=0 line 3 for- (n-1), i=1 line 3 for- (n-2),, 1 line 4~5 : (n-1)+(n-2)+(n-3)+ +2+1 = n(n-1)/2 if- O(1), : n(n-1)/2 x O(1) = O(n 2 )

,,,., (input insensitive).

6.3 (Insertion Sort) ( ) ( ),.

, 1, 1.,,.,.

InsertionSort 1. for i = 1 to n-1 { 2. CurrentElement = A[i] // 3. j i 1 // 4. while (j >= 0) and (A[j] > CurrentElement) { 5. A[j+1] = A[j] // 6. j j -1 } 7. A [j+1] CurrentElement } 8. return A

A[0], line 1 CurrentElement i for- 1 (n-1). Line 2: A[i] CurrentElement. Line 3: j=i-1 j.

Line 4~6: CurrentElement. while- (j >= 0) j, 2 (A[j] > CurrentElement) A[j] CurrentElement A[j] 1. line 5. Line 6 j 1 while-

Line 7: A[j+1] CurrentElement. while- A[j] CurrentElement A[j] (, A[j+1]) CurrentElement.

line 1 for- (n-1), i=1 while- 1, i=2 2,, (n-1) line 5~6 : 1 + 2 + 3 + + (n-2) + (n-1) = n(n-1)/2 O(1), : n(n-1)/2 x O(1) = O(n 2 )

., CurrentElement, while-. (n-1). O(n)..

( ) O(n 2 )..

6.4,., ( ).,,, 1.

(Shell sort),,.

. 30 60 90 10 40 80 40 20 10 60 50 30 40 90 80 (gap) 5. 15, 30, 5 80, 80 5 50.

, [30, 80, 50]. 2 [60, 40, 30], [90, 20, 40], [10, 10, 90], [40, 60, 80]. 1. 30 30 20 10 40 50 40 40 10 60 80 60 90 90 80

5, 80 90, 20 30.

5,, 3, 3. 5. 1.., 1,.

ShellSort 1. for each gap h = [ h 0 > h 1 >... > h k =1] // gap 2. for i = h to n-1 { 3. CurrentElement=A[i]; 4. j = i; 5. while (j>=h) and (A[j-h]>CurrentElement) { 6. A[j]=A[j-h]; 7. j=j-h; } 8. A[j]=CurrentElement; } 9. return A

InsertionSort 1. for i = 1 to n-1 { 2. CurrentElement = A[i] // 3. j i 1 // 4. while (j >= 0) and (A[j] > CurrentElement) { 5. A[j+1] = A[j] // 6. j j -1 } 7. A [j+1] CurrentElement } 8. return A

[ h 0 > h 1 > > h k =1]. h 0 line 2~8. h k 1.,.

Line 2~8 for- h,.

, line 2 for- i h 1 CurrentElement A[i]. Line 5~7 while- CurrentElement. while- (j>=h) j h (j-h),. 2 (A[j-h] > CurrentElement) (j-h) CurrentElement A[j-h] line 6 A[j-h] h (, A[j]=A[j-h]).

while- line 8 CurrentElement A[j]. while- (j-h), A[j]. A[j-h] CurrentElement. line 8 CurrentElement A[j].

5,

h=5. 30 30 20 10 40 50 40 40 10 60 80 60 90 90 80 h=3, 3. 1 0, 3, 6, 9, 12, 2 1, 4, 7, 10, 13, 3 2, 5, 8, 11, 14.,

1 2 3 1 2 3 30 30 20 10 30 10 10 40 50 30 40 2 0 40 40 1 0 40 40 50 60 80 60 60 80 6 0 90 90 80 90 90 80., h=3. 10 30 10 30 40 20 40 40 50 60 80 60 90 90 80

h=1. h=1 1 (, 1 ),. 10 10 20 30 30 40 40 40 50 60 60 80 80 90 90. : 1, 4, 10, 23, 57, 132, 301, 701 701.

O(n 2 ). (Hibbard) : 2 k -1 (, 2 k -1,, 15, 7, 5, 3, 1), O(n 1.5 ). O(n 1.25 )..

. (Embedded), H/W.

6.5 (heap) (Complete Binary Tree).. (priority). ( )..

n, log 2 n,..

A, A[0], A[1] A[n]. 90 A[1], 60 80 A[2] A[3], 50, 30, 70, 10 A[4] A[7], 20 40 A[8] A[9].

A[i] = A[i/2], i, i/2., A[7] A[7/2] = A[3]. A[i] = A[2i] A[i] = A[2i+1] A[4] A[2i] = A[2x4] = A[8], A[2i+1] = A[2x4+1] =A[9].

(Heap Sort). (maximum heap).,.,., 1...

HeapSort : A[1] A[n] A : A 1. A. 2. heapsize = n // 3. for i = 1 to n-1 4. A[1] A[heapSize] // 5. heapsize = heapsize -1 // 1 6. DownHeap() //. 7. return A

Line 1: A[1..n]. Line 2: heapsize n. Line 3~6 for- (n-1), A[1],. Line 4:.,. Line 5: 1.

Line 4. Line 6 DownHeap. DownHeap: r. r r. r, r..

DownHeap Line 4 40 90, (heapsize) 1.

40 (60 80) 80 40.

40 (70 10) 70, 70 40. DownHeap.

DownHeap HeapSort 80 20 DownHeap ( ) 70 10 DownHeap ( )

60 20 DownHeap ( ) 50 20 DownHeap ( )

40 10 DownHeap ( ) 30 10 DownHeap ( )

1. for-, 1.

Line 1: O(n) Line 2: O(1) Line 3~6 for- (n-1), line 4~5 O(1) DownHeap, log 2 n O(logn). : O(n) + (n-1) x O(logn) = O(nlogn)

6.6,,,,,,. (Comparison Sort). (Radix Sort). ( ).

(lower bound). [ ]..

n?. (n-1) n 1., (n-1).

n,,. 3 x, y, z,.

2,, ( ). (Decision Tree). 3! = 6. (binary tree)..

3! 3 3!. 1.,. 3 3. 3.

n. 3 3. 2, 4 3. n. k logk. n! log(n!).

log(n!) = O(nlogn), O(nlogn)., O(nlogn). Ω(nlogn).

6.7 (Radix Sort),. (radix)., 10 (radix) 0, 1, 2,, 9, 2 (radix) 0, 1...

5 3, 1. 10.. 10 3 131 035, 10 131 035. 10 035 131? 1.

, (stability). 2 10, (stable sort),.

RadixSort : n r k : 1. for i = 1 to k 2. i. 3. return A

Line 1 for- 1 k. Line 2 i. r, i 0 1 (r-1) i 0 (r-1).

i=1, 1, 9, 0, 5, 1, 0, 1 0 2, 1 1, 5 1, 9 1. 1 0 070 910, 1 131, 5 035, 9 089.

for- k., k. n i, r, O(n+r). O(k(n+r)). k r n, O(n).

, 4, n=2 32, r=2 4,, 16, k=8,, 8 16. O(k(n+r)) = O(8x(2 32 +16)). 8 16 2 32, O(2 32 ) = O(n). RadixSort 1 k, Least Significant Digit (LSD) RL (Rightto-Left). k 1 Most Significant Digit (MSD) LR (Left-to-right).

,,, 128 (, ),. (Parallel). -( )

6.8 (External Sort). (Internal Sort), ( )., 1GB, 100GB,.

,., 100GB 1GB,,., 100.

(100GB ). (merge).,,..

1GB 2 2GB 1

98 49, 2GB 50. 2GB 2 25, 4GB 25., 2 1/2 100GB 1.

..., M.. HDD.

ExternalSort : HDD : HDD 1. HDD M HDD. HDD HDD, HDD HDD. 2. while ( HDD > 1 ) 3. HDD 2,. HDD., HDD HDD. 4. HDD. 5. return HDD

Line 1: HDD M HDD. N, N/M., N M. HDD HDD, HDD HDD. Line 2 while- HDD 2, line 3~4. Line 3: HDD 2,.

line 3, HDD 2M. line 3 4M., line 3 2 HDD. Line 4: HDD., HDD HDD, HDD HDD.

128GB 1GB ExternalSort. Line 1: 1GB 128 HDD. Line 3: 2GB 64 HDD. Line 3: 4GB 32 HDD. Line 3: 8GB 16 HDD. Line 3: 64GB 2 HDD. Line 3: 128GB 1 HDD, while- line 5 HDD.

( ). (pass). line 3 HDD HDD., 1. while-.

N, M, line 3 2M, 4M,, 2 k M (2 ). 1 2 k M, 2 k M = N. k while-. 2 k = N/M, k = log 2 (N/M). O(log(N/M)).

tape driver https://www.youtube.com/watch?v=cel8wnw5uvs

ExternalSort 2. 2., (Tape Drive), 2. 1 [10 30 60 70], 2 [20 40 50 80], 2 1 10, 2 20.

, 2 20 1 30. ExternalSort line 3 2 2. 8 (TD) 0 1 4 2, 1.

Pass 1 TD 0 TD 1 1 TD 2 3. Pass 2 TD 2 TD 3 1 TD 0 1. Pass 3 TD 0 TD 1 1 TD 2.

ExternalSort 2 2- way (merge). 2-way (Multi-way p- way Merge), O(log p (N/M)). 2p. (p+1) p-way (Polyphase Merge).

/ DB, DB /, IP, DB

(Internal sort) (External sort). (main memory),,,. (Bubble Sort), O(n 2 ).

(Selection Sort), O(n 2 ). (Insertion Sort), O(n 2 ). O(n), O(n 2 ). (Shell Sort),. O(n 2 ).

(Heap Sort), O(nlogn). (Lower Bound) O(nlogn). (Radix Sort). O(k(n+r))., k, r (radix, ). (External Sort). (p-way Merge) (Polyphase Merge).

#9 : 6 1, 5, 6, 7, 9, 10, 13,. : 5 30