Chapter 01 자료 구조와 알고리즘.

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

일본주식시장의 신 고레가와긴조 투자전략 6 조 안승권. 신문수 발표자 : 신 문 수. 출 생 : 1897 효고현에서 출생 학 력 : 초등학교졸업, 사업가 1992 년 95 세 사망 유일한 자서전 1981 년 스미토모 금속광산 주식매매 200 억엔 벌다⇒ 일본 소득세 납세.
2014년도 주요법령 개정사항 (월) ~ (금) 대한전문건설협회 강원도회.
2009개정 중등 국어과 교육과정 울산광역시교육청 교육과정 컨설팅단 : 정일진.
QC 신7가지 관리도구.
달라지는 노동법 개정 내용 노무법인 正道 잠시나마… 주요 노동관계법 개정내용 3. 마무리 Contents
연무대기계공업고등학교 좋은 수업과 프로젝트 기반 학습 경일관광경영고등학교 수석교사 조경희.
Chapter 2 정보시스템 아키텍처 (IS Architecture)
CHAP 1:자료구조와 알고리즘.
(Program = Algorithm + Data Structure)
* 그룹 상시 연락망 : 각사 조직도 기준 연락망으로 대체함
CHAP 1:자료구조와 알고리즘 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
Data Structure & Algorithms
2017 북부문화사업단 공모지원사업 교부·정산 설명회.
[사내 교육용 限, 대 고객자료로 절대 사용 不可]
시스템 생명 주기(System Life Cycle)(1/2)
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 1 강원대학교 컴퓨터과학전공 문양세.
쉽게 배우는 알고리즘 3장. 정렬Sorting
Chapter 03 배열, 구조체, 포인터.
시스템 생명 주기(System Life Cycle)(1/2)
제2절 법인세의 계산구조와 세무조정 1. 각 사업연도소득에 대한 법인세 계산구조 회계와 사회 결산서상 당기순이익
강의 #6 큐(Queue).
CHAP 1:자료구조와 알고리즘 C로 쉽게 풀어쓴 자료구조 생능출판사 2005.
자료구조 김현성.
CHAP 1:자료구조와 알고리즘 C로 쉽게 풀어쓴 자료구조 생능출판사 2012.
CHAP 1:자료구조와 알고리즘 C로 쉽게 풀어쓴 자료구조 생능출판사 Slide 1 (of 28)
CHAP 1:자료구조와 알고리즘.
[Homework #2] Chapter 5 Chapter 6 Page 110, 문제 13 – 피라미드 높이 구하는 문제
CHAP 8:우선순위큐 C로 쉽게 풀어쓴 자료구조 생능출판사 2011.
1. 논리적이란? 논리적이지 못하다 말이나 글에 두서가 없다. 1. 논리적이란? 논리적이지 못하다 말이나 글에 두서가 없다.
택배 데이터베이스 모델링 김동영 이승언.
2015. 인문소양교육.
프로그래밍 보고서 작성법 순천향대학교 컴퓨터공학과 하 상 호.
월 정례조회.
강의 소개, 자료구조의 개념, SW 개발과 자료구조
[INA240] Data Structures and Practice
다음 주 과제 3장 읽어오기 숙제 해서 제출하기. 자료구조와 알고리즘, 순환 E304호,
Chapter 04 리스트.
제1장 자료구조를 배우기 위한 준비.
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
Chap. 1 Data Structure & Algorithms
국제의료관광 관련 법, 제도.
제 1 장. 자료구조와 알고리즘.
CHAPTER 06 청소년의 행동문화 : 폭력(따돌림), 위험행동, 참여.
1. 어스앵커 시공계획 1-1. EARTH ANCHOR FLOW – CHART 및 전경 공종완료 케이싱 인발
Chapter 02. 소프트웨어와 자료구조.
CHAP 8:우선순위큐.
Ⅳ. 생식과 발생 4. 자손에게 줄 세포 만들기.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
“병원 폐기물 소각장” 및 “가축 폐수 처리장” 건축 허가 반대 (2011년 “음식물처리장” 미해결 민원 연관)
CHAP 1:자료구조와 알고리즘.
알고리즘(Algorithm)  알고리즘 개요 (효율, 분석, 차수) Part 년 봄학기
Internet Computing KUT Youn-Hee Han
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
CONTENTS Ⅰ. 대회목적 Ⅱ. 대회개요 Ⅲ. 대회요강 Ⅳ. 대회규정 Ⅴ. 운영계획 Ⅵ. 홍보계획 Ⅶ. 예산계획.
상황별/유형별 고객응대법.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
Chapter 07 트리.
교육행정 및 경영 제13장 교육재정 (화) 안 봉 직.
알기쉽게 해설한 데이터구조 고 갑 승 한남대학교
▶서류관리 프로그램 1. 로그인….2 2. 서류등록 … 서류도착 서류스티커발행
MST – Kruskal 알고리즘 (추상적)
8단계 3층을 완성한다 Case 1 Case 2 Case 3 Case 4
CHAP 1:자료구조와 알고리즘.
1. 칭찬 및 고발제도 운영(안) 1. 목적 : 칭찬문화의 전사적 확산,전파를 통한 칭찬문화 조성 및 건전한 회사문화 형성
동 행 코 칭 결 과 방문 상황 BEST WORST 김형* PRO 총평 목 / 디지털 평촌 센터
2009개정 중등 국어과 교육과정.
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
알고리즘의 분석(analysis) 공간적 효율성(Space Efficiency)과 시간적 효율성(Time Efficiency)
Presentation transcript:

Chapter 01 자료 구조와 알고리즘

Contents 1. 1 자료 구조와 알고리즘 1. 2 추상 데이터 타입 1. 3 알고리즘의 성능 분석 1. 1 자료 구조와 알고리즘 1. 2 추상 데이터 타입 1. 3 알고리즘의 성능 분석 1. 4 자료 구조 표기법

1. 1 자료 구조와 알고리즘 프로그램 (Program) 1. 1 자료 구조와 알고리즘 프로그램 (Program) 프로그램 = 자료구조 (data structure) + 알고리즘 (algorithm)

1. 1 자료 구조와 알고리즘 알고리즘 (Algorithm) 컴퓨터로 문제를 풀기 위한 단계적인 절차 알고리즘의 조건 1. 1 자료 구조와 알고리즘 알고리즘 (Algorithm) 컴퓨터로 문제를 풀기 위한 단계적인 절차 알고리즘의 조건 입 력 : 0개 이상의 입력 존재 출 력 : 1개 이상의 출력 존재 명백성 : 각 명령어의 의미는 모호하지 않고 명확해야 함 유한성 : 한정된 수의 단계 후에는 반드시 종료되어야 함 유효성 : 각 명령어들은 실행 가능한 연산이어야 함 알고리즘 기술 방법 영어나 한국어와 같은 자연어 흐름도 (flow chart) 유사 코드 (pseudo-code) C와 같은 프로그래밍 언어

1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 자연어 표기 인간이 읽기가 쉬움 1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 자연어 표기 인간이 읽기가 쉬움 그러나 자연어의 단어들을 정확하게 정의하지 않으면 의미 전달이 모호해질 우려가 있음 예) 배열에서 최대값 찾기

1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 (Cont.) 흐름도 (flow chart) 1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 (Cont.) 흐름도 (flow chart) 직관적이고 이해하기 쉬운 알고리즘 기술 방법 그러나 복잡한 알고리즘의 경우, 상당히 복잡해짐

1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 (Cont.) 유사 코드 (pseudo-code) 1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 (Cont.) 유사 코드 (pseudo-code) 알고리즘의 고수준 기술 방법 자연어보다는 더 구조적인 표현 방법 프로그래밍 언어보다는 덜 구체적인 표현방법 알고리즘 기술에 가장 많이 사용 프로그램을 구현할 때의 여러가지 문제들을 감출 수 있음 즉 알고리즘의 핵심적인 내용에만 집중 가능

1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 (Cont.) C 언어 알고리즘의 가장 정확한 기술이 가능 1. 1 자료 구조와 알고리즘 알고리즘의 기술 방법 (Cont.) C 언어 알고리즘의 가장 정확한 기술이 가능 반면 실제 구현시의 많은 구체적인 사항들이 알고리즘의 핵심적인 내용들의 이해를 방해할 수 있음

1. 2 추상 데이터 타입 데이터 타입 (Data type) 추상 데이터 타입 (ADT; Abstract Data Type) 데이터의 집합과 연산의 집합 추상 데이터 타입 (ADT; Abstract Data Type) 데이터 타입을 추상적(수학적)으로 정의한 것 데이터나 연산이 무엇(what) 인가는 정의되지만 데이터나 연산을 어떻게(how) 컴퓨터 상에서 구현할 것인지는 정의되지 않음

1. 2 추상 데이터 타입 추상 데이터 타입의 정의 객체 (object) 연산 (operation) 추상 데이터 타입에 속하는 객체가 정의 연산 (operation) 이들 객체들 사이의 연산이 정의 추상 데이터 타입과 외부를 연결하는 인터페이스의 역할

1. 2 추상 데이터 타입 추상 데이터 타입의 정의 (Cont.) 예) 자연수

1. 3 알고리즘의 성능 분석 알고리즘의 성능 분석 기법 수행 시간 측정 알고리즘의 복잡도 분석 1. 3 알고리즘의 성능 분석 알고리즘의 성능 분석 기법 수행 시간 측정 두개의 알고리즘의 실제 수행 시간을 측정하는 것 실제로 구현하는 것이 필요 동일한 하드웨어를 사용하여야 함 알고리즘의 복잡도 분석 직접 구현하지 않고서도 수행 시간을 분석하는 것 알고리즘이 수행하는 연산의 횟수를 측정하여 비교 일반적으로 연산의 횟수는 n의 함수 시간 복잡도 분석: 수행 시간 분석 공간 복잡도 분석: 수행시 필요로 하는 메모리 공간 분석 컴퓨터에서 수행시간을 측정하는 방법에는 주로 clock 함수가 사용 clock 함수는 호출되었을 때의 시스템 시각을 CLOCKS_PER_SEC 단위로 반환

1. 3 알고리즘의 성능 분석 수행 시간 측정 (Cont.) 수행시간을 측정하는 전형적인 프로그램

1. 3 알고리즘의 성능 분석 알고리즘의 복잡도 분석 방법 1. 3 알고리즘의 성능 분석 알고리즘의 복잡도 분석 방법 시간 복잡도는 알고리즘을 이루고 있는 연산들이 몇 번이나 수행되는지를 숫자로 표시 산술 연산, 대입 연산, 비교 연산, 이동 연산의 기본적인 연산 수헹시간이 입력의 크기에 따라 변하면 안됨 기본적인 연산만 알고리즘이 수행하는 연산의 개수를 계산하여 두 개의 알고리즘 비교 연산의 수행횟수는 고정된 숫자가 아니라 입력의 개수 n에 대한 함수 → 시간복잡도 함수라고 하고  T(n) 이라고 표기

1. 3 알고리즘의 성능 분석 복잡도 분석의 예 n을 n번 더하는 문제 각 알고리즘이 수행하는 연산의 개수를 세어 봄 1. 3 알고리즘의 성능 분석 복잡도 분석의 예 n을 n번 더하는 문제 각 알고리즘이 수행하는 연산의 개수를 세어 봄 단 for 루프 제어 연산은 고려하지 않음

1. 3 알고리즘의 성능 분석 복잡도 분석의 예 (Cont.) n을 n번 더하는 문제

1. 3 알고리즘의 성능 분석 시간 복잡도 함수 계산 예 코드를 분석해보면 수행되는 수행되는 연산들의 횟수를 입력 크기의 함수로 만들 수 있음

1. 3 알고리즘의 성능 분석 빅오 표기법 연산의 횟수를 대략적(점근적)으로 표기한 것 1. 3 알고리즘의 성능 분석 빅오 표기법 연산의 횟수를 대략적(점근적)으로 표기한 것 두개의 함수 f(n)과 g(n)이 주어졌을 때 모든 n≥n0에 대하여 |f(n)| ≤ c|g(n)|을 만족하는 2개의 상수 c와 n0가 존재하면 f(n)=O(g(n))임 빅오는 함수의 상한을 표시 (예) n≥5 이면 2n+1 < 10n 이므로 2n+1 = O(n)

1. 3 알고리즘의 성능 분석 빅오 표기법 (Cont.)

1. 3 알고리즘의 성능 분석 빅오 표기법의 종류 O(1) : 상수형 O(logn) : 로그형 O(n) : 선형 1. 3 알고리즘의 성능 분석 빅오 표기법의 종류 O(1) : 상수형 O(logn) : 로그형 O(n) : 선형 O(nlogn) : 로그선형 O(n2) : 2차형 O(n3) : 3차형 O(nk) : k차형 O(2n) : 지수형 O(n!) : 팩토리얼형

1. 3 알고리즘의 성능 분석 빅오 표기법의 종류 (Cont.) 시간복잡도 n 1 2 4 8 16 32 logn 3 5 1. 3 알고리즘의 성능 분석 빅오 표기법의 종류 (Cont.) 시간복잡도 n 1 2 4 8 16 32 logn 3 5 nlogn 24 64 160 n2 256 1024 n3 512 4096 32768 2n 65536 4294967296 n! 40326 20922789888000 26313×1033

1. 3 알고리즘의 성능 분석 최선, 평균, 최악의 경우 알고리즘의 수행시간은 입력 자료 집합에 따라 다를 수 있음 1. 3 알고리즘의 성능 분석 최선, 평균, 최악의 경우 알고리즘의 수행시간은 입력 자료 집합에 따라 다를 수 있음 최선의 경우(best case): 수행 시간이 가장 빠른 경우 평균의 경우(average case): 수행시간이 평균적인 경우 최악의 경우(worst case): 수행 시간이 가장 늦은 경우

1. 3 알고리즘의 성능 분석 최선, 평균, 최악의 경우 (Cont.) 예) 순차탐색 1. 3 알고리즘의 성능 분석 최선, 평균, 최악의 경우 (Cont.) 예) 순차탐색 최선의 경우: 찾고자 하는 숫자가 맨앞에 있는 경우 ; O(1) 최악의 경우: 찾고자 하는 숫자가 맨뒤에 있는 경우 ; O(n) 평균적인 경우: 각 요소들이 균일하게 탐색된다고 가정하면 (1+2+…+n)/n=(n+1)/2 O(n)

1. 4 자료 구조 표기법 C 언어 표현 방법 자료구조와 관련된 데이터들을 구조체로 정의 1. 4 자료 구조 표기법 C 언어 표현 방법 자료구조와 관련된 데이터들을 구조체로 정의 연산을 호출할 경우, 이 구조체를 함수의 파라미터로 전달

1. 4 자료 구조 표기법 자료 구조 기술 규칙 상수 변수의 이름 함수의 이름 typedef의 사용 대문자로 표기 1. 4 자료 구조 표기법 자료 구조 기술 규칙 상수 대문자로 표기 예) #define MAX_ELEMENT 100 변수의 이름 소문자를 사용하였으며 언더라인을 사용하여 단어와 단어를 분리 예) int increment;     int new_node; 함수의 이름 동사를 이용하여 함수가 하는 작업을 표기 예) int add(ListNode *node)    // 혼동이 없는 경우 int list_add(ListNode *node) //혼동이 생길 우려가 있는 경우 typedef의 사용 C언어에서 사용자 정의 데이터 타입을 만드는 경우에 쓰이는 키워드

[ Exercises ] Chapter 01 (page. 37) 09 시간복잡도 함수 계산 18 프로그램 코드에 대한 답 09 시간복잡도 함수 계산 18 프로그램 코드에 대한 답 22 배열 연산 23 typedef 사용