inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

그림으로 쉽게 배우는 자료구조와 알고리즘 (기본편)

시간복잡도 계산 시 1회 연산당 연산량은 왜 고려하지 않는 건가요?

해결된 질문

146

수뼈

작성한 질문수 24

1

물론 시간복잡도 측정 방식 중 대표적인 빅오 표기법 자체가 n이 점점 커져서 무한대로 커지는 걸 가정하니까 1회 연산량이 몇 배 차이 난다 해도 aN+b에서 a나 다름 없으므로 제거하는 것 같긴 합니다. 하지만 같은 O(n)이면 n이 절반만 줄어도 (n이 무한히 커진다고 가정할 때) 그 효과가 무시할 만한 수치가 아닐 것 같아서 여쭤 봅니다. (ChatGPT 답변은 뭔가 신통치 않고, 근거자료 달라고 해도 못 가져오길래 질문드립니다.)

알고리즘 자료구조

답변 2

0

감자

아래 AI인턴의 답변대로 빅오 표기법은 입력의 크기가 커질 때 성능을 확인하는 용도로 사용됩니다.
이를 위해 상수를 제거해 알고리즘을 더 간단하고 일반화된 형태로 표현할 수 있습니다.
다만 수뼈님께서 생각하시기에 어떤 알고리즘을 사용하는데 상수도 무시하지 못할 것 같은 상황이라면 상수를 넣어도 괜찮습니다.
이는 계산하는 개발자의 판단에 있습니다.
일반적으로 상수는 제거한다고 기억해주시면 될 것 같습니다.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 수뼈님께서 시간복잡도 계산 시에 왜 1회 연산당 연산량을 고려하지 않는지에 대해 질문 주셨군요.

빅오 표기법(Big O Notation)은 알고리즘의 성능을 나타내는 도구로, 주로 입력 크기(n)가 매우 클 때의 동작을 분석합니다. 이 방법은 주로 입력 크기가 클 때 지배적인 항에 초점을 맞추며, 상수나 낮은 차수의 항은 생략하게 됩니다. 이는 연산의 효율성을 분석할 때, 가장 중요한 부분은 “입력 크기가 커짐에 따라, 실행 시간이 얼마나 빨리 증가하는가”이기 때문입니다.

  1. 상수항 무시: 상수항은 입력 크기에 비례하는 계산 시간이 큰 차이가 날 때 영향력이 미미합니다. 예를 들어, O(n)O(2n)은 결국 O(n)으로 동일하게 취급되며, 이는 상수가 입력 크기가 커질수록 무의미해지기 때문입니다.

  2. 상수 최적화: 실무에서는 큰 입력을 처리할 때, 상수 계수를 최적화하는 것보다, 구조적 개선을 통한 복잡도 자체를 낮추는 것이 더 많은 성능 향상을 가능하게 합니다.

  3. 비교를 통한 효율 극대화: 서로 다른 시간 복잡도를 가진 알고리즘들이 있을 때, 예를 들어 O(n)O(n^2) 간의 비교가 중요한 이유는 입력이 증가할수록 O(n^2)O(n)보다 실행 시간이 훨씬 더 길어질 수 있기 때문입니다.

그럼에도 불구하고, 실제 구현에 있어서는 물론 이런 상수 최적화가 중요할 수 있으나, 이론적인 분석에서는 본질적인 증가율을 보는 것이 우선됩니다.

관련 설명을 제공한 기존 게시글이 있으니 한 번 참조해보시기 바랍니다:
- “시간 복잡도와 빅오표기법 이해하기”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

큐의 마지막 데이터가 head에 위치해야 하는 이유가 궁금합니다.

0

71

2

이중연결 리스트 데이터 삭제시 질문이 있습니다.

1

60

2

자바스크립트 배열은 동적이 아닌가요?

1

85

2

자바스크립트 배열

0

75

2

코테에서 링크리스트 자료구조를 사용해야 하면, 이번 강의에서 구현한 메서드들도 모두 직접 구현하면 되나요?/

0

148

2

공부 방식 질문 드립니다.

1

115

2

메모이제이션과 타뷸레이션 관련해서 질문드립니다.

1

166

2

병합정렬에서 질문이 있습니다.

2

140

1

병합정렬 질문 있습니다.

1

136

5

데이터 삽입, 삭제 함수 오류 범위 설정

0

156

2

해시 테이블에서 질문이 잇습니다.

2

126

2

터미널 설정

0

112

2

2:37초 질문입니다.

0

102

2

2:13분 관련 질문입니다

0

89

1

8:47초경부터 9:00초까지 질문입니다.

1

132

2

tail을 삭제하는 경우에 관련해서 질문이 있습니다.

0

106

1

2:36초 head 위치가?

1

108

2

환경구축강의 중 터미널 파일 실행오류

0

159

2

4:58 이중for문 질문있습니다.

0

103

1

hanoi함수 처음 호출에 대해서 여쭤봅니다.

1

127

2

해쉬테이블 데이터 관련해서 질문있습니다.

0

145

2

자바스크립트 Map과 어떤 차이가 있나요??

0

201

2

질문이있습니다.

0

101

1

2번째 복습 스터디📖 를 진행하고 스터디원분들과 나눈 질문들 입니다.(자료구조와 알고리즘)

1

144

2