给定一个数组,做排序,从第0的下标开始,找到0-n下标中最小的数,做交换操作;从第1的下标,找到1-n下标中最小的数,做交换操作;以此类推,直到完成整个排序。
题解:
public static void selectionSort(int[] arr) { // 边界条件判断 if (arr == null || arr.length < 2) { return; } int n = arr.length; for (int i = 0; i < n; i++) { // 中间变量记录最小值的下标 int minValueIndex = i; for (int j = i + 1; j < n; j++) { minValueIndex = arr[j] < arr[minValueIndex] ? j : minValueIndex; } swap(arr, i, minValueIndex); } } // 交换操作 public static void swap(int[] arr, int index, int minValueIndex){ int tmp = arr[index]; arr[index] = arr[minValueIndex]; arr[minValueIndex] = tmp; }
// 边界条件判断
浙公网安备 33010602011771号