In my opinion, it is the sorting efficiency.
But why does the sorting efficiency matter?
No matter what sorting algorithm we choose, an expected result will be generated as long as we choose a correct one. However, a more efficient algorithm will save a lot of running time and it is important for optimizing the use of other algorithms (such as search and merge algorithms) which require input data to be in sorted lists.
For example, we've learned Bubble sort and selection sort in csc108. Suppose we are asked to sort [5 6 8 2 14 24 16 1] using these two methods.
Selection Sort:
[{5} 6 8 2 14 24 16 (1)] unsorted array. Find the smallest element () in array and swap with first element {} of unsorted array [].
1 [{6} 8 (2) 14 24 16 5]. Do the same process again.
1 2 [{8} 6 14 24 16 (5)].
1 2 5 [{(6)} 14 24 16 8].
1 2 5 6 [{14} 24 16 (8)].
1 2 5 6 8 [{24} 16 (14)].
1 2 5 6 8 14 [{(16)} 24].
1 2 5 6 8 14 16 [{(24)}].
1 2 5 6 8 14 16 24. Finaly got the Sorted array
Bubble Sort:
In bubble sort elements are compared with just next element if the first {} is greater than second [] then swap.
{5} [6] 8 2 14 24 16 18 [no swapping move forward]
5 {6} [8] 2 14 24 16 18 [no swapping move forward]
5 6 {8} [2] 14 24 16 18 [swapping move forward]
5 6 2 {8} [14] 24 16 18 [no swapping move forward]
5 6 2 8 {14} [24] 16 18 [no swapping move forward]
5 6 2 8 14 {24} [16] 18 [swapping move forward]
5 6 2 8 14 16 {24} [18] [swapping move forward]
5 6 2 8 14 16 18 24 [swapping move forward first phase over again starts with first index]
{5} [6] 2 8 14 16 18 24 [no swapping move forward]
5 {6} [2] 8 14 16 18 24 [swapping move forward]
5 2 {6} [8] 14 16 18 24 [no swapping move forward]
5 2 6 {8} [14] 16 18 24 [no swapping move forward, there is no further swaping in the phase start next phase]
{5} [2] 6 8 14 16 18 24 [swapping move forward]
2 5 6 8 14 16 18 24 Finaly array is arranged in ascending order.
Obviously, selection sort is more efficient. And here, the input size n is small. If we're asked to sort an array of larger size, then the difference will be huge as well.
Talking about sorting a sample of large size, we need to know the big O notation. The first time I learn big O notation was in my CSC240 class, which is a course about computation complexity. "In computer science, big O notation is used to classify algorithms by how they respond (e.g., in their processing time or working space requirements) to changes in the input size."(Wikipedia)
But essentially, it's a math topic, and it describes the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions. Here, the argument of the function is the input size and the function describes the corresponding running time.
When input size n is small, though the efficiency matters, it is not very important. However, when n is large it matters a lot. Most real worlds problems we are facing have a very large input size, and that's why we need efficient algorithm.