O(n)과 O(log n)

urur-27·2025년 3월 7일

잡다한

목록 보기
2/17

알고리즘의 시간 복잡도(실행 속도)와 공간 복잡도(메모리 사용량)을 수학적으로 표현하는 방법인 Big-O Notation 중 O(n)과 O(log n)에 대하여 알아본다.


O(n)과 O(log n)의 성능 차이

실생활에서의 예시 - 도서관에서 책 찾기

1) 모든 책을 하나씩 확인하는 경우 O(n)

  • n개의 책이 있는 도서관에서 처음부터 끝까지 한 권씩 확인하며 원하는 책을 찾는 경우 O(n)번 찾아야 한다.
    (Big O Notation은 최악의 상황을 가정하기에 끝까지 찾는 O(n)번 실행)
  • 정렬되지 않은 도서관에서 책을 찾는다면 어쩔 수 없이 이 방법을 사용해야 함
  • 1,000,000권의 책에서 찾는 경우 최대 1,000,000번 확인해야 함

2) 정렬된 도서관에서 절반씩 나누어 찾는 경우 O(log n)

  • 책이 가나다순으로 정렬되어 있다면, 원하는 책의 제목과 비교하며 절반씩 영역을 줄여가며 탐색
  • 찾는 범위에서 중간 책의 제목을 확인하여 앞쪽에 찾는 책이 있는지,
    뒤쪽에 찾는 책이 있는지 확인 후 절반씩 줄여가며 탐색
  • 책이 16권 있는 경우 확인 횟수 : O(log 4)
    1번: 16권 → 8권
    2번: 8권 → 4권
    3번: 4권 → 2권
    4번: 2권 → 1권
  • 1,000,000권의 책에서 찾는 경우 최대 20번을 확인해야 함

크기가 1,000,000개의 데이터를 O(n)O(log n)으로 연산하는 경우

  • O(n) -> 1,000,000
  • O(log n) -> 20
profile
끄아악

0개의 댓글