update HeadSort with faster algorithm
add MergeSort