자료구조 시간복잡도 질문드립니다
조회수 1101회
O(n2)의 시간복잡도를 가지는 알고리즘에서 입력의 개수가 2배로 되었다면 실행시간은 어떤 추세로 증가하는가?
- 변함없음
- 2배
- 4배
- 8배
에서 이걸
(2n)2 = 4n2
이렇게 해서 4배가 답인가요?
변함없음 이랑 4배랑 자꾸 헷갈리네요..
빅오 표기법 만들 때 최고차항의 계수도 버리는 부분이랑 헷갈려서 여쭙습니다ㅠㅠ
1 답변
-
O(n2 )에서 n2 은 최악의 상황에서의 T(n)의 최고차항의 차수를 나타낸 것인데요. 여기서 n이 데이터 수입니다.
질문에서 입력의 개수라는 것이 데이터 수 n을 말하는 것 같은데 맞지요?
빅오로부터 알 수 있는 대략적인 계산량이 n2 인데, 원래 데이터 수가 x였다고 한다면 계산량은n에 x를 대입해 x2 일텐데, 데이터의 수가 2배인 2x가 되었다면 계산량은 n에 2x를 대입해 (2x)2 =4x2 이 되겠지요.
결국 x2 이 4x2 이 되었으니 실행시간은 4배가 됩니다.
그러나 질문의 문장에 오해의 소지가 충분히 있어 보입니다. 질문이 변화추세를 물은 것이라면 '실행시간의 변화추세'가 빅오니깐 빅오에는 변화가 없으니 변함없음이 맞을 것 같고요, 질문이 단지 '실행시간' 자체의 증가량을 물은 것이라면 4배가 맞을 거 같습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력