If you want to practice data structure and algorithm programs, you can go through data structure and algorithm interview programs.

Selection sort is an in place comparison sorting algorithm. It is very simple to implement but it does not go well with large number of inputs.

When you run above program, you will get below output:

## Selection sort algorithm

- Find the minimum element in the list.
- Swap minimum element with current element.
- Repeat the whole process until array is fully sorted.

Below visualization will make it more clear

## Selection sort algorithm

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
package org.arpit.java2blog; import java.util.Arrays; public class SelectionSortMain { public static int[] selectionSort(int[] arr){ for (int i = 0; i < arr.length - 1; i++) { int index = i; for (int j = i + 1; j < arr.length; j++) if (arr[j] < arr[index]) index = j; int smallerNumber = arr[index]; arr[index] = arr[i]; arr[i] = smallerNumber; } return arr; } public static void main(String a[]){ int[] arr = {40,10,-30,45,39,32}; System.out.println("Before Sorting : "); System.out.println(Arrays.toString(arr)); arr = selectionSort(arr); System.out.println("==================="); System.out.println("After Sorting : "); System.out.println(Arrays.toString(arr)); } } |

When you run above program, you will get below output:

1 2 3 4 5 6 7 |
Before Sorting : [40, 10, -30, 45, 39, 32] =================== After Sorting : [-30, 10, 32, 39, 40, 45] |

## Time complexity

Best case :
O(N^2)

Average case :
O(N^2)

Worst case :
O(N^2)

To understand more about complexity,please go through complexity of algorithm.