4

私はCLRSを読んでいますが、ヒープソートは

HEAPSORT(A):
BUILD-MAX-HEAP(A);
for (i = A.length; i >= 1; i++)
{
    exchange A[1] with A[i];
    A.heap-size = A.heap-size - 1; 
    MAX-HEAPIFY(A,1);
}

MAX_HAPIFY はO(lg n). この本には、MAX-HAPIFYn回実行すると書かれているので、O(n lg n)時間です。

しかし、ヒープのサイズが反復ごとに 1 ずつ縮小している場合、そうではありませんO(lg n!)か?

ですlg 1 + lg 2 ... + lg(n-1) + lg (n) = lg(n!)よね?

4

1 に答える 1