방법(method)이란 어떤 목적을 달성하기 위해 해야 할 작업을 명확하게 지시한 것입니다.
그리고 방법 중에서도 작업의 횟수가 항상 유한한 것을 특별히 알고리즘(algorithm)이라고 부릅니다.
<한 권으로 그리는 컴퓨터 과학 로드맵> 55p
알고리즘의 복잡도는 크게 시간 복잡도(time complexity)와 공간 복잡도(space complexity)로 나뉜다.
알고리즘의 복잡도란 이 알고리즘이 얼마나 복잡한가를 나타내는 것이 아니라
데이터의 개수(문제의 크기), N에 따라 얼마나 많은 시간(공간 : 메모리 용량)을 소요하는가를 나타내는 척도이다.
Big-O 표기법은 최악의 경우 (worst-case)에 대하여 표기하며, 최악의 경우라도 이정도의 성능은 보장한다는 뜻이다.
(따라서 O(N)인 알고리즘이라고 하더라도 소요시간이 O(N)보다 더 짧을 수도 있음 : best case)
- 좋은 알고리즘 복잡도 : O(log N), O(N * log N)
- 나쁜 알고리즘 복잡도 : O(N^2), O(2^N) 등등
'CS > 알고리즘' 카테고리의 다른 글
해쉬) 프로그래머스 : 완주하지 못한 선수 / 폰켓몬 (0) | 2022.11.26 |
---|---|
백준 2667번 : 단지 번호 (0) | 2022.06.15 |
백준 2606번 : 바이러스 (0) | 2022.06.07 |
재귀 알고리즘(recursive algorithms) (0) | 2022.04.17 |
정렬(sort)과 탐색(search) (0) | 2022.04.16 |