본문 바로가기

알고리즘3

[자료구조, 알고리즘] 재귀호출 - 헷갈리면 모르는것 [특징 및 이해할 때 필요한 개념](1) 재진입 개념이 아닌 복사본 개념 : 스택에 쌓인 함수는 각각의 함수(2) 반복 : 이전의 연산에 기반해서 현재의 것을 연산할 때 사용 : 함수에서 함수를 호출=> 동일 패턴 반복 (3) 문제 -> 논리 세우기 -> 코드화 / 패턴화(함수, 0 - 1 - ---- - n-1 - n - n+1)(4) 메모리(코드) - CPU(연산) : 언어 런타임 별 메모리 할당 구조 살펴보기(5) 함수 호출 관계 - 순서 한번쯤 따져보기=> 호출한 함수가 모두 끝난 후(return) 되돌아와서 실행=> 수학의 함수 개념 : 정의역, 공역, 치역(특정 값을 도출해내기위한 패턴) (6) 성능상 좋지않으나(재귀 두갈래 이상 out of memory 조심) 간결한 코드 [예시](1) 팩토.. 2017. 8. 21.
[자료구조 알고리즘] 재귀 호출 : 논리를 코딩하기 [재귀함수 호출]- S(n) 결과값 도출을 위해 S(n-1)이 필요할 때 재귀 호출을 사용 => 패턴화를 위해 예시 경우의수 2~3가지를 대입해서 실행해보고 패턴화해서 코드로 짜기 123456789101112void Recursive(int num) { if(num 복사본(Recursive) -> 복사본(Recursive) -> 복사본(Recursive) => 원본의 복사본 실행 => 명령문 실행 : 명령문은 CPU로 이동(복사)되어 실행 => 메모리(스택)에 이전 함수(복사본)의 주소가 저장 : 마지막 호출된 복사본이 종료되면 이전 함수(복사본)으로 돌아감 - 재귀 함수 탈출 조건 : 끝남 조건, 무한루프 X => OutOfMemory - 반복문을 간결하게 작성함 : 함수를 스택에 쌓고 연산하는 것보다.. 2017. 7. 31.
[자료구조 알고리즘] 자료구조, 알고리즘, 함수(패턴), 빅-오 표기 [자료구조와 알고리즘]- 프로그램 : 데이터 표현(자료구조)하고, 표현된 데이터를 처리(알고리즘)하는 것임=> 어떤 자료구조를 사용했을 때 효율적(알고리즘 : 시간, 공간)으로 처리할 수 있을 것인가?=> 어떤 결과값을 리턴해내야하는가 : 어떤 결과가 필요한가부터 정하고 => 반 학생(36명) 중 아침을 먹고온 사람이 있는지 없는지 체크할 때 : 배열, 순차탐색 알고리즘 (1) 선형구조 : 리스트, 스택, 큐(2) 비선형구조 : 트리, 그래프(3) 파일구조 : 순차파일, 색인파일, 직접파일(4) 단순구조 : 정수, 실수, 문자, 문자열 - 알고리즘 맛 보기(1) 순차탐색알고리즘12345678int LSearch(int arr[], int len, int target){ for(int i=0; i 주변에 .. 2017. 7. 24.