一、思路

图片说明

  1. 数组中有n个元素,共进行了n次排序
  2. 假定拿到的第一个数就是最小数,和后面的数进行比较,若发现有比当前数跟小的数,那么我们就重新确定最小值,并记录最小值的下标。
  3. 最后叫当前下标对应的值和前面的arrayn进行交换

二、代码

public class SelectSort {
    public static void main(String[] args) {
        int[] array = new int[]{3, 9, -1, 10, 20, 5};
        int[] sore = sore(array);
        System.out.println(Arrays.toString(sore));
    }

    public static int[] sore(int[] array) {
        for (int i = 0; i < array.length; i++) {
            int num = array[i];
            int index = 0; // 用于记录数据下标,方便最后进行交换
            int flag = 0; // 拿一个数与后面的数比较,发现这个数没有发生改变,后面就不用进行交换了
            for (int j = i + 1; j < array.length; j++) {
                if (num > array[j]){
                    num = array[j];
                    index = j;
                    flag++;
                }
            }
            if (flag != 0){
                int temp = 0;
                temp = array[i];
                array[i] = array[index];
                array[index] = temp;
            }
        }
        return array;
    }
}