recursion algorithm 3

[ 개념 ] 19. 재귀(Recursion)의 기본 개념과 예제3

> Recursion의 기본 개념과 예제3 Desigining Recursion 순환적 알고리즘의 설계 적어도 하나의 base case, 즉 순환되지 않고 종료되는 case가 있어야 한다 모든 case는 결국 base case로 수렴해야 한다 ex - 가장 단순한 경우 if(...){ // basecase } else { // recursion } 암시적(implicit) 매개변수를 명시적(explicit) 매개변수로 바꾸어라!! 순차탐색 이 함수의 미션은 data[0]에서 data[n-1]사이에서 target을 검색하는 것이다. 하지만 검색 구간의 시작 인덱스 0은 보통 생략한다. 즉, 0은 암시적 매개변수이다. int search(int[] data, int n, int target){ for(int..

[ 개념 ] 18. 재귀(Recursion)의 기본 개념과 예제2

> Recursion의 기본 개념과 예제2 Recursive Thinking - 순환적 사고 Recursion은 수학함수 계산에만 유용한가? 수학함수뿐 아니라 다른 많은 문제들을 recursion으로 해결할 수 있다. 문자열의 길이 계산 순서대로 앞에서부터 하나씩 카운트 또는, 총 문자열의 길이는 첫 번째 문자를 뺀, 전체 문자열의 길이 +1(첫번째 문자)이다. if the string is empty // base case return 0; else return 1 plus the length of the string that excludes the first character; public static int length(String str){ if(str.equals("")) return 0; el..

[ 개념 ] 17. 재귀(Recursion)의 기본 개념과 예제1

> Recursion의 기본 개념과 예제 Recursion 우리말로 순환 또는 재귀함수라고 한다. 즉, 자기 자신을 호출하는 함수, 메소드를 뜻한다. void func(){ ... func(); ... } ex1 - 무한루프 public class Code01{ public static void main(String[] args){ func(); } private static void func(){ System.out.println("hello.."); func(); } } ex2 - 항상 무한루프에 빠질까? recursion이 적절한 구조를 가지고 있다면, 항상 무한루프에 빠지는 것은 아니다. Base Case : 적어도 하나의 recursion에 빠지지 않는 경우가 존재해야 한다. Recursive ..