열심히 살아나갈 사람
Published 2023. 12. 7. 14:43
시간복잡도 Data Structure

시간 복잡도는 알고리즘이 실행되는 동안 수행되는 연산의 횟수를 나타내는 개념으로, 알고리즘의 효율성을 평가하는 데 사용됩니다. 특히 'Big O 표기법'은 최악의 경우를 나타내는데 사용되며, 시간 복잡도를 표현하는 가장 일반적인 방법입니다.

시간 복잡도는 입력값의 크기에 따라 알고리즘이 얼마나 많은 연산을 수행하는지를 나타냅니다. 다음은 몇 가지 대표적인 시간 복잡도와 그에 대한 설명입니다:

  • O(1): 상수 시간. 입력값의 크기와 무관하게 항상 일정한 시간이 걸립니다. 예를 들어, 배열의 특정 인덱스에 접근하는 연산이 이에 해당합니다.
  • O(log n): 로그 시간. 입력값이 두 배로 늘어날 때마다 한 단계씩 더 걸립니다. 예를 들어, 이진 탐색이 이에 해당합니다.
  • O(n): 선형 시간. 입력값의 크기에 비례하여 시간이 걸립니다. 예를 들어, 배열을 순회하는 연산이 이에 해당합니다.
  • O(n log n): 선형 로그 시간. 입력값이 늘어날수록 시간이 로그배로 늘어납니다. 예를 들어, 머지 소트나 퀵 소트 같은 효율적인 정렬 알고리즘이 이에 해당합니다.
  • O(n^2): 제곱 시간. 입력값의 크기의 제곱에 비례하여 시간이 걸립니다. 예를 들어, 버블 소트나 선택 정렬 같은 비효율적인 정렬 알고리즘이 이에 해당합니다.
  • O(2^n): 지수 시간. 입력값의 크기에 따라 시간이 지수적으로 늘어납니다. 예를 들어, 피보나치 수열의 재귀적 구현이 이에 해당합니다.

시간 복잡도를 이해하는 것은 효과적인 알고리즘을 작성하는 데 중요하며, 특히 대량의 데이터를 처리할 때 효율적인 알고리즘이 필요하기 때문입니다.

'Data Structure' 카테고리의 다른 글

해시 테이블(Hash Table)  (1) 2023.12.06
그래프 (Graph)  (0) 2023.03.24
자료구조 (Data Structure)  (0) 2023.03.22
트리 (Tree)  (0) 2023.03.20
큐 (Queue)  (0) 2023.03.20
profile

열심히 살아나갈 사람

@쿼리_

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!