자료구조 - 시간/공간복잡도와 Big-O 표기법
- 시간 복잡도는 알고리즘이 데이터 양에 비례해 얼마나 많은 연산을 수행하는지 나타냅니다. ⏱️
- 공간 복잡도는 알고리즘이 사용하는 메모리 공간의 양을 나타냅니다. 💾
- 빅오 표기법은 알고리즘의 효율성을 데이터 증가에 따른 성능 저하 관점에서 수학적으로 표현합니다. 📈
- 빅오 표기법에서는 상수와 최고차항보다 낮은 항을 제거하여 알고리즘의 핵심적인 성능을 파악합니다. ✂️
- O(1)은 데이터 양에 관계없이 일정한 시간이 걸리는 알고리즘입니다. 🍪
- O(log n)은 데이터 양이 증가해도 시간이 조금씩 늘어나는 알고리즘입니다. 📚
- O(n)은 데이터 양에 비례하여 시간이 늘어나는 알고리즘입니다. 📝
- O(n log n)은 효율적인 정렬 알고리즘에서 주로 나타납니다. 🗂️
- O(n^2)은 비효율적인 정렬이나 완전 탐색에서 나타납니다. 🔢
- O(2^n)은 모든 조합을 고려해야 할 때 나타납니다. 👕
- O(n!)은 모든 순열을 고려해야 할 때 나타납니다. 🤹