#### What is selection sort?

An in-place sorting algorithm that finds minimum element in each cycle and puts it in appropriate position in list.

#### Time and Space Complexity:

- Best Time Complexity:
*O(n^2)* - Average Time Complexity:
*O(n^2)* - Worst Time Complexity:
*O(n^2)* - Best Space Complexity:
*O(1)*

#### Steps:

- Find the minimum item in list and swap it with 1st element.
- Now find the min. item in list excluding 1st item and swap it with 2nd element.
- Likewise in each cycle exclude already swapped min. items and keep finding min. item in remaining list.
- Perform such (number of elements – 2) cycles.
- When remaining list size is 1 you get sorted list.

#### Pseudo code for selection sort:

Initialize n = Length of Array SelectionSort (Array, n) { for i = 0 to n-2 { i_min = i for j = i+1 to n-1 { if Array[j] < Array[i_min] i_min = j } Swap(Array[j], Array[i_min]) } }