Heapsort is an efficient comparison-based sorting algorithm that divides an input into a sorted and an unsorted part and iteratively shrinks the unsorted part by extracting the largest element and moving that to the sorted part
Merge sort is an O(n log n) worst-case comparison-based stable sorting algorithm.
Quicksort assumption reason
"What baffles me is that my mergesort seems to be slower than heapsort in both of the languages"
from question "Mergesort implementation is slow"
"Heapsort tends to be slower than mergesort for the same reason."
from question "Most efficient way to merge sorted collections into a new sorted collection?"
"Typically mergesort is slower than heapsort and quicksort but that s usually under the assumption that comparisons are fast"
from question "What sorting techniques can I use when comparing elements is expensive?"
"Normally quicksort is faster than mergesort which is faster than heapsort"
from question "How do different languages implement sorting in their standard libraries?"