一、思路
- 数组中有n个元素,共进行了n次排序
- 假定拿到的第一个数就是最小数,和后面的数进行比较,若发现有比当前数跟小的数,那么我们就重新确定最小值,并记录最小值的下标。
- 最后叫当前下标对应的值和前面的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; } }