2014-02-18 4 views
2

이 문장에 대한 좋은 증거를 찾는 데 문제가 있습니다. 바이너리 트리의 수를 결정하는 방법은 n의 이진 표현을 사용하여 결정됩니다. 예를 들어, 13 개의 요소는 이진수가 1101이고 2^{3} + 2^{2} + 2^{0}이므로 이항 나무가 필요하며 ln (13) +1 = 3.56> 3n 요소가있는 이항 힙의 이항 트리 수를 증명하십시오. O (log n)

나는 log (n)에 의해 그 경계를 증명하는 방법을 모른다. 일반적으로 log (n)과 관련된 알고리즘에 대한 많은 개념을 고수하고 있습니다.

누군가이 진술을 깨끗하고 간결하게 증명할 수 있습니까?

+1

이 질문은 컴퓨터 프로그래밍 문제가 아니며 http://cs.stackexchange.com/에 속해 있기 때문에 주제가 아닌 것 같습니다. –

+0

힙 높이를 의미합니까? –

+0

@anon 아니요, n 요소를 포함하는 이항 힙을 구성하기 위해 선행 이항 트리의 가장 왼쪽 자식으로 함께 결합해야하는 이항 트리의 수를 의미합니다. –

답변

1

필요한 이항 트리의 수를 n의 이진 표현에서 1의 수로 나타내면 1의 수는 최대 (lg n) + 1 인 2 진수 수로 제한됩니다 여기서 lg n은 밑이 2 인 대수, 즉 lg n = ln (n)/ln (2))입니다. 그러면 O (log n)의 big-O 경계가 생깁니다.

+0

왜 이진수의 수는 최대로 (lg n) + 1? –

관련 문제