chap x: G입력

Similar documents
chap 5: Trees

Microsoft PowerPoint - Chap1-전반부 [호환 모드]

2002년 2학기 자료구조

K&R2 Reference Manual 번역본

PowerPoint 프레젠테이션

슬라이드 1

PowerPoint 프레젠테이션

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint 프레젠테이션

Chapter 4. LISTS

11장 포인터

PowerPoint 프레젠테이션

Chap 6: Graphs

untitled

슬라이드 1

PowerPoint 프레젠테이션

슬라이드 1

Chapter 4. LISTS

03장.스택.key

컴파일러

설계란 무엇인가?

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

슬라이드 1

Microsoft PowerPoint - chap10-함수의활용.pptx

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

C 프로그래밊 개요

프로그램을 학교 등지에서 조금이라도 배운 사람들을 위한 프로그래밍 노트 입니다. 저 역시 그 사람들 중 하나 입니다. 중고등학교 시절 학교 도서관, 새로 생긴 시립 도서관 등을 다니며 책을 보 고 정리하며 어느정도 독학으르 공부하긴 했지만, 자주 안하다 보면 금방 잊어

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

Microsoft PowerPoint - 제3장-배열.pptx

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

슬라이드 1

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

PowerPoint 프레젠테이션

C 언어 프로그래밊 과제 풀이

중간고사

슬라이드 1

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - 제11장 포인터(강의)

5.스택(강의자료).key

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

Microsoft PowerPoint - 제11장 포인터

Microsoft PowerPoint 자바-기본문법(Ch2).pptx

13주-14주proc.PDF

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

The C++ Programming Language 4 장타입과선언 4.11 연습문제 Hello,world! 프로그램을실행시킨다. 프로그램이컴파일되지않으면 B3.1 을참고하자. #include<iostream> //#include 문, 헤더파일, 전처리지시

PowerPoint 프레젠테이션

슬라이드 1

chap01_time_complexity.key

C 프로그래밊 개요

Java ...

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

02장.배열과 클래스

untitled

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

PowerPoint Presentation

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

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

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

Microsoft PowerPoint - chap11-포인터의활용.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

PowerPoint Presentation

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

chap8.PDF

Microsoft PowerPoint - lec2.ppt

03_queue

Microsoft PowerPoint - Chapter_04.pptx

설계란 무엇인가?

PowerPoint 프레젠테이션

유니티 변수-함수.key

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

슬라이드 1

PowerPoint 프레젠테이션

데이터 구조의 개요

목차 배열의개요 배열사용하기 다차원배열 배열을이용한문자열다루기 실무응용예제 C 2

<4D F736F F F696E74202D20C0DAB7E1B1B8C1B62D DBFB5BBF3BCF6BEF72DC5E4BFE4C0CFBCF6BEF72E >

1.2 자료형 (data type) 프로그램에서다루는값의형태로변수나함수를정의할때주로사용하며, 컴퓨터는선언된 자료형만큼의메모리를확보하여프로그래머에게제공한다 정수 (integer) 1) int(4 bytes) 연산범위 : (-2 31 ) ~ (2 31 /2)-

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

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

HW5 Exercise 1 (60pts) M interpreter with a simple type system M. M. M.., M (simple type system). M, M. M., M.

< B0B3C0CEC1A4BAB8BAD0C0EFC1B6C1A4BBE7B7CAC1FD2E687770>

KNK_C_05_Pointers_Arrays_structures_summary_v02

제 1 장 기본 개념

Lab 3. 실습문제 (Single linked list)_해답.hwp

Microsoft PowerPoint - chap03-변수와데이터형.pptx

Microsoft PowerPoint - 05-chap03-ArrayAndPointer.ppt

Microsoft PowerPoint - chap-09.pptx

, ( ),, ( ), 3, int kor[5]; int eng[5]; int Microsoft Windows 4 (ANSI C2 ) int kor[5] 20 # define #define SIZE 20 int a[10]; char c[10]; float

쉽게 풀어쓴 C 프로그래밍

02 C h a p t e r Java

adfasdfasfdasfasfadf

Microsoft PowerPoint 알고리즘 개요(Part 1).pptx

윈도우즈프로그래밍(1)

Microsoft PowerPoint - PL_03-04.pptx

11장 포인터

API 매뉴얼

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

제 1 강 희망의 땅, 알고리즘

Transcription:

재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19)

이진검색의재귀알고리즘 int binsearch(int list[], int key, int left, int right) { /*search list[0] <= list[1] <=... <= list[n-1] for key. Return its position if found. Otherwise return -1 */ int middle; if (left <= right) { middle = (left + right) / 2; switch (compare(list[middle], key)) { case -1: return binsearch(list, key, middle+1, right); case 0: return middle; case 1: return binsearch(list, key, left, middle-1); return -1; 1 장. 기본개념 (Page 20)

예 1.4: 순열 (Permutations) 문제정의 n 1 개의원소를갖는집합에대해이집합의모든원소들에대한순열을출력하라. 예 : 집합 {a, b, c 에대해순열의집합 = {(a, b, c), (a, c, b), (b, a, c), (b, c, a), (c, a, b), (c, b, a) n 개의원소에대한순열의수는 n! 재귀적인해결방법 : 집합 {a, b, c, d 를가정 a 가먼저나온후, {b, c, d 로구성된모든순열 b 가먼저나온후, {a, c, d 로구성된모든순열 c 가먼저나온후, {a, b, d 로구성된모든순열 d 가먼저나온후, {a, b, c 로구성된모든순열 1 장. 기본개념 (Page 21)

Program 1.8: 순열을출력하는재귀함수 void perm(char *list, int i, int n) // list[i] 에서 list[n] 까지의원소로구성된모든순열출력 // {a, b, c, d 의경우초기호출 = perm(list, 0, 3) { int j, temp; if (i == n) { // 단하나의순열만존재. 그냥출력하자 for (j = 0; j <= n; j++) printf("%c", list[j]); printf(" "); else { // 하나이상의순열존재. 재귀적으로출력 for ( j = i; j <= n; j++) { SWAP(list[i], list[j], temp); perm(list, i+1, n); SWAP(list[i], list[j], temp); 1 장. 기본개념 (Page 22)

perm() 함수의동작과정 i n perm(0, 3) i,j swap(0, 0) i j n n b a c d swap(0, 1) i n perm(1, 3) i,j swap(1, 1) i n i j n a c b d swap(1, 2) j,n a d c b swap(1, 3) i n perm(2, 3) i n a c b d perm(2, 3) i,j n swap(2, 2) i j,n a b d c swap(2, 3) i,j n a c b d swap(2, 2) i j,n a c d b swap(2, 3) i,n perm(3, 3) i,n a b d c perm(3, 3) i,n a c b d perm(3, 3) i,n a c d b perm(3, 3) 1 장. 기본개념 (Page 23)

3. 데이터추상화 (Data Abstraction) C 언어에서데이터타입 기본형 : char, int, float, double 확장형 : short, long, unsigned 그룹화 : array, struct, union 포인터 데이터타입의정의 데이터객체의모음및그데이터객체에적용가능한연산들의집합 예 : int 객체 : {0, 1, -1, 2, -2,..., INT_MAX, INT_MIN 연산 : {+,, *, /, %,... 1 장. 기본개념 (Page 24)

추상적데이터타입 (Abstract Data Type) 데이터객체의내부표현양식을아는것이도움이될까? Yes, but dangerous! Abstract Data Type (ADT) 의정의 데이터객체및연산의명세와데이터객체의내부표현양식 / 연산의구현내용을분리 예 : Ada package, C++ class ADT 에서연산의명세 구성요소 : 함수이름, 인자들의타입, 결과들의타입 함수의호출방법및결과물이무엇인지를설명 함수의내부동작과정및구현방법은은폐 Information Hiding 1 장. 기본개념 (Page 25)

연산명세에서내부함수들의종류 생성자 (Creator/Constructor) 데이터객체의새로운인스턴스생성 Transformer 기존인스턴스를이용하여새로운인스턴스를생성 관찰자 (Observer/Reporter) 인스턴스에대한정보를출력 1 장. 기본개념 (Page 26)

ADT 의예 : Natural Number ADT Natural_Number 객체 : 0 부터시작하여컴퓨터로표현할수있는최대정수 (INT_MAX) 까지의범위에속하는정수들의집합함수 : for all x, y Natural_Number; TRUE, FALSE Boolean and where +,, <, and == are the usual integer operations Nat_No Zero( ) ::= 0 Boolean Is_Zero(x) ::= if (x) return FALSE else return TRUE Nat_No Add(x, y) ::= if ((x + y) <= INT_MAX) return x + y else return INT_MAX Boolean Equal(x, y) ::= if ( x == y ) return TRUE else return FALSE Nat_No Successor(x) ::= if ( x == INT_MAX ) return x else return x + 1 Nat_No Subtract(x, y) ::= if (x < y) return 0, else return x y end Natural_Number 1 장. 기본개념 (Page 27)

4. 성능분석 (Performance Analysis) 프로그램의평가기준 주어진문제를해결 정확성 (Correctness) 문서화 (Documentation) 모듈화 (Modularization) 가독성 (Readability) 공간효율성 (Space efficiency) 시간효율성 (Time efficiency) 필수적인요소 좋은프로그래밍습관 성능과관련 성능분석 (Complexity theory, Simulation) vs. 성능측정 (Benchmarking) 복잡성 (Complexity) 의정의 공간복잡성 : 프로그램실행에소요되는메모리 시간복잡성 : 프로그램의실행시간 1 장. 기본개념 (Page 28)

4.1 공간복잡성 (Space Complexity) 고정적인공간요구사항 입력과출력크기에무관한공간들 예 : 명령어공간, 단순변수나상수를위한공간, 가변적인공간요구사항 : S p (I) I 의수나크기, 그리고 I/O 의횟수등에따라가변적인공간 프로그램 P 의전체공간요구 S(P) = c + S p (I) 예 : 단순산술함수 S abc (I) = 0 float abc( float a, float b, float c ) { return a+b+b*c + (a+b-c)/(a+b) + 4.0; 예 : 배열에저장된원소들의합 : Program 1.10 1 장. 기본개념 (Page 29)

Program 1.10 과 Program 1.11 float sum(float list[], int n) { float tempsum = 0; int i; for (i = 0; i < n; i++) tempsum += list[i]; return tempsum; Program 1.10: S sum (I) = 0 float rsum(float list[], int n) { if (n) return rsum(list, n-1) + list[n-1]; return 0; Program 1.11: S rsum (I) = (n+1)(float * + int) 1 장. 기본개념 (Page 30)