Selection Sort Problems
Problem :
Why is selection sort's efficiency independent of the data being sorted?
Unlike bubble sort, selection sort has no way to short circuit its
operation if the list is in order before the algorithm has gone all
the way through it. For a list of a given length, selection sort
will perform the same number of comparisons regardless of whether the
list is in order or hopelessly out of order.
Problem :
Consider the following list: (4, 3, 8, 22, 1, 5). What will this list
look like after the first swap?
It will be: (1, 3, 8, 22, 4, 5). Notice that the smallest element has
been placed at the front of the list.
Problem :
Imagine the following implementation of selection sort: instead of
selecting the smallest element and putting it at the front, we instead
select the largest element and put it at the end of the list. Does this
change the algorithm's efficiency?
In theory, no. The number of selections and swaps are the same. In
practice it depends on the implementation, but with care it wouldn't
be hard to implement an $O(n^2)$ algorithm as described above.
Problem :
When would bubble sort be a better algorithm to use than selection sort?
Bubble sort works most efficiently when the data it is applied to are
in order or nearly in order. Selection sort has the same efficiency no
matter what the composition of the data. Thus, bubble sort is a better
algorithm to choose when the data are close to being in sorted order.