package com.hithomelabs.princeton1.module5; public class Selection extends AbstractCustomSorts{ /* * * Selection sort "selects" the smallest element and swaps it with arr[0] of the array * * Then proceeds to do the same swapping arr[i] with arr[i:arr.length-1] */ public void sort(E[] arr){ if (arr == null) return; Comparable[] arr1 = (Comparable[]) arr; for(int i = 0; i < arr1.length - 1; i++){ int minIndex = i; for(int j = i+1; j < arr.length; j ++){ if (less((Comparable) arr[j], arr[minIndex])) minIndex = j; } exch(arr, i, minIndex); } } }