Heapsort

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

Quicksort

Quicksort is a sorting algorithm invented by C

Comparisons anyone circumstances

Quality | Example |
---|---|

More comparisons |
"You can indeed show that on average quicksort will do more comparisons than heapsort roughly 1.44 n log 2 n for quicksort versus n log 2 n versus heapsort" from question "Why is the constant factor of quicksort better than that of heapsort?" |

Better |
"Can anyone explain why heapsort performs better and under what circumstances quichesort would be better than both quicksort and heapsort" from question "Benefits of Quichesort" |

Better choice |
"In short - if all we care about are comparisons heapsort is a better choice than quicksort" from question "Why is the constant factor of quicksort better than that of heapsort?" |

Higher words per-comparison-overhead

Quality | Example |
---|---|

Higher |
"In other words the per-comparison-overhead of heapsort is higher than the one of quicksort" from question "Which type of sorting is used in the std::sort()?" "Heapsort has higher overhead than quicksort but its worst case is o n log n vs" from question "All purpose of binary heap" |

Faster slower practice

Sort worse insertion

Quality | Example |
---|---|

Way quicker |
"After several tests i found out that my heapsort is way quicker than quicksort i think it should be the other way around my selection sort is also faster than insertion sort" from question "Custom sorting algorithms' speed problem" |

Suddenly worse then |
"For 5 000 000 ints still stored in memory quicksort becomes suddenly worse then heapsort and mergesort" from question "Strangely slow quicksort for large tables" |

Worse |
"In theory insertion sort and quicksort are worse than heapsort" from question "Fast sort of normal distributed doubles" "In theory quicksort is worse than heapsort" from question "Which is the fastest: 3 Arraylist synchronized or a HashMap with custom structure as value" "However quicksort s worst-case performance is significantly worse than heapsort s is" from question "Quicksort superiority over Heap Sort" |

Others

Quality | Example |
---|---|

Smaller sets |
"I was just going to say radix sort however that could be a bit above what you were looking to implement introsort is generally the accepted sorting solution for data it s a variation of quicksort that switches to heapsort when it reaches smaller sets as it s faster on smaller sets than quicksort" from question "What is the fastest sort algorithm for 0-65535 integers?" |

Slower |
"The reason heapsort is slower in practice than quicksort is due to the better locality of reference in quicksort where data elements are within relatively close storage locations" from question "Quicksort vs heapsort" |

Also better |
"Quicksort also has a better cache access behavior than heapsort" from question "Heap sort is not used in C++ library" |