상세 컨텐츠

본문 제목

자료구조 별 Big O 시간 복잡도

자료구조&알고리즘/C++

by geminanolja 2024. 12. 13. 01:09

본문

1. Array (배열)

  • 참조: O(1) (인덱스를 통한 직접 접근 가능).
  • 탐색: O(n) (특정 값 찾기 위해 순차 탐색 필요).

2. Vector (동적 배열)

  • 참조: O(1) (배열과 동일).
  • 탐색: O(n) (배열과 동일).
  • 삽입/삭제 (맨 끝/앞):
    • 끝: O(1) (끝에 추가하거나 삭제 가능).
    • 앞: O(1) (특정 구현에 따라 다를 수 있음).
  • 삽입/삭제 (중간): O(n) (데이터를 이동해야 함).

3. Stack (스택)

  • n번째 참조: O(n) (스택은 후입선출 구조로 특정 위치 접근이 느림).
  • 가장 앞부분 참조 (Top): O(1) (스택의 꼭대기에 접근 가능).
  • 탐색: O(n) (특정 값 탐색은 전체를 확인해야 함).
  • 삽입/삭제: O(1) (스택의 맨 위에서만 작동).

4. Queue (큐)

  • n번째 참조: O(n) (큐는 선입선출 구조로 특정 위치 접근이 느림).
  • 가장 앞부분 참조 (Front): O(1) (큐의 첫 번째 원소에 빠르게 접근 가능).
  • 탐색: O(n) (특정 값 탐색은 전체를 확인해야 함).
  • 삽입/삭제: O(1) (맨 뒤에 추가하거나 맨 앞에서 삭제 가능).

5. Doubly Linked List (이중 연결 리스트)

  • 참조: O(n) (특정 노드 접근 위해 순차 탐색 필요).
  • 탐색: O(n) (특정 값 탐색도 순차적).
  • 삽입/삭제: O(1) (노드 추가/삭제 시 참조만 변경하면 됨).

6. Map (맵, 예: 이진 탐색 트리)

  • 참조: O(log n) (키를 기반으로 효율적 검색 가능).
  • 탐색: O(log n) (이진 검색 기반 탐색).
  • 삽입/삭제: O(log n) (트리 구조 업데이트). ​

'자료구조&알고리즘 > C++' 카테고리의 다른 글

vector 벡터02 반복자(iterator)  (2) 2024.12.14
vector 벡터  (0) 2024.12.14
Big O notation  (2) 2024.12.13
Doubly linked List 03 Delete Node  (2) 2024.12.11
Doubly Linked List 02  (1) 2024.12.11

관련글 더보기