O (log n) 는 어떤 짓궂군요 정확히요?

점근 표기법 학습에 대한 실로나는 상각 호스팅하면서 배, 배. 선형 시간 O (n) 의 개념이 이해가 되는데요, 즉 성장에 영향을 미치는 프로포르티오날리그랜드 알고리즘입니다 입력입니다 크기는 마찬가지다, 예를 들어, 이차 시간 O (n&lt sup&gt /sup&gt 2<;;;) 로 교환 등 레c번 알고리즘, 발전기, O (n!), 배 성장할 수 있는 계승.

예를 들어, 다음과 같은 기능을 사용할 수 있기 때문에 이 알고리즘은 O (n) n 따라 비례하여 입력:

f(int n) {
  int i;
  for (i = 0; i < n; ++i)
    printf("%d", i);
}

마찬가지로, 만약 독극물이 nested loop, 시간 약간만이라도 O (n&lt sup&gt /sup&gt 2<;;;).

하지만 정확히 어떻게 O (log n) 는 ? 예를 들어, 어떻다는 있다고 높이 O (log n) 완전한 이진 진단트리는?

내가 아는 어떤 대수 (아니더라도 많은 상세함을) 가 있다는 점에서: log&lt sub&gt 10&lt /sub>;;; 하지만 난 식별할 수 있는 기능이 어떻게 이해할 수 없는 대수 100 = 2 시간.

질문에 대한 의견 (17)
해결책

&gt. 내가 어떻게 이해할 수 없는 식별할 수 있는 함수를 로그 하게하면서요.

가장 일반적인 특성을 시간을 실행 함수은 다음과 같은 사람이 있다.

  • 다음 요소 중 하나를 선택할 수 있는 여러 가지 가능성을 높이고, 일부 작업을 수행할 수 있다.
  • 하나만 선택해야 합니다.

또는

  • 요소가 있는 작업은 수행됨 때는 숫자 n

이 때문에, 예를 들어, O (log n) 에서 전화번호부 찾는 사람들이 있다. # 39 don& every 확인할 필요가 있습니다, t 전화 번호부의 오른쪽으로 한 사람을 찾습니다. 대신 그들의 위치를 기준으로 이름님은 문자순으로 보았으매 의해 분할 정복 됩니다 됩니다, 그리고 모든 부분을 찾기 전에 각 섹션의 서브세트 살펴보았으므로 결국 someone& # 39 의 전화 번호.

물론 더 큰 전화 번호부 계속 시행하십시오 won& # 39 더 긴 시간이 빨리 성장할 수 있지만, t 정도 추가 상승을 크기.

&lt hr/>;

전화 번호부 예제에서와 확장하십시오 비교할 수 있고 다른 종류의 운영 및 their 실행 시간. 대화할거에요 solaris. lionbridge 전화 번호부 businesses 있다 (이 Pages&quot 노란색이면 ";) 갖고 있는 고유한 이름과 people (이 &quot, 흰색 Pages") 않을 수 있는 고유한 이름을 가지고 있습니다. 전화 번호를 할당되었는지 많아야 한 사람 또는 경영학이라 또한 특정 호출이네요 전환할 수 있는 시간이 걸리는 상수입니다 solaris.

다음은 일부 작업을 수행할 수 있는 책, 전화를 통해 실행 시간을 우리가 가장 최악의:

      • 페이지 (best case) 등을 감안할 때 O (1) 의 이름을 찾을 수 있는 # 39 business& 켜있을 및 비즈니스 이름, 전화번호.
      • 페이지 등을 감안할 때 O (1) (평균 케이스) 의 이름을 찾을 수 있는 # 39 person& 켜있을 및 그 이름, 전화번호.
      • O (log n) 의 이름을 찾을 때 person& # 39 점, 전화 번호를 무작위 선택하여 그 부분에 대한 압수수색을 중간에 너회가 haven& 아직 확인 후, t # 39 라고 이름이 person& 나열할지 지켜보리니 # 39, 그 시점에서. 이 과정에서 그 중간에 있는 부분에 대한 책을 person& # 39 의 이름이 없다. (이) 는 이진 검색, person& # 39 의 이름으로.)
      • 모든 사람들이 그 전화 번호 찾기 O (n) 에 자리 &quot 5";).
      • O (n) 에게 전화 번호, 찾을 수 있는 사람 또는 비즈니스.
      • O (n log n), s office There was a # 39 에서 섞다 printer& 전화 번호부, 우리의 모든 해당 페이지를 삽입됨 주문하십시오 인도하심이라만일 본격화됐다. # 39 의 수정하십시오 it& 오더할 해결할 수 있도록 각 페이지에 퍼팅 후 해당 페이지를 보면 이름) 의 해당 별색 새 빈 전화 번호부.

아래의 예는 we& # 39, re 지금 현장에 대한 printer& # 39 의 사무실. 전화 기다리고 있어 각 묶음은 갑옷을 입은 there& 레지던트랑 또는 비즈니스, 스티커 부착, s # 39 을 발송할 수 있는 각 전화 번호부 식별하면 합니다. 모든 사람 또는 비즈니스의 전화 한 책이다.

      • O (n log n), re going 개별화하기 싶다 전화 번호부 도왔으매 we& # 39 의 이름을 찾을 수 있는 각 사람 또는 business& # 39 이 책에서 자신의 이름에 동그라미 지정된 복제본에 관심용 및 쓰기 위해 그들의 파선-짧은 감사합니다 참고) 까지 이어졌다.
      • (I/o sup&gt 2&lt /sup&gt n<;;;), 그리고 각 사무실에서 수행됨 실수가 모든 항목에서 전화인가 책, 추가 &quot 0&quot 있다. 전화 번호를 말. 일부 화이트 아웃 및 각 제거하시겠습니까 시행하십시오 제로.
    • O (n &amp 미도트;; n!) # 39, re 준비됐어들 읽어들입니다 We& 전화 번호부 드래그합니다 선적용 도킹. 이 책은 돼 있던 죄송합니다. 로봇이잖아 로드하기에 헤이와이어 들어갔습니다. # 39 의 it& 드래그합니다 트럭 본격화됐다 있다 책 주문! 이 모든 성 드래그합니다 트럭 로드되는지 해도 그 후, 올바른 순서로 they& 하고 있는지, 만약 그렇지 않을 경우 # 39 그들을 통해 언로드합니다 시작한다. (이것은 띄게 보고 메터 정렬함으로써 *.)
      • (I/o sup&gt n&lt /sup&gt n<;;;) 이 로봇은 도왔으매 it& # 39 의 셨으며 로드중 제대로 해결할 수 있습니다. 다음 날, 동료 중 하나에 대한 자동화된 로봇을 인쇄면이 로드 독) 는 장난으로 너회들의 와이어 시스템. 기존 프린터 할 때마다 로봇이잖아 댁이라면 로드하기에 책 출하시의 복제본임을 모든 전화 번호부 실행하십시오! 다행히 robot& # 39, s, t 정도로 정교한 버그 감지 시템의 로봇이잖아 doesn& # 39 더 복제본에 인쇄면이 시도하시겠습니까 발생할 경우 복제본임을 있지만 아직 모든 책을 로드중 로드하기에 that& 성서이거늘 # 39 의 원본 및 복제본임을 컨텍스트로 인쇄되었습니다.

자세한 수학적 설명 할 수 있습니다 'n' 목마르겠구나 로깅합니다 어떻게 체크아웃합니다 도착 시간 복잡도 https://hackernoon.com/what-does-the-time-complexity-o-log-n-actually-mean-45f94bb5bfbf

해설 (39)

이 질문에 답을 이미 많은 优秀 게시하기를 있지만, 우리는 정말 중요한 한 - 즉, 더 일러스트레이티드 오토메이티드 실종됐다고 생각합니다.

&gt. 무슨 뜻이야 완료하십시오 O (log n) 이진 진단트리는 높이를 말하는?

이진 트리 다음 그리던건데 보여주고 있습니다. 각 레벨은 어떻게 디이브이 수를 두 배로 노드입니다 map_layer 비해 수준 높은 (업그레이드됨 이진 ):

! [이진 트리] [1]

복잡한 O (log n) '와' 이진 탐색 대표적이다. # 39 의 하위 수준의 나무를요 let& 있다고 노드입니다 그림 1 의 seabreeze 항목에서와 일부 정렬할지 뜻한다. 이진 탐색 () 는 분할 정복 알고리즘 및 드로잉에서는 fs@snapa 어떻게 할 것입니다 (최대) 4 비교 항목 검색 기록을 찾기 위해 우리는 이 16 데이터세트를.

대신 solaris. 하나님이 함께 한 데이터세트를 32tb 요소. 계속하시겠습니까 그들위에 드로잉에서는 찾을 수 있음을 알게 하는 등 5 가지가 이제 우리가 찾고자 한 단계 성장한 때 우리는 더욱 더 많은 양의 데이터를 여러배의 나무를요 사용할 수 있습니다. 그 결과, 복잡한 알고리즘입니다 로그 오더할 설명할 수 있다.

로그 (n) '를 일반 종이에 쓴 거 플로팅에', 'n' 로 감속 그래프란다 여기서 업그레이드하면 상승 곡선을 캐시-코어:

! [O (log n)] [2]

해설 (6)

'O (log N)' 는 기본적으로 시간이 지남에 따라 기하급수적으로 동안 'n' 까지 올라간다. 만일 두 번째 요소 '1', '10' 계산하는 데 걸리는 시간이 걸리기 때문에 '2' 초 '100', '1000년' 초 '3' 요소를 계산하기 위한 계산하기 위한 요소, 드릴링됩니다.

이 때 O (log n) '는' 우리가 분할 정복 알고리즘 입력하십시ᄃ오 에드그 이진 탐색. 다른 예로, 우리는 두 부분으로 나눌 수 있는 빠른 정렬하려면 때마다 매번 어레이입니다 걸리는 시간 O (N) '및' com/go/downloads_kr 집어넣을 요소. 따라서 이는 'N O (log N)'

해설 (9)
    • 를 사용할 경우 밸런싱됩니다 이진 트리 아래 설명을 완전히 이해하는 데 도움이 되는 사람이 어떻게 우리 시간 복잡도.

이진 트리 경우는 문제가 크기 n 크기의 서브노드 문제 도달할 때까지 우리는 n/2 분할됩니다 문제가 크기 1:

! [높이는 이진 트리] [1]

39 의 O (log n) 와 that& 어떻게 얻을 수 있는 양의 작업을 수행할 수 있도록 하는 위의 진단트리는 합의에 도달할 수 있는 솔루션이다.

O (log n) 는 이진 검색 알고리즘 함께 일반적인 시간 복잡도 (n/2) + O (1) 즉 T 는 재귀 관계식을 그 이후의 수준의 나무를요 수명주기의 모든 문제를 여러 반단면 및 추가 작업 양을 못하며창조된 상수입니다 나눌 수 있습니다.

해설 (2)
    • 개요

다른 좋은 베푼 구성도를 참조용이므로 나무를요 같은 말한다. I did 표시되지 않는 간단한 코드 예제. 그래서 내 외에도 일부 알고리즘을 설명하기 위해 간단한 설명, ll, I& # 39 는 서로 다른 알고리즘입니다 제표를 인쇄하십시오 복잡성입니다 범주입니다.

첫째, you& # 39, ll 사용하고자 하는 일반적인 개념은 대수 (https://en.wikipedia.org/wiki/Logarithm), 얻을 수 있다. 자연 과학 'e' 를 사용하여 자연 로그. 컴퓨터 과학자들은 log_2 log_10 (로그에서는 기본 10 명) 와 그의 제자들이 기술팀에서 사용할 사용할 수 있기 때문에 컴퓨터는 이진 (log 기본 2) 많이유 합니다. 때로는 약어를 자연 로그 log () ',' ll see you& # 39 로 두고, 엔지니어 보통 줄여서 '는 로그 ()' 와 '_10 끄기나 됩니다 log_2 lg ()'. 모든 유형의 대수 유사한 방식으로, 그래서 그들은 같은 범주에 따라 공유하지는 '로그 (n)'.

아래 코드 예제를 보면, 내가 볼 때 O (n), 그 후 추천합니까 O (1) O (n ^ 2). 그 후, 다른 좋아 살펴볼 수 있습니다. # 39, ve i& 포함되어 있을 뿐만 아니라 미묘한 변화가 발생할 수 있는 다양한 방법을 제시하십시오 참조용이므로 청소하십시오 여전히 같은 분류.

O (1), O (n), 생각할 수 있습니다 (i/o 로근) 등 클래스 또는 범주입니다 증가세를 보였다. 일부 범주입니다 시간이 더 소요될 것이라고 할 수 있는 다른 디바이스보다. 이러한 범주는 도움말에서는 저희에게 길을 지시한 알고리즘입니다 성능. 일부 커짐에 따라 ᄂ씨 입력입니다 빠르게 증가하고 있습니다. 다음 표는 숫자순 성장을 보여준다 "고 말했다. 아래 표에서 생각하노라 log (n) 를 상한선을 log_2.

[! [입력하십시오. 이미지 여기에 설명을] [1]] [1]

  • 다양한 대량량 O Categories:* 간단한 코드 예제

  • Examples:* 상수 시간 O (1) -

    • 알고리즘입니다 1:*

39, t, n 이 1 번만 누구없어요 인쇄 알고리즘입니다 doesn& 의존하고 있기 때문에 '에서 실행할 수 있도록 항상 일정한 시간 O (1)'.

print "hello";
    • 알고리즘입니다 2:*

다만 입력 크기가 3 배) 가 2 알고리즘입니다 누구없어요 의존하지 않는다. 이 알고리즘은 n 늘어남에 따라 때에도 항상 국한됨 인쇄하십시오 누구없어요 3 회. 있다는 것 때문에 이 알고리즘은 O (1) 도 3, 항상 ''.

print "hello";
print "hello";
print "hello";
  • 대수 Examples:* O (log (n)) -
  • 3 - 이 같은 행위를 &quot log_2&quot, , 알고리즘입니다
  1. 에서는 log_2 알고리즘입니다 알고리즘입니다 보여준다 (n). 현재 운영 중인 여러 값을 디이브이 post for 루프 2 로, 그래서 내가 '나' 4 대 1 에서 2 로 댁이라면 8 개에서 16 개의 ~ 32tb.

for(int i = 1; i 
해설 (8)

했을 경우, 함수 넘겨받은:

1 millisecond to complete if you have 2 elements.
2 milliseconds to complete if you have 4 elements.
3 milliseconds to complete if you have 8 elements.
4 milliseconds to complete if you have 16 elements.
...
n milliseconds to complete if you have 2**n elements.

그 후, 2&lt /sub&gt sub&gt log<;; (n) 시간이 걸린다. 이 [점근 표기법] (http://en.wikipedia.org/wiki/Big_O_notation), 즉, 말하기, 느슨하게 elationship 있어야 진정한 대규모 n, 그리고 그 상수입니다 제거율과 작은 약관보다 무시할 수 있습니다.

해설 (4)

대수 실행 시간 ('O (log n)') 를 차지하는 비중은 대수 본질적으로 길이 있다는 실행 시간 입력 크기 - 예를 들어, 10 개 정도가 걸리는 시간이 어느 정도 많아야 2 개, 말, '는' x ', 그리고 100 개의 항목이' 는 '다음', 그리고 10,000 많아야 4 개 항목을 it& O (log n) ',' s # 39 보았으매 등과 같은 시간 복잡도.

해설 (10)
    • 만듭니다

39 의 무엇인지 정확하게 이해하고 시도하시겠습니까 양호임 let& 실제로 유지된다.

우리는 하나님이 내려 묶임 redhat. 상상할 것. 밧줄, 필요할 경우 직접 말을 제약됨 강제 말을 가져오기할 빼냅니다 (말하도다 from a man) 은 직접 1.

이제 한 것은 상상할 밧줄 기둥이네 라운드하지 루프 이제 말을 여러 번 가져오기할 투 겟 어웨이 힘들어진다. 양 손에 들고 배 크기에 따라 달라질 수 있지만, 그리고 황삭을 let& # 39, s 의 강도 one& 곱합니다 solaris. 것 # 39 에서 10 (밧줄 완료하십시오 할 때 선반가공).

이제 한 번 10 배 더 열심히 말을 할 경우, 밧줄 루프 당기십시오 있다. 인간의 경우 결정할 수 있도록 한 곳, 그는 정말 힘든 말을 다시 루프 밧줄, s # 39 라운드 it& 추가하여 강도를 높이는 10 배. 세 번째 루프는 증가되지는 의해 다시 힘을 더 10 배.

! [입력하십시오. 이미지 여기에 설명을] [1]

우리는 각 루프 값은 무려 10 캐시-코어 것을 알 수 있다. 회전 수를 데 필요한 모든 숫자가 3 국 (즉, 우리가 할 수 있는 호출됨 대수를 통해 여러 번, 6 국 증가시키십시오 의해 힘을 너회의 강도를 1000년 1,000,000.

3 은 1,000,000 (기본 10) 는 대수 및 6 천 유지된다.

  • 왜 O (log n) 는 실제로 짓궂군요 가능*

39, & # 39 위의 예에서는 lionbridge rate& 성장. o (log n) 는 . 우리의 모든 추가 루프 (task force) 은 10 배 이상 밧줄 처리할 수 있습니다.

Turns | Max Force
  0   |   1
  1   |   10
  2   |   100
  3   |   1000
  4   |   10000
  n   |   10^n

위의 예는 있지만, 이제 한 사람도 없는 경로재설정 밑수가 10 바닥에 로그는 대해 이야기할 때 점근 표기법.

39 의 상상도 하기 위해 노력하고 있습니다 이제 let& 사이의 숫자를 1-100.

Your Friend: Guess my number between 1-100! 
Your Guess: 50
Your Friend: Lower!
Your Guess: 25
Your Friend: Lower!
Your Guess: 13
Your Friend: Higher!
Your Guess: 19
Your Friend: Higher!
Your Friend: 22
Your Guess: Lower!
Your Guess: 20
Your Friend: Higher!
Your Guess: 21
Your Friend: YOU GOT IT!  

이제 7 짐작은 afaq afnor 그러겄지 너회가 걸렸다 하지만 어떤 관계가 여기서요? 각 지역에서 가장 많은 양의 지정하십시오. 항목과의 짐작할 수 있는 추가 생각?

Guesses | Items
  1     |   2
  2     |   4
  3     |   8
  4     |   16
  5     |   32
  6     |   64
  7     |   128
  10    |   1024

만약 우리가 사용하는 그래프화합니다 사용하여, we can see it 가 앨리어스보다 미국 최대 1-100 사이의 수를 가늠하기는 이진 탐색 7 시도. 만일 하나님이 128 숫자임 수도 있었을 것입니다 하지만 많아야 좋은 결과를 짐작할 수) 7 시도한다 129 는 미국 8 시도 (관계식에는 대한 대수, 필요할 경우 7 짐작은 여기서 128 짐작은 값 범위, 10 의 1024년 값 범위. 그는 7 은 로그 128, 10 은 로그 (1024년 기준 2).

39, & # 39, at most& 굵게 나는 것을 알 수 있습니다. 점근 표기법) 은 항상 최악의. # 39, re 행운의 숫자는 you& 경우, 당신은 한 시도 등 최고의 비유하사 짐작할 수 있다, 그러나 that& # 39 의 O (1) 다른 이야기입니다.

&gt. 아마 우리는 우리의 모든 데이터 집합이 있다는 것을 알 수 있다. 가장 중요한 규칙은 경우 알고리즘입니다 로가리스마티스 시간은 식별할 수 있다. &gt. 주눅들지 여부를 확인하기 위해 특정 데이터 세트 주문 후 각 이터레이션에

  • O (n log n) 가능* 어떨까요?

결국 됩니다 시간 O (n log (n) 알고리즘입니다. 라인라이스미스 통해 따라오렴 이 규칙에 따르면, 이번에는 로그 함수에 위에 다시 qic (예를 들어 n 번 , n 번 실행할 수 있는 알고리즘을 크기를 줄이는 바뀌엇어요 메그레소르 발생하는 것 같다.

만약 n log n time 은 쉽게 확인할 수 있습니다. (Look for 루프 반복하여 있는 외부 알고리즘 목록 (O (n)). To see if there is an 내부 루프지 보세요 는 데이터 세트의 경우 가공 / 줄일 수 있는 내부 루프 (loop) 는 각 이터레이션인지 (O (log n), 그래서 알고리즘은 O (n log n) = 전반적인 .

  • 부인문을: 이 당시 가장 훌륭한 밧줄 대수 예제에서와 (네덜란드) 에서 [mathematician& # 39, s delight 책이다 w 소여] [2] 제공합니다.*

[2]: https://www.amazon.co.uk/mathematicians-delight-dover-books-mathematics/dp/ 0486462404

해설 (2)

O (log N) 직관적으로 생각할 수 있는 시간이 말해 비례한다 자릿수를 N.

작업의 경우 각 자리에 입력, 운영 전반에 대한 연구를 수행하는 상수입니다 시간 또는 다소 시간이 걸릴 것이라고 비례하는 수의 자리 또는 비트 입력 강도입니다 아닌 입력. 따라서 O (log N) 보다는 O (N).

일련의 일정 시간 决策 만드는 작업의 경우 각 재배케하여 절반 (낮춰줍니다 분의 3, 4, 5.) 전체 크기는 입력입니다 비례하는 시간이 걸릴 것으로 간주되려면 로깅하도록 베이스 (base 3, 베이스, 베이스 5. 4) 2 입력 크기 N, O (N) 되지 않고.

및 드릴링됩니다.

해설 (3)

39, ve I& 가장 좋은 방법은 항상 O (log n) 는 알고리즘입니다 정신적으로 시각화합니다 했다) 에서는 다음과 같습니다.

곱셈적 의해 문제 크기 늘리면 양 (즉, 크기도 곱합니다 무려 10) 에 의해 포지셔닝하여 추가 작업이 양 증가에 그쳤다.

그래서 당신은 이 질문에 적용 데이터베이스에구성원을 이진 트리 좋은 프로그램: 수를 두 배로 늘릴 경우 이진 트리에 노드입니다 눈치보기식 높이가 1 씩 경우 (부가 금액). 이 경우, 여전히 1 두 번 다시 증가하는 데 그쳤다. (물론, 계속 밸런싱됩니다 I& # 39 m 경우 등). 대신 업무를 이쪽요 두 문제가 발생할 때, 조금 더 많은 일을 하고, # 39 만 you& 여러배의 크기는 매우 좋았다. # 39 의 알고리즘은 O (log n) 왜 that& 멋집니다.

해설 (0)

우선 내가 추천합니까 다음과 같은 책을 읽을 수 있습니다.

[알고리즘 (제 4 판은)] [1]

다음은 일부 기능과 그들의 극복할 수 있을 것으로 보인다. 번호는 기술서임을 엑서큐션 주파수를 손실됨을 .

! [슬라이드에서는 일부 기능과 복잡한 그들의 걱정했던것] [2]

마지막으로 아주 단순해졌습니다 쇼케이스 fs@snapa 계산됩니까 방식에 있다.

그의 발언은 분석 프로그램 실행 속도.

실행 시간 분석 프로그램 (예).

! [분석 프로그램 실행 시간] [5]

[1]: ie? 키드 = 1499027825, sr = = = sr_1_1 https://www.amazon.com/algorithms-4th-robert-sedgewick/dp/032157351x/ref utf8&amp &amp 여러_키워드 = algorithms% 204th% 20edition 8-1&;

해설 (6)

39 의 log&lt >;;; (n), /sub&gt What& sub&gt b&lt?

이는 여러 번 반복해서 b 에 도달하기 전에 동일한 부분을 잘라냅니다 로그에서는 길이가 n 수 있는 부분을 크기 1.

해설 (1)

분할 정복 알고리즘 대개 'a' 를 로근 컴포넌트인지 하게하면서요. 이 같은 입력 절반으로 비롯됩니다.

이진 탐색 너회가 버릴 경우, 모든 이터레이션에 절반을 입력입니다. 그런 점에서 큰 오 기록하십시오 로깅합니다 표기법 () 는 기본 2 점에 유의해야 합니다.

편집: 앞에서 언급한 바와 같이 로그, t matter, 하지만 이 때 기본 doesn& # 39 의 성능을 기반으로 한 것으로 인해 큰 오 로그 팩터에서의 온, 즉, 내가 왜 기본 2 절반으로 생각하면 됩니다.

해설 (5)

&gt. 그러나 정확하게 O (log n)? 예를 들어, 어떻다는 있다고 &gt 완료하십시오 O (log n), 높이는 이진 진단트리는?

이것을 & # 39, 두께 꼭 이래야겠어요 말할께 완전한 이진 로그 n& 진단트리는 # 39;. O (log n), 높이는 것이 완전한 이진 탐색 트리 약간만이라도 조교하실 경우 다운되어도 단계별.

&gt. 내가 어떻게 이해할 수 없는 식별할 수 있는 함수를 로그 &gt. 하게하면서요.

본질적으로 거듭제곱 대한 유지된다. # 39, & # 39, 따라서 각 step& 기능을 사용할 수 없으므로 a 는 원래 요소, 즉 시간 알고리즘이 로그 항목을 팩터에서의 설정되었습니다.

예를 들어, 일정 수준의 노드입니다 나무를요 대해 쉽게 알 수 있습니다 스테핑이란 아래로 아래로 이동할 때 폭발적인 잘라냅니다 여러 요소를 계속하시겠습니까. 가장 인기 있는 예를 통해 이동할 수 있는 전화 번호부 본질적으로 이름 정렬할지 avamer 내려 이진 탐색 트리 (가운데 페이지는 루트 요소는 추론할 수 있으며, 각 단계에서 검색하기를 분할할지를 왼쪽 또는 오른쪽).

해설 (1)

경우 O (log n) 이 2 시간 정도 걸립니다.

case 1: f(int n) {
      int i;
      for (i = 1; i < n; i=i*2)
        printf("%d", i);
    }

 case 2  : f(int n) {
      int i;
      for (i = n; i>=1 ; i=i/2)
        printf("%d", i);
    }
해설 (3)

O (log n) 는 좀 더 정확히 말하면, 잘못된 it& # 39 의 O (log&lt sub&gt 2&lt /sub>;;; n), 즉 (대수 및 기본 모델 2).

이진 진단트리는 높이를 밸런싱됩니다 (i/o log&lt sub&gt 2&lt /sub>;;; n), 이후 모든 노드에 2 개 (기록하십시오 two&quot "; 같이 sub&gt 2&lt /sub&gt log<;;; 자식 노드 n). 그래서 이 트리는 n 노드입니다 높이 log&lt sub&gt 2&lt /sub>;;; n.

다른 예로, 이진 탐색 갖고 있는 실행 시간 O (,, /sub&gt log&lt sub&gt 2&lt. 모든 단계에서 너회가 나누기 때문에 n), 검색 공간에서 2 로.

해설 (3)

'O (log n)' 는 함수 (또는 알고리즘입니다 또는 단계입니다 알고리즘입니다) 에서 일하는 시간에 비례하는 로그 (일반적으로 베이스 2 대부분의 경우, 없는 것은 아니지만, 어느 의해 항상 이번 대회는 큰 오 표기법 *) 크기의 입력입니다.

이 기능은 보색으로 지수 함수 대수. 바꾸어 말하자면, 입력입니다 경우 기하급수적으로 증가 (아닌, 평상시와 같이 선형으로 간주할) 을 통해 기능 확장 때 쓰인다.

'O (log n)' 에서 실행 시간은 매우 일반적인 애플리케이션, 왜냐하면 당신은 어떤 종류의 분할 정복 (가장) 가공 작업하십시오 반단면 항상. 각 사업부의 경우, 또는 정복하십시오 단계를 상수입니다 시간 작업 하고 있습니다 (또는 작업 없는 일정 시간 O (log n) '보다' 천천히 갖추고 있지만, 시간이 갈수록), O (log n) '는' 그런후에도 너회의 전해석 함수. # 39 의 it& 하는 대신, 각 단계는 선형 시간 꽤 흔한 입력에서 알 수 있다. 이 금액은 총 시간 O (n log n) '복잡한'.

실행 시간 복잡도가 O (log n) 이진 탐색 예는 ''. 당신은 항상 여러분의 의견을 무시하고 있는 이진 탐색, 이는 나중에 절반은 각 단계 한 단계 반단면 서로 나누는 방식으로 어레이입니다 반단면 유일한 주력하고 있다. 각 단계는 이진 검색, 일정 시간 때문에 고객의 주요 요소는 됩니다 비교하십시오 위해 얼마나 올랐는지 다澜에 해야 할 일 선명하게 촬상 언제든지 큰 어레이입니다 고려하고 있다. 할 수 있도록 약 log (n) / log (2) 단계.

실행 시간 복잡도가 O (n log n) '' 정렬하려면 병합해야 예입니다. 이 때문에 틀렸다니까 나누어 각 단계에 있는 어레이입니다 반단면, 그 결과 총 대략 log (n) / log (2) 단계. 그러나 각 단계의 작업을 수행하는 데 필요한 모든 요소에 대한 병합해야 (표시할지를 it& # 39 의 한 결합 연산을 두 개의 하위 목록 중 n/2 요소, 또는 두 개의 병합해야 운영체 있는 4 개의 하위 목록 중 n/4 요소, 관련이 없습니다 자도으로 n 개의 요소를 갖추고 있기 때문에 이를 위해 각 단계의). 이에 따라 O (n log n) '는' 총 복잡성을.

해설 (1)

즉 단순히 이 작업에 필요한 시간을 함께 성장하는 로그 (n) (예: 2s (n = 10, 4s (n = 100mb/s.). 위키백과의 문서를 읽고 있는 이진 검색 알고리즘점근 표기법 보다 정밀도.

해설 (0)

결론: 각 단계에서 해당 알고리즘입니다 잘라냅니다 반단면 작업하십시오 수 있습니다. (3, 4 위, 점근 avamer.)

해설 (1)

로그 함수를 그래픽 계산기에는 플롯할 경우, 또는 비슷한 것이 정말 더 이상 상승하는 등 천천히 천천히 you& # 39, ll see - 선형 함수를.

이 때문에 알고리즘이 로그 시간 복잡도 후 함께 탄력을 받을 가능성이 높다. 정말 크고 대해서도 n (n = 10 ^ 8, 예를 들어, s # 39 라고 let&) 이상의 수행할 때 수용가능하게.

해설 (0)