Sorting is well researched area in the history of computer science and mathematics, so there are a lot of algorithms for sorting. When comparing sort algorithms, I suggest categorizing them from the following view points.
- time complexity As already discussed in the other answers, the three algorithms are in average case while quick sort worst case is .
- space complexity, especially if it's in-place sort Heap sort and quick sort can be done in-place. So they can directly work on the pre-allocated space where initial unsorted data is stored. While heap sort removes recursive calls by tail optimization and its space requirement is , quick sort requires variables put on the stacks at each recursive step, so it requires in total space. Merge sort is not in-place and requires additional space.
- external sort or not This means whether the algorithm works efficiently with external memory (e.g. HDD/SSD) which is slower than the main memory. Merge sort and quick sort are typical external sort since they can divide target data set and work on the small pieces loaded on memory, but heap sort is difficult to do that.
- stable or unstable As Karan Suraj mentioned Merge sort is only the stable sorting among the three.
- comparison based or not Some algorithms such as Radix sort don't depend on comparison of two elements, though the three in questions are all comparison based.
There are more properties for sort such as online and recursion, but these five are often discussed when we see multiple sort algorithms
ref:https://cs.stackexchange.com/questions/113070/difference-between-quick-sort-merge-sort-and-heap-sort
https://www.geeksforgeeks.org/time-complexities-of-all-sorting-algorithms/ (*************)
https://www.cs.auckland.ac.nz/software/AlgAnim/qsort3.html (****************)