Consider the following statements about heap sort algorithm:
A. The MAX-HEAPIFY procedure which runs in O lg (n) time, is the key to maintaining the max heap property
B. The BUILD-MAX-HEAP procedure, which runs in O lg (n) time, produces max-heap from an unordered input array
C. The MAX-HEAP-INSERT, which runs in O (lg n) time, implements the insertion operation
D. The HEAP-INCREASE-KEY procedure runs in O (n lg n) time, to set the key of new node of its correct value
Choose the correct answer from the options given below: