복잡도
- 복잡도는 시간복잡도와 공간복잡도로 나뉜다.
⏰ Time Complexity
시간복잡도- 시간복잡도와 빅오표기법에 대해 공부해보자 ➡ 시간복잡도 Time Complexity
- 시간복잡도의 존재 이유 ➡ 효율적인 코드로 개선하는데 쓰이는 척도가 됨
- O(n^2) 보다는 O(n) 보다는 O(1)을 지향해야 한다.
- 성우님이 주신 추가 자료 시간복잡도 Big-O(빅오)란?
📁 Space Complexity
공간복잡도- 공간복잡도는 프로그램을 실행시켰을 때 필요로하는 자원 공간의 양을 말한다.
- 정적 변수로 선언된 것 말고도, 동적으로 재귀적인 함수로 인해 공간을 계속 필요로 할 경우도 포함된다.
- 총 공간 요구 = 고정 공간 요구 + 가변 공간 요구로 나타낼 수 있으며 수식으로는 $ S(P) = c+S_{P}(n) $ 으로 표기한다.
- 고정 공간은 입력과 출력의 횟수나 크기와 관계없는 공간의 요구(코드 저장 공간, 단순 변수, 고정 크기의 구조 변수, 상수)를 말한다.
- 가변 공간은 해결하려는 문제의 특정 인스턴스에 의존하는 크기를 가진 구조화 변수들을 위해서 필요로 하는 공간, 함수가 순환 호출을 할 경우 요구되는 추가 공간, 그러니까 동적으로 필요한 공간을 말한다.
자료 구조에서의 시간복잡도
자료구조접근탐색삽입삭제
배열(array) | O(1) | O(n) | O(n) | O(n) |
스택(Stack) | O(n) | O(n) | O(1) | O(1) |
큐(queue) | O(n) | O(n) | O(1) | O(1) |
이중 연결 리스트(doubly linked list) | O(n) | O(n) | O(1) | O(1) |
해시테이블 (hash table) | O(n) | O(n) | O(n) | O(n) |
이진 탐색 트리 (BST) | O(n) | O(n) | O(n) | O(n) |
AVL 트리 | O(logn) | O(logn) | O(logn) | O(logn) |
레드 블랙 트리 | O(logn) | O(logn) | O(logn) | O(logn) |
'Til' 카테고리의 다른 글
프로메테우스, 그라파나 (0) | 2023.02.12 |
---|---|
인덱스 (1) | 2023.01.23 |
데이터 베이스의 종류 (1) | 2023.01.22 |
정규화와 트랜젝션 (0) | 2023.01.21 |
프로세스와 스레드 (1) | 2023.01.14 |