알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기

Slides:



Advertisements
Similar presentations
산들초등학교 마녀샘의 교실 2 ♪딩동댕 ~ 산들초등학교의 중간고사가 끝났습니다. 아이들은 신났습니다. 와 ~!!! 시험끝났다 !
Advertisements

장애인 인권 강화 전남언어발달센터 사무국장 / 임준형. 인권교육 근거 전남 장애인 차별실태 조사 결과 보고서 나. 교육 및 진학 과정에서의 장애인 차별 교육 및 진학 과정에서의 장애인 차별에서는 “ 장애 를 이유로 주변 동료 학생들로부터.
수학 일기 제 1 라운드 스피드 퀴즈 피타고라스 수학책 1. 구장산술 2. 주비산경 3. 차근방몽구 4. 기하학원론 5. 산술관견.
겨울신앙학교 교리 골든벨을 울려라 !. 1 성경은 인간에 대한 구원과 사랑의 약속이 담긴 책이다. O X.
년 사업계획서 SK 노동조합 2 민주적이고 자주적인 노동조합운영 체계화 간부와 조합원의 일상적 결합으로 현장조직력 강화 집행간부, 대의원의 간부역량강화 고용안정 및 2002 임단투 승리 부당노동행위 근절 연대사업강화 및 노동악법저지 노동자정치 세력화 사업.
경기도 외국투자기업 투자환경 설문조사 경기도청 투자진흥과.
프로젝트 학습 중간 보고서 군포초등학교부설 지역공동 영재학급 용호초등학교5학년 이창민.
2013년도 예산어린이집 오리엔테이션.
제가 소개할 인물은?? ^ㅡ^B1A4입^ㅡ^니다 5학년4반9번 이하민
5급 승진 후보자 기획보고서 역량평가 대비 교육 안내 (대학교/교육청/중앙부처/지자체 등) 역량평가아카데미 2014년 5급승진을 위한 역량평가 대비를 위해서 다음과 같이 “기획보고서 교육”을 실시하오니 상담후 신청 바랍니다. 모든 기관의 공통 역량평가사항인 “ 사례제시형.
1. 비정규노동이란 2. 비정규노동의 확대 원인 3. 비정규노동자의 삶 4. 비정규노동의 문제
제7장 빈곤아동 담당교수 : 이 상 신.
교무업무시스템 학년말 업무 처리
엠보팅 주민참여예산 투표방법 안내 ■ 앱에서 투표하기 1. 핸드폰 전면에서 앱스(삼성) 찾아 누르기
재래시장 활성화 마케팅 3개학과 5명으로 이루어진 오창호 뽀개기조입니다. 재래시장 뉴스와 기사 성공사례 재래시장->전통시장.
사미인곡 p79.
행복한 부자교실 16기 8조 성동구 성수동 답사 결과 12월 22일 발표.
테트리스 퍼즐.
전화응대 방법- 받는 요령 1. 준비하기 2.전화받기 3. 첫인사 4. 문의내용 응대 5. 끝인사 6. 수화기 내려놓기
국내 5대 기업집단(그룹)의 세전이익 추이 2014 SK 그룹 현대자동차그룹 삼성그룹
피티라인 파워포인트 템플릿.
클릭 시 하이퍼링크 활성화됨.
성경퍼즐 복습게임(아브라함2) 창세기18,19장 먼저 아시는 분은 손을 올리세요.
PART 01 총 론 제9장 한국 사회복지법제의 형성과 발전.
Ch. 10 Algorithm Efficiency & Sorting
Ch. 10 Algorithm Efficiency & Sorting
6. 인구 변화와 인구 문제 01.인구 분포 02.인구 이동 03.인구 문제 세계와 우리나라 인구 분포의 특징
새로운 물질, 나만의 스마트폰 디자인하기.
1.고객맞이 상황 응대자세 화법 중점사항 매장 밖 에 서 도보 고객 고객 방향 쪽으로 바른 자세를 취한다
산업안전보건법 바로알기 고용노동부 산재예방정책과.
보육시설 유형과 운영.
학교생활기록부 기재요령 중요사항 변경사항 학교생활기록부 개선안.
<티슈 케이스 활용하여 깔끔함 더하기_ 우드사각 티슈케이스>
개인사유에 의한 사고, 부상, 질병 발생 경위서 작성완료 후 스캔 하셔서 휴직원에 첨부해 주십시오.
Part I Imitation Club 지역 주민들과 함께하는 건강, 웃음 콘서트(건강한 웃음을 돌려드립니다. )
다음 주 과제 3장 읽어오기 숙제 해서 제출하기. 자료구조와 알고리즘, 순환 E304호,
제1장 자료구조를 배우기 위한 준비.
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
Chapter 01 자료 구조와 알고리즘.
사회 6학년 2학기 3. 새로운 세계에서 우리가 할 일>①통일 한국의 미래>선택학습>11/12 선 택 학 습
Exponential and Logarithmic functions
제 1 장. 자료구조와 알고리즘.
24차시 효도 달서시니어클럽 전통예절사업단.
북한 이탈 주민 실태와 문제점 Part 0 탈북자 인권 현대 사회 인권 조선해양 공학부 정세용
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
제목을 수정하시려면 제목을 지우시고 폰트로 삽입하세요^^
프 로 젝 트 명 년 월 일 성 명.
Internet Computing KUT Youn-Hee Han
알고리즘 분석 알고리즘 정의 알고리즘 요건(Criteria) 특정한 일을 수행하기 위한 명령어의 유한 집합
호칭어와 지칭어 가족관계.
점화와 응용 (Recurrence and Its Applications)
알고리즘 강의 슬라이드 2 분할정복 제 2 장 분할정복 도경구역, 알고리즘, 사이텍미디어, 1999.
담배 없는 우리 마을 만들기 전남 무안군 만풍보건진료소 일 시 : 2006년 2월 28일 ~ 5월 8일.
이산수학(Discrete Mathematics)
선의관악종합사회복지관 김정현.
환자 이름 : 신 OO, 44세 술전 방사선 사진: stent 장착 후.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
알고리즘(Algorithm) – Divide and Conquer (분할정복)
Part 정비사업의 절차 1 ※ : 도시주거환경정비기본계획 도시·주거환경 정비계획(안) 작성 도시·주거환경정비 기본계획 수립
민주적 절차에 의한 회의 방법 어려운 처지의 사람에 대한 관심.
강의 교안 학년-학기 과목명 사회복지법제론 주차명 5주차. 사회복지 주체와 법률관계 담당교수 신상수.
노동조합 활동 사례 희망연대노동조합.
켈러의 경영경제통계학 제11장 모집단에 관한 추론.
알기쉽게 해설한 데이터구조 고 갑 승 한남대학교
시작하기.
쎈수학러닝센터 교재,시스템 완전정복 교육팀 정수진.
쉬운 퍼즐(마태4) 마태복음4장 먼저 아시는 분은 손을 올리세요.
알고리즘 강의 슬라이드 7 정렬문제 알고리즘 해석 강의 슬라이드 #7
남자의피부의 고민을 한번에 싹~ 해결해주는 옴므라인
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
Presentation transcript:

알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 2 2019년 봄학기 강원대학교 컴퓨터과학전공 문양세

프로그램과 알고리즘 순차검색과 이진검색 피보나찌 수 구하기 알고리즘 분석 차수 (O, , ) – Part 2 강의 내용

차수(Order)? 알고리즘이 얼마나 복잡한지를 정량적으로 다루기 위한 개념 알고리즘: 효율, 분석, 차수 – Part 2 알고리즘이 얼마나 복잡한지를 정량적으로 다루기 위한 개념 알고리즘 A의 시간 복잡도가 0.1n2이고, 알고리즘 B의 시간 복잡도가 1000n이라 하자. 그렇다면, 어떤 알고리즘이 더 좋은가? 항시 어떤 알고리즘이 좋다고 이야기할 수는 없다. 예를 들어, n이 100 이하라면 알고리즘 A가 시간이 적게 걸리고, n이 10000 이상이라면 알고리즘 B가 시간이 적게 걸린다. 그래도…, 어떤 알고리즘이 효율적인지 척도가 있어야 하지 않나?  일반적으로, 입력 크기 n이 매우 크다(커진다)고 가정하고 비교한다.

(lg n): 로그(logarithmic) (n): 1차(linear) (n lg n) 대표적인 복잡도 카테고리 알고리즘: 효율, 분석, 차수 – Part 2 (lg n): 로그(logarithmic) (n): 1차(linear) (n lg n) (n2): 2차(quadratic) (n3): 3차(cubic) (2n): 지수(exponential) (n!): factorial

시간 복잡도 비교 예제 알고리즘: 효율, 분석, 차수 – Part 2 복잡도가 2차 이하로 구성된 경우, 2차 항이 궁극적으로 지배한다. n 0.1n2 0.1n2+n+100 10 120 20 40 160 50 250 400 100 1,000 1,200 100,000 101,100

복잡도 함수의 증가율 알고리즘: 효율, 분석, 차수 – Part 2

시간 복잡도별 실제 실행 시간 비교 알고리즘: 효율, 분석, 차수 – Part 2

차수의 정밀한 소개 O(f(n)), (f(n)), (f(n))? 그래프 보고, 단번에 이해하기… 알고리즘: 효율, 분석, 차수 – Part 2 O(f(n)), (f(n)), (f(n))? 그래프 보고, 단번에 이해하기…

Big O 표기법 (1/2) 정의: 점근적 상한(Asymptotic Upper Bound) 알고리즘: 효율, 분석, 차수 – Part 2 정의: 점근적 상한(Asymptotic Upper Bound) 주어진 복잡도 함수 f(n)에 대해서 g(n)(f(n)) 이면 다음을 만족한다. n  N인 모든 정수 n에 대해서, g(n)  c  f(n)이 성립하는 실수 c  0와 음이 아닌 정수 N이 존재한다. g(n)  (f(n)) 읽는 방법: g(n)은 f(n)의 Big 이다.

Big O 표기법 (2/2) 어떤 함수 g(n)이(n2)에 속한다는 말은 어떤 알고리즘의 시간복잡도가 (f(n))이라면 알고리즘: 효율, 분석, 차수 – Part 2 어떤 함수 g(n)이(n2)에 속한다는 말은 함수 g(n)는 궁극에 가서는 (즉, 어떤 임의의 N값보다 큰 값에 대해서는) 어떤 2차 함수 cn2 보다는 작은 값을 가지게 된다는 것을 뜻한다. (그래프 상에서는 아래에 위치한다는 의미이다.) 다시 말해서, 그 함수 g(n)은 어떤 2차 함수 cn2 보다는 궁극적으로 좋다고 (기울기가 낮다고) 말할 수 있다. 어떤 알고리즘의 시간복잡도가 (f(n))이라면 입력의 크기 n에 대해서 이 알고리즘의 수행시간은 아무리 느려도 cf(n)보다는 빠르다. (궁극적으로, cf(n)이 상한이다.)

Big O 표기법 예제 알고리즘: 효율, 분석, 차수 – Part 2 n2+10n  (n2) ? (1) n  10인 모든 정수 n에 대해서 n2+10n  2n2 이 성립한다. 그러므로, c = 2와 N = 10을 선택하면, “Big  ”의 정의에 의해서 n2+10n  (n2)이라고 결론지을 수 있다. (2) n  1인 모든 정수 n에 대해서 n2+10n  n2+10n2 = 11n2 이 성립한다. 그러므로, c = 11와 N = 1을 선택하면, “Big  ”의 정의에 의해서 n2+10n  (n2)이라고 결론지을 수 있다.  Big O를 보이는데 단지 한 가지 해답이 있는 것이 아니다. 적당히 큰 N과 c를 선택하여 보이면 된다.

2n2과 n2 + 10n의 비교 알고리즘: 효율, 분석, 차수 – Part 2

5n2  (n2) ? c=5와 N=0을 선택하면, n  0인 모든 정수 n에 대해서 5n2  5n2이 성립한다. Big O 표기법 다른 예제 (1/2) 알고리즘: 효율, 분석, 차수 – Part 2 5n2  (n2) ? c=5와 N=0을 선택하면, n  0인 모든 정수 n에 대해서 5n2  5n2이 성립한다. ? n  0인 모든 정수 n에 대해서 이 성립한다. 그러므로, c=1/2와 N=0을 선택하면, T(n) (n2)이라고 결론지을 수 있다. n2  (n2+10n) ? n  0인 모든 정수 n에 대해서, n2  1 (n2+10n)이 성립한다. 그러므로, c=1와 N=0을 선택하면, n2  (n2+10n)이라고 결론지을 수 있다.

Big O 표기법 다른 예제 (2/2) 알고리즘: 효율, 분석, 차수 – Part 2 n  (n2) ? n  1인 모든 정수 n에 대해서, n  1n2 이 성립한다. 그러므로, c=1와 N=1을 선택하면, n (n2)이라 결론지을 수 있다. n3  (n2) ? n  N인 모든 n에 대해서 n3  cn2 이 성립하는 c와 N값은 존재하지 않는다. 즉, 양변을 n2으로 나누면, n  c 가 되는데 c를 아무리 크게 잡더라도 그 보다 더 큰 n이 존재한다.

O(n2)에 속하는 함수들 알고리즘: 효율, 분석, 차수 – Part 2

 표기법 (1/2) 정의: 점근적 하한(Asymptotic Lower Bound) 알고리즘: 효율, 분석, 차수 – Part 2 정의: 점근적 하한(Asymptotic Lower Bound) 주어진 복잡도 함수 f(n)에 대해서 g(n)  (f(n))이면 다음을 만족한다. n  N인 모든 정수 n에 대해서 g(n)  c  f(n)이 성립하는 실수 c  0와 음이 아닌 정수 N이 존재한다. g(n)  (f(n)) 읽는 방법: g(n)은 f(n)의 오메가(omega)이다.

 표기법 (2/2) 어떤 함수 g(n)이 (n2)에 속한다는 말은 알고리즘: 효율, 분석, 차수 – Part 2 어떤 함수 g(n)이 (n2)에 속한다는 말은 그 함수는 궁극에 가서는 (즉, 어떤 임의의 N 값보다 큰 값에 대해서는) 어떤 2차 함수 cn2 의 값보다는 큰 값을 가지게 된다는 것을 뜻한다. (그래프 상에서는 윗 부분에 위치한다.) 다시 말해서, 그 함수 g(n)은 어떤 2차 함수 cn2 보다는 궁극적으로 나쁘다고 (기울기가 높다고)말할 수 있다. 어떤 알고리즘의 시간복잡도가 (f(n))이라면, 입력의 크기 n에 대해서 이 알고리즘의 수행시간은 아무리 빨라도 cf(n)보다는 느리다. (궁극적으로, c f(n)이 하한이다.)

 표기법의 예제 (1/3) 알고리즘: 효율, 분석, 차수 – Part 2 n2 +10n  (n2) ? n  0인 모든 정수 n에 대해서 n2+10n  n2 이 성립한다. 그러므로, c = 1와 N = 0을 선택하면, n2 +10n  (n2)이라 결론지을 수 있다. 5n2  (n2) ? n  0인 모든 정수 n에 대해서, 5n2  1n2 이 성립한다. 그러므로, c=1와 N=0을 선택하면, 5n2  (n2)이라 할 수 있다.

 표기법의 예제 (2/3) 알고리즘: 효율, 분석, 차수 – Part 2 ? n  2인 모든 n에 대해서 이 성립한다. 그러므로, n  2인 모든 n에 대해서 이 성립한다. 따라서 과 N = 2를 선택하면, 이라 할 수 있다. ? n  1인 모든 정수 n에 대해서, 이 성립한다. 그러므로, c = 1와 N = 1을 선택하면, 이라 할 수 있다.

 표기법의 예제 (3/3) 알고리즘: 효율, 분석, 차수 – Part 2 n  (n2) ? 모순유도에 의한 증명(Proof by contradiction): 이라 가정하자. 그러면 n  N인 모든 정수 n에 대해서, 이 성립하는 실수 c > 0, 그리고 음이 아닌 정수 N이 존재한다. 위의 부등식의 양변을 cn으로 나누면 가 된다. 그러나 이 부등식은 절대로 성립할 수 없다. (주어진 어떤 수(1/c)보다 큰 수가 항시 존재하기 때문이다.) 따라서 위의 가정은 모순이다.

(n2)에 속하는 함수들 알고리즘: 효율, 분석, 차수 – Part 2

 표기법 (1/2) 정의: (Asymptotic Tight Bound) 알고리즘: 효율, 분석, 차수 – Part 2 정의: (Asymptotic Tight Bound) 복잡도 함수 f(n)에 대해서 (f(n)) = O(f(n))  (f(n))의 관계가 성립한다. 다시 말하면, (f(n))은 다음을 만족하는 복잡도 함수 g(n)의 집합이다. 즉, n  N 인 모든 정수 n에 대해서 c  f(n)  g(n)  d  f(n)이 성립하는 실수 c  0와 d  0, 그리고 음이 아닌 정수 N이 존재한다. 참고: g(n)  (f(n))은 “g(n)은 f(n)의 차수(order)”라고 한다. 예: 은 O(n2)이면서 (n2)이다. 따라서 이다.

 표기법 (2/2) 알고리즘: 효율, 분석, 차수 – Part 2

(n2)에 속하는 함수들 알고리즘: 효율, 분석, 차수 – Part 2

Small O(o) ? Small 는 복잡도 함수 끼리의 관계를 나타내기 위한 표기법이다. 알고리즘: 효율, 분석, 차수 – Part 2 Small 는 복잡도 함수 끼리의 관계를 나타내기 위한 표기법이다. 자주 사용되지 않는 개념이므로, 본 강의에서 제외한다.

지수(exponential) 복잡도 함수가 모두 같은 카테고리 안에 있는 것은 아니다. 차수의 주요 성질 (1/2) 알고리즘: 효율, 분석, 차수 – Part 2 iff b > 1이고 a > 1이면, loga n  (logb n)은 항상 성립한다. 다시 말하면 로그(logarithm) 복잡도 함수는 모두 같은 카테고리에 속한다. 따라서 통상 (lg n)으로 표시한다. 지수(exponential) 복잡도 함수가 모두 같은 카테고리 안에 있는 것은 아니다. n!은 어떤 지수 복잡도 함수보다도 더 나쁘다.

복잡도 카테고리들은 다음 순서로 나열된다. 여기서 k>j>2이고 b>a>1이다. 차수의 주요 성질 (2/2) 알고리즘: 효율, 분석, 차수 – Part 2 복잡도 카테고리들은 다음 순서로 나열된다. 여기서 k>j>2이고 b>a>1이다.

Homework #2 알고리즘: 효율, 분석, 차수 – Part 2