쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석 http://academy.hanb.co.kr.

Slides:



Advertisements
Similar presentations
1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
Advertisements

1 ‘ 우리나라의 주요공업 ’ - 정도웅, 주민혁, 안수진, 백경민, 엄다운, 박경찬 -.
수유부의 약물복용 시 주의점 발표자 조기성. 모유 수유의 장점 모유 수유의 장점은 ? 위장관 질환 발생감소 영아 돌연사 발생감소 아토피 질환 발생감소 정서적 안정.
Add Your Text 5. 지수함수와 로그함수 1. 지수함수 2. 로그함수 · 지수함수와 그 그래프 · 지수방정식과 지수부등식 · 로그 함수와 그 그래프 · 로그방정식과 로그부등식.
2014년도 주요법령 개정사항 (월) ~ (금) 대한전문건설협회 강원도회.
미국의 미디어교육 신문방송학과 강진구 한인수 곽모란 이명현.
알고리즘 기본 개념 정렬 알고리즘 탐색 알고리즘 알고리즘 복잡도.
PRESENTATION 저온화상이란?
ʹ 수학 ʹ 6학년 가 단계 ʹ 7. 비례식>3/7 비의 성질 이용하기 수업 계획 수업 활동.
(Mathematical Induction)
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
공부할 내용 조상들이 살던 곳 자연과 잘 어울리는 한옥 지방에 따라 서로 다른 집의 모양 섬 지방의 집
사랑, 데이트와 성적 자율성 :데이트 성폭력!!! 성폭력예방교육 전문강사 / 여성학 전공 신 순 옥.
(Program = Algorithm + Data Structure)
퇴계와 율곡의 사회사상 비교 남 일 재 동서대학교 교수/ 정치학 박사 1. 퇴계 이황과 율곡 이이의 약전(略傳)
이산수학 논리∙명제에서 알고리즘까지 √ 원리를 알면 IT가 맛있다 ehanbit.net.
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
9장. C 언어의 핵심! 함수. 9장. C 언어의 핵심! 함수 9-1 함수의 정의와 선언 main 함수 다시 보기 : 함수의 기본 형태 { } 그림 9-1.
(Numerical Analysis of Nonlinear Equation)
501. 군인들의 세상 502. 민정 이양과 한일회담 이선용.
쌓지 말고 해소하자 이 주휘 이 진영 전 민석 전 혜림.
2015년 하반기 소방교육 자 유 전 공 학 부 (금) 안녕하십니까 자유전공학부 행정실 입니다.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
쉽게 배우는 알고리즘 3장. 정렬Sorting
분할 정복 (Divide-and-Conquer)
자료구조론 11장 정렬(sort).
CHAP 2:순환 순천향대학교 컴퓨터공학과.
Chapter 02 순환 (Recursion).
빠른정렬(Quick Sort) – 개요 (1/2)
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
쉽게 배우는 알고리즘 6장. 해시 테이블Hash Table
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
JA A V W. 03.
자료구조: CHAP 7 트리 –review 순천향대학교 컴퓨터공학과 하 상 호.
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
제 1 장 알고리즘 : 효율, 분석, 그리고 차수.
쉽게 배우는 알고리즘 7장. 상호 배타적 집합의 처리.
8장. 상호 배타적 집합의 처리.
Association between two measurement variables Correlation
쉽게 배우는 알고리즘 1장. 알고리즘 설계와 분석의 기초.
Metal Forming CAE Lab., Gyeongsang National University
패시브하우스 신안산대학교 l 건축과 l 박효동, 박창준, 지예림.
2장. 변수와 타입.
행렬의 개요 행렬은 수를 원소로 지니는 다차원 배열이다. mn (“m by n”) 행렬은 m개의 행과 n개의 열을 갖는다.
행렬의 개요 행렬은 수를 원소로 지니는 다차원 배열이다. mn (“m by n”) 행렬은 m개의 행과 n개의 열을 갖는다.
정다면체, 다면체와 정다각형, 다각형의 관계 한림초등 학교 영제 6학년 5반 송명훈.
정치개혁의 가능성 논의 권력구조 개편을 통하여 본 -개헌을 통한 정부형태의 변화를 중심으로 [한국정치론] 윤성이 교수님
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
1. 2진 시스템.
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
표지 수학8-나 2학년 2학기  Ⅲ.도형의 닮음 (4) 삼각형의 중점연결정리 (13/21) 삼각형의 중점연결정리.
치료 레크레이션 프로그램 (지적 장애 대상) 과 목: 학 과: 학 번: 이 름: 제 출 일 자 담 당 교 수:
노년기 발달 장안대 행정법률과 세류반 정 오 손
2장 PHP 기초 PHP의 시작과 끝을 이해한다. 주석문에 대하여 이해한다. echo 문을 이용하여 화면에 출력하
DA :: 퀵 정렬 Quick Sort 퀵 정렬은 비교방식의 정렬 중 가장 빠른 정렬방법이다.
5장. 선택 알고리즘.
빠른정렬(Quick Sort) – 개요 (1/2)
태국 문학 욜라다 왓짜니 싸란차나 팟차라와라이 끼따야펀 르앙다우 타니다.
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
문장제 쉽게 풀기 -최소공배수 응용 문제.
워밍업 실뭉치 전달게임.
I. 수와 식 1. 유리수와 순환소수.
수치해석 ch3 환경공학과 김지숙.
음파성명학 최종욱.
빠른정렬(Quick Sort) – 개요 (1/2)
C++ Espresso 제15장 STL 알고리즘.
3D 농구 슛 시뮬레이션 이세기.
Presentation transcript:

쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석 http://academy.hanb.co.kr

2장. 점화식과 점근적 복잡도 분석 사실을 많이 아는 것보다는 이론적 틀이 중요하고, 기억력보다는 생각하는 법이 더 중요하다. - 제임스 왓슨

학습목표 재귀 알고리즘과 점화식의 관계를 이해한다. 점화식의 점근적 분석을 이해한다.

점화식의 이해 점화식 예 어떤 함수를 자신보다 더 작은 변수에 대한 함수와의 관계로 표현한 것 an = an-1 + 2 f(n) = n f(n−1) f(n) = f(n−1) + f(n−2) f(n) = f(n/2) + n

Mergesort의 수행시간 수행시간의 점화식: T(n) = 2T(n/2) + 오버헤드 mergeSort(A[ ], p, r) {         if (p < r) then {                 q ← (p+q)/2;   -----------------------  ①   ▷ p, q의 중간 지점 계산                 mergeSort(A, p, q);  ----------------  ②   ▷ 전반부 정렬                 mergeSort(A, q+1, r); --------------  ③   ▷ 후반부 정렬                 merge(A, p, q, r);  ------------------  ④   ▷ 병합         } } merge(A[ ], p, q, r)         정렬되어 있는 두 배열 A[p ... q]와 A[q+1 ... r]을 합하여         정렬된 하나의 배열 A[p ... r]을 만든다. 수행시간의 점화식: T(n) = 2T(n/2) + 오버헤드 크기가 n인 병합정렬 시간은 크기가 n/2인 병합정렬을 2번 하고 나머지 오버헤드를 더한 시간이다

점화식의 점근적 분석 방법 반복대치 추정후 증명 마스터 정리 더 작은 문제에 대한 함수로 반복해서 대치해 나가는 해법 결론을 추정하고 수학적 귀납법으로 이용하여 증명하는 방법 마스터 정리 형식에 맞는 점화식의 복잡도를 바로 알 수 있다

반복대치 T(n) = T(n−1) + n T(1) = 1 T(n) = T(n−1) + n = (T(n−2) + (n−1)) + n = (T(n−3) + (n−2)) + (n−1) + n … = T(1) + 2 + 3 + … + n = 1 + 2 + … + n = n(n+1)/2 = Θ(n 2)

반복대치 T(n) = 2T(n/2) + n T(1) = 1 T(n) = 2T(n/2) + n = 2(2T(n/22) + n/2) + n = 22T(n/22) + 2n = 22(2T(n/23) + n/22) + 2n = 23T(n/23) + 3n … = 2kT(n/2k) + kn = n + n log n = Θ(n log n) ~9/10/2007

추정후 증명Guess&Verification T(n) = 2T(n/2) + n 추정: T(n) = O(n log n), 즉 T(n) ≤ cn log n <증명> T(n) = 2T(n/2) + n ≤ 2c(n/2) log(n/2) + n = cn logn − cn log2 + n = cn logn + (−c log2 + 1)n ≤ cn log n 이를 만족하는 c가 존재한다

추정후 증명 T(n) = 2T(n/2) + 1 추정: T(n) = O(n ), 즉 T(n) ≤ cn <증명> 귀납적 가정 이용 더 이상 진행 불가!

추정후 증명 추정: T(n) ≤ cn -2 <증명> T(n) = 2T(n/2) + 1 귀납적 가정 이용

마스터 정리Master Theorem T(n) = aT(n/b) + f (n)와 같은 모양을 가진 점화식은 마스터 정리에 의해 바로 결과를 알 수 있다 nlogb a = h(n)이라 하자 ① 어떤 양의 상수 ε에 대하여 f(n)/h(n) = O(1/nε)이면, T(n) = Θ(h(n))이다. ② 어떤 양의 상수 ε에 대하여 f(n)/h(n) = Ω(1/nε)이고, 어떤 상수 c(< 1)와 충분히 큰 모든 n에 대해 af(n/b) ≤ cf(n)이면 T(n) = Θ(f(n))이다. ③ f(n)/h(n) = Θ(1)이면 T(n) = Θ(h(n) log n)이다.

마스터 정리의 직관적 의미 ① h(n)이 더 무거우면 h(n)이 수행시간을 결정한다. ② f(n)이 더 무거우면 f(n)이 수행시간을 결정한다. ③ h(n)과 f(n)이 같은 무게이면 h(n)에 log n을 곱한 것이 수행시간이 된다.

마스터 정리의 적용 예 T(n) = 2T(n/3) + c T(n) = 2T(n/4) + n T(n) = 2T(n/2) + n a=2, b=3, h(n) = nlog3 2, f(n) = c T(n) = Θ(nlog3 2) T(n) = 2T(n/4) + n a=2, b=4, h(n) = nlog4 2, f(n) = n T(n) = Θ(n) T(n) = 2T(n/2) + n a=2, b=2, h(n) = nlog2 2 = n, f(n) = n T(n) = Θ(n log n)

Thank you