• 북마크
타입문넷

질문게시판

[컴퓨터_인터넷] C언어 시간복잡도(big-O) 좀 알려주세요.

본문


어째 네이버에다 내공 100 올려논지가 몇주가 되도록 답변 달릴 생각을 않하는군요;;;

 

당장 시험이 얼마 않남았는데, 어째 과에 풀줄 아는 사람이 없어요. [머엉]

 

 

int Maxsubsum(A[], LB, RB)
{
     if (LB == RB) {
          if(A[LB] > 0) return A[LB];
          else return 0;
     }
     Center = (LB + RB) / 2;
     Max1 = Maxsubsum(A, LB, Center);
     Max2 = Maxsubsum(A, Center+1, RB);
     for(i = Center ; i >= LB ; i--)
           Max31 += A[i];
     for(i = Center+1 ; i <= RB ; i++)
           Max32 += A[i];
     return Max_3(Max1, Max2,(Max31+Max32));
}

(단, MAX_3()은 3개의 값 중에서 가장 큰 값을 구하는 O(1)인 함수임)

 

 

이 함수의 시간복잡도 big-O 갖다가 풀라는건데요.

애초에 이게 뭘 구하는 함순지도 정확히 모르지라. [야임마!]

알려주시면 정말 감사하겠습니다. [굽신굽신]

 

  • 1.27Kbytes
0
로그인 후 추천 또는 비추천하실 수 있습니다.
profile_image
포인트 100
경험치 56
[레벨 1] - 진행률 57%
가입일 :
2008-10-17 20:39:57 (5914일째)
미입력

최신글이 없습니다.

최신글이 없습니다.

댓글목록 3

Estas님의 댓글

profile_image
자기 자신을 계속 호출해 가면서 무언가 한 값으로 계속 수렴해 가는 것 같은데..



저게 뭐하는 물건인지는 대충 순서도 그려가며 해 보면 될 듯 하지만... 시간 복잡도가 뭔지 몰라서 패스 -_-;

까만도마뱀님의 댓글

profile_image
흠 문제는 배열내부에 특정 범위의 합이 가장 큰 범위의 계산 합을 구하는 함수인듯 합니다. ( 뭔말이지 -_- )

간단하게 이야기해서 -1,3,4,2,-6,6 요런배열이 들어왔을때, 3,4,2의 합인 9를 구하는 함수입니다.

근데 알고리즘 자체가 에러가 있는듯합니다.. 무조건 반씩 짜르면 특정짓는 범위가 1/2,1/4,1/8등등으로 제한됩니다..

bigO를 구하는건 좀 어렵긴한데 결론만 이야기해드리면 O(NlogN) 의 시간복잡도를 가지는 함수입니다.

전체 데이터를 logN의 횟수만큼 읽게 됩니다. quick sort랑 비슷한 알고리즘으로 동작을 하는군요.

페일미스트님의 댓글

profile_image
설명을 드릴려고 보다가 리플을 보니......어랏?

Big-O는 worst-case아니었나요?

저는 O(n^2)라고 생각했는데 말이지요;;
전체 12 건 - 1 페이지
제목
카나드 2,233 0 2011.06.25
카나드 3,764 0 2011.02.09
카나드 3,834 0 2010.09.28
카나드 3,688 0 2010.04.01
카나드 5,327 0 2009.12.13
카나드 3,439 0 2009.12.11
카나드 3,009 0 2009.11.08
카나드 4,434 0 2009.10.26
카나드 3,307 0 2009.09.26
카나드 3,623 0 2009.09.17
카나드 3,919 0 2009.07.21
카나드 2,719 0 2009.06.04