1. Hi everyone!

We have learnt the following algorithms:
SelectionSort
BubbleSort
InsertionSort
QuickSort
MergeSort
HeapSort

These are my questions:
1) I know quicksort has in the avarage case a time complexity of nlog(n), mergesort always has nlog(n) and heapsort also always have nlog(n)
But for sorting big data, which of these algorithms is the fastest? Because their time complexity is the same..?

2) For sorting an array which elements are already sorted for a big part, what is the fastest algoritm? I was thinking about insertion sort, but i'm not quite sure..

3) For an array which is sorted from high to low, what is the fastest algorithm to sort it from low to high?

Thank you,
John

2.

3. For 3) Start from the top and swap with bottom and move in (top and bottom) one step at a time, repeat till you reach the middle.

4. Sort speeds can be affected by many things, including the coding language it is written in and the data types you are sorting.
The best way to find out which is the fastest algorithm is to create some test data and try each sorting method in turn.