[자료구조] 순환 - Recursion
·
CS/자료구조
02 순환 Recursion 1. 순환의 개념 1-1. 순환이란? 순환이란 알고리즘이나 함수가 수행 도중에 자기 자신을 다시 호출하여 문제를 해결하는 기법이다. 정의 자체가 순환적으로 되어 있는 경우에 적합한 방법이다. 순환의 가장 간단한 예로는 팩토리얼있다. 아래는 c언어로 팩토리얼 구하는 함수를 만든 것이다. int factorial(int n){ if (n ... -> 21 -> 20) 즉, 호출을 할 때마다 문제의 크기가 2로 나눈 것만큼 줄어들기 때문에 시간복잡도가 O(log2 n)이다. 반면 반복문은 n만큼 반복 연산해야하기 때문에 시간복잡도가 O(n)이다. 물론 수학적인 방식을 이용했기때문에 당연히 순환적인 방식이 빠를 수밖에 없는 거 아닌가라고 생각할 수 있을 것이다. 그러나 반복문에서는 ..
[자료구조] 자료구조와 알고리즘
·
CS/자료구조
01 자료구조와 알고리즘 1. 자료구조의 기본 개념 1-1. 프로그램 vs 프로세스 vs 프로세서 (Program vs Process vs Processor) 프로그램(Program) 이란 지정된 작업을 수행하는 명령 그룹이다. 즉, 실행될 명령 그룹을 코드로 정리해놓은 파일의 집합이다. 반면, 프로세스(Process) 는 정해진 목적을 수행하기 위해 메모리에 나열된 작업의 목록이다. 다르게 말하자면 실행 중인 프로그램을 의미한다. 프로그램과 프로세스를 구별하는 방법은 다음과 같다. 작업의 과정이 파일이 정리되어 있다면 프로그램 , 메모리(RAM)에 적재되어 실행 중이거나 대기 중이면 프로세스 라고 생각하면 된다. 또, 프로세서(Processor) 는 프로세스와는 다른 개념으로, 하드웨어 측면에서는 컴퓨..