Selection Sort

Selection Sort is a simple $$O(n^2)$$ algorithm. it works by repeatedly "selecting" the minimum element and putting it in its right position.

Selection sort is not adaptive, meaning it dosen't take less time on almost-sorted arrays than random ones. it is also unstable, meaning it does not preserve the relative order of equal elements.

=Explanation= First, the sort does a linear scan of the input to find the minimum. Then it swaps it with the beginning of the array. Now the sort does another linear scan to determine the second-smallest item, and swaps it with the second element, and so on until all elements are swapped out in order.

=Pseudocode= procedure selection_sort(array arr) do for index = 0 to length(arr)-1 do int min = index; int i = index; for j = index to length(arr)-1 do if arr[min] > arr[j] min = j            end if end for swap arr[min] and arr[i] end for end