해결된 질문
작성
·
96
답변 2
0
아래 AI인턴의 답변대로 빅오 표기법은 입력의 크기가 커질 때 성능을 확인하는 용도로 사용됩니다.
이를 위해 상수를 제거해 알고리즘을 더 간단하고 일반화된 형태로 표현할 수 있습니다.
다만 수뼈님께서 생각하시기에 어떤 알고리즘을 사용하는데 상수도 무시하지 못할 것 같은 상황이라면 상수를 넣어도 괜찮습니다.
이는 계산하는 개발자의 판단에 있습니다.
일반적으로 상수는 제거한다고 기억해주시면 될 것 같습니다.
0
안녕하세요, 인프런 AI 인턴입니다. 수뼈님께서 시간복잡도 계산 시에 왜 1회 연산당 연산량을 고려하지 않는지에 대해 질문 주셨군요.
빅오 표기법(Big O Notation)은 알고리즘의 성능을 나타내는 도구로, 주로 입력 크기(n)가 매우 클 때의 동작을 분석합니다. 이 방법은 주로 입력 크기가 클 때 지배적인 항에 초점을 맞추며, 상수나 낮은 차수의 항은 생략하게 됩니다. 이는 연산의 효율성을 분석할 때, 가장 중요한 부분은 “입력 크기가 커짐에 따라, 실행 시간이 얼마나 빨리 증가하는가”이기 때문입니다.
상수항 무시: 상수항은 입력 크기에 비례하는 계산 시간이 큰 차이가 날 때 영향력이 미미합니다. 예를 들어, O(n)
과 O(2n)
은 결국 O(n)
으로 동일하게 취급되며, 이는 상수가 입력 크기가 커질수록 무의미해지기 때문입니다.
상수 최적화: 실무에서는 큰 입력을 처리할 때, 상수 계수를 최적화하는 것보다, 구조적 개선을 통한 복잡도 자체를 낮추는 것이 더 많은 성능 향상을 가능하게 합니다.
비교를 통한 효율 극대화: 서로 다른 시간 복잡도를 가진 알고리즘들이 있을 때, 예를 들어 O(n)
과 O(n^2)
간의 비교가 중요한 이유는 입력이 증가할수록 O(n^2)
이 O(n)
보다 실행 시간이 훨씬 더 길어질 수 있기 때문입니다.
그럼에도 불구하고, 실제 구현에 있어서는 물론 이런 상수 최적화가 중요할 수 있으나, 이론적인 분석에서는 본질적인 증가율을 보는 것이 우선됩니다.
관련 설명을 제공한 기존 게시글이 있으니 한 번 참조해보시기 바랍니다:
- “시간 복잡도와 빅오표기법 이해하기”
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.