다음은힙 정렬 복잡성
HEAPSORT(A)
BUILD-MAX-HEAP(A)
for i = A.length downto 2
exchange A[1] with A[i]
A.heapsize = A.heapsize - 1
MAX-HEAPIFY(A,1)
그것은 나에게 분명 그 BUILD-MAX-HEAP는 O (N)와 MAX-HEAPIFY의 복잡성을 가지고이의 복잡성을 가지고 배열에 힙 정렬의 의사 코드입니다 O (h) 여기서 h는 logn의 최대 값을 갖는 힙의 높이입니다.
내가 완전히 이해하지 못하는 이유는 HeapSort가 nlogn의 복잡성을 갖는 이유입니다. MAX-HEAPIFY 각각에 대해 n 회 반복이 있다는 것을 이해합니다. 하지만 MAX-HEAPIFY 콜은 각 반복에서 크기가 줄어드는 힙을 얻습니다. 어떻게 각 반복은 O (lgn)의 복잡성을 가질 수 있습니까? 그것은 단단히 묶여 있습니까? 내가 어디에서 같은 수학적 증거를 볼 수 있습니까?
관련 항목 : http://stackoverflow.com/questions/39691923/build-max-heap-running-time-for-array-sorted-in-decreasing-order –