Below is a generic example of the Selection Sort algorithm in Java. See the Selection Sort page for more information and implementations.
public class SelectionSortGeneric<T extends Comparable<? super T>> { public static void main(String[] args) { // example using Strings String[] arrayOfStrings = {"Andree", "Leana", "Faviola", "Loyce", "Quincy", "Milo", "Jamila", "Toccara", "Nelda", "Blair", "Ernestine", "Chara", "Kareen", "Monty", "Rene", "Cami", "Winifred", "Tara", "Demetrice", "Azucena"}; SelectionSortGeneric<String> stringSorter = new SelectionSortGeneric<>(); stringSorter.selectionSort(arrayOfStrings); System.out.println(java.util.Arrays.toString(arrayOfStrings)); // example using Doubles Double[] arrayOfDoubles = {0.35, 0.02, 0.36, 0.82, 0.27, 0.49, 0.41, 0.17, 0.30, 0.89, 0.37, 0.66, 0.82, 0.17, 0.20, 0.96, 0.18, 0.25, 0.37, 0.52}; SelectionSortGeneric<Double> doubleSorter = new SelectionSortGeneric<>(); doubleSorter.selectionSort(arrayOfDoubles); System.out.println(java.util.Arrays.toString(arrayOfDoubles)); } void selectionSort(T[] array) { // step 1: loop from the beginning of the array to the second to last item for (int currentIndex = 0; currentIndex < array.length - 1; currentIndex++) { // step 2: save a copy of the currentIndex int minIndex = currentIndex; // step 3: loop through all indexes that proceed the currentIndex for (int i = currentIndex + 1; i < array.length; i++) { // step 4: if the value of the index of the current loop is less // than the value of the item at minIndex, update minIndex // with the new lowest value index */ if (array[i].compareTo(array[minIndex]) < 0) { // update minIndex with the new lowest value index minIndex = i; } } // step 5: if minIndex has been updated, swap the values at minIndex and currentIndex if (minIndex != currentIndex) { T temp = array[currentIndex]; array[currentIndex] = array[minIndex]; array[minIndex] = temp; } } } }