자료구조 시간복잡도 질문드립니다

조회수 1101회

O(n2)의 시간복잡도를 가지는 알고리즘에서 입력의 개수가 2배로 되었다면 실행시간은 어떤 추세로 증가하는가?

  1. 변함없음
  2. 2배
  3. 4배
  4. 8배

에서 이걸

(2n)2 = 4n2

이렇게 해서 4배가 답인가요?

변함없음 이랑 4배랑 자꾸 헷갈리네요..

빅오 표기법 만들 때 최고차항의 계수도 버리는 부분이랑 헷갈려서 여쭙습니다ㅠㅠ

1 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    O(n2 )에서 n2 은 최악의 상황에서의 T(n)의 최고차항의 차수를 나타낸 것인데요. 여기서 n이 데이터 수입니다.

    질문에서 입력의 개수라는 것이 데이터 수 n을 말하는 것 같은데 맞지요?

    빅오로부터 알 수 있는 대략적인 계산량이 n2 인데, 원래 데이터 수가 x였다고 한다면 계산량은n에 x를 대입해 x2 일텐데, 데이터의 수가 2배인 2x가 되었다면 계산량은 n에 2x를 대입해 (2x)2 =4x2 이 되겠지요.

    결국 x2 이 4x2 이 되었으니 실행시간은 4배가 됩니다.

    그러나 질문의 문장에 오해의 소지가 충분히 있어 보입니다. 질문이 변화추세를 물은 것이라면 '실행시간의 변화추세'가 빅오니깐 빅오에는 변화가 없으니 변함없음이 맞을 것 같고요, 질문이 단지 '실행시간' 자체의 증가량을 물은 것이라면 4배가 맞을 거 같습니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자
    • 감사합니다 ㅠㅠ 딱 그 부분이 궁금했어요 anderson 2020.10.7 14:28

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)