算法与数据结构2-排序算法

选择排序

public static void selectionSort(int[] arr) {
 if (arr == null || arr.length < 2) {
 return;
 }
 // 0 ~ N-1
 // 1~n-1 // 2 for (int i = 0; i < arr.length - 1; i++) { // i ~ N-1
 // 最小值在哪个位置上 i~n-1
 int minIndex = i;
 for (int j = i + 1; j < arr.length; j++) { // i ~ N-1 上找最小值的下标 
minIndex = arr[j] < arr[minIndex] ? j : minIndex;
 }
 swap(arr, i, minIndex);
 }
}
public static void swap(int[] arr, int i, int j) {
 int tmp = arr[i];
 arr[i] = arr[j];
 arr[j] = tmp;
}

你可能感兴趣的:(算法-数据结构,排序)