프로그래밍/자료구조

    [자료구조] Recursion

    [자료구조] Recursion

    1. Recursion Recursion 이란? => algorithm이나 함수가 수행 도중에 자기 자신을 다시 호출하여 문제를 해결하는 기법 => 정의 자체가 순환적으로 되어 있는 경우에 적합한 방법 Recursion을 사용한 algorithm => factorial 값 구하기 => Fibonacci 수열 => 이항계수 => Hanoi 탑 => 이진탐색 factorial 값 구하기 => factorial 이란? n이 하나의 자연수일 때, 1에서 n까지의 모든 자연수의 곱을 n에 상대하여 이르는 말이다. factorial 구현 방법 => 1번째 방법 => factorial1 함수와 그 외의 sub 함수를 따로 제작 int factorial1(int n) { if( n 순환 호출을 멈추는 부분이 없다면 오..

    [자료구조] 자료구조와 Algorithm

    [자료구조] 자료구조와 Algorithm

    알고리즘(Algorithm)의 정의 - 컴퓨터로 문제를 풀기 위한 단계적인 절차 - 9세기 페르시아의 수학자인 무하마드 알콰리즈미(Muhammad al-Kwarizmi)의 이름을 라틴어화한 algorismus에서 따온 말이다. 좋은 알고리즘(Algorithm)의 조건 - 입 력 : 0개 이상의 입력이 존재 - 출 력 : 1개 이상의 출력이 존재 - 명확성 : 각 명령어의 의미가 모호하지 않고 명확 - 유한성 : 한정된 수의 단계 후에는 반드시 종료 - 유효성 : 각 명령어들은 실행 가능한 연상 - 정밀성 : 변하지 않는 명확한 작업 단계 - 유일성 : 각 단계마다 명확한 다음 단계를 가짐 - 타당성 : 구현할 수 있고 실용적이어야 함 알고리즘(Algorithm)의 표현 방법 - 영어나 한국어와 같은 자연..