一、基本思想:
①从所给数组中选择最小的值,如果该位置不是该趟遍历中的起始值,则交换位置。
②在剩下的数组中继续重复①。
二、代码实现:
package com.zjp.start.sort; import java.util.Arrays; /** * 选择排序--简单选择排序 */ public class SelectionSort { public static void main(String[] args) { int[] arr = {10, 7, 2, 4, 7, 62, 3, 4, 2, 1, 8, 9, 19}; selectionSort(arr); System.out.println(Arrays.toString(arr)); } private static void selectionSort(int[] arr) { //遍历数组 for (int i = 0; i < arr.length - 1; i++) { //定义k用来记录该趟便利中最小值所在的索引 int k = i; //寻找最小值 for (int j = k + 1; j < arr.length; j++) { if (arr[k] > arr[j]) { k = j; } } if (k != i) { //交换位置 int tmp = arr[i]; arr[i] = arr[k]; arr[k] = tmp; } } } }