알고리즘/이론
[알고리즘] 기본 및 복잡도
히더
2018. 9. 29. 14:26
알고리즘이란?
유한한 단계로 문제를 해결하는 로직이다. 컴퓨터가 어떤 일을 하는 수행의 단계적 방법이다.
효율적인 알고리즘
메모리 공간을 최적화 하는 공간적 효율성, 수행 시간에 대해 최소의 시간을 고려하는 시간적 효율성 고려해야한다.
효율성이 즉 복잡도가 된다.
이러한 부분은 아키텍처, 자료구조, HW 환경, SW 환경 등 다양한 요소를 고려해야한다.
복잡도의 점근적 표기 Big-Oh
시간 복잡도를 입력 크기에 대한 함수로 표기할 수 있다. 이를 점근적 표기(Asymptotic Notation)라 한다.
가장 큰 예로 Big-Oh 표기법이 있다. Big-Oh는 최대 이런 시간이 걸린다는 의미를 가진다.
O(1) : 상수 시간 (Constant time)
O(logn) : 로그(대수) 시간 (Logarithmic time)
O(n) : 선형 시간 (Linear time)
O(nlongn) : 로그 선형 시간 (Log-linear time)
O(n제곱) : 제곱 시간 (Quadratic time)
O(n세제곱) : 세제곱 시간 (Cubic time)
O(2의n제곱) : 지수 시간 (Exponential time)
작성자 : 히더