选择排序
public class SelectionSort {
/**
* 选择排序:找到最小的值的位置,然后交换位置
* 时间复杂度:O(N^2)
* @param arr
*/
public static void selectionSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int i = 0; i < arr.length; i++) {
// 假设最小的值在i位置
int minIndex = i;
for (int j = i + 1; j < arr.length; j++) {
// 比较i和i+1位置上的值 确定最小值的位置
minIndex = arr[j] < arr[minIndex] ? j : minIndex;
}
// 交换位置
swap(arr, i, minIndex);
}
}
private static void swap(int[] arr, int i, int j) {
int t = arr[i];
arr[i] = arr[j];
arr[j] = t;
}
}