选择排序
public class SelectionSort {
private SelectionSort() {
}
public static <E extends Comparable<E>> void sort(E[] arr) {
for (int i = 0; i < arr.length; i++) {
//选择arr[i...n)中最小值的索引
int minIdx = i;
for (int j = i; j < arr.length; j++) {
if (arr[j].compareTo(arr[minIdx]) < 0) {
minIdx = j;
}
}
swap(arr, i, minIdx);
}
}
private static <E> void swap(E[] arr, int i, int minIdx) {
E temp = arr[i];
arr[i] = arr[minIdx];
arr[minIdx] = temp;
}
}