Build-Max-Heap: Why Start i at floor(A.length/2) rather than A.length?
It isn't, neither from a complexity nor from a correctness point of view, however, by starting the counter at $n$ you are doing useless work. 

Heapify is a procedure that, if invoked on a node $v$ such that the trees rooted in its children are binary heaps, turns the tree rooted in $v$ into a binary heap. Trees that contain only one node are trivially binary heaps, therefore, you may just start running the algorithm from the first non-leaf node: invoking heapify on the leaves wouldn't have done anything, anyway.