which is faster/better- heapsort or quicksort or merge sort { example :to order a million random numbers}
For randomly ordered data, quicksort is the fastest. Quicksort's achilles heel is nearly sorted data, it becomes slow. Merge sort is slower than quicksort on random data, but doesn't deteriorate on nearly sorted data. Check out wikipedia, they have some great info on sorting.
but how abt heapsort?
It's all about the Shell Sort baby!
As others have noted, worst case of Quicksort is O(n^2), while mergesort and heapsort stay at O(nlogn). On the average case, however, all three are O(nlogn); so they're for the vast majority of cases comparable. What makes Quicksort better on average is that the inner loop implies comparing several values with a single one, while on the other two both terms are different for each comparison. In other words, Quicksort does half as many reads as the other two algorithms. On modern CPUs performance is heavily dominated by access times, so in the end Quicksort ends up being a great first choice.
Join our real-time social learning platform and learn together with your friends!