选择排序的主要思路是将每一轮循环的最小的值放到未排序的数组的最前面。第一轮是将第一个值默认为最小值,并保存他的下标为最小值下标,然后将后面未排序的值与其做比较,未排序的数组中比默认最小值小的,则将当前下标替换为最小下标,在用新的最小值依次向后比较,直到遍历完数组,将最小的值放到数组的最前面。后面几轮以此类推,知道完成排序。
/** * @Author: LiuHao * @Date: 2021/10/21 9:31 * 选择排序 */ public class SelectionSort { public static void main(String[] args) { int[] numbers = {7,6,5,4,3,2,1}; System.out.println("排序前的结果为:" + Arrays.toString(numbers)); for (int i = 0; i < numbers.length - 1; i++) { //控制循环轮数 int min = i; //将第一个的索引视为最小值的索引 for (int j = i + 1; j < numbers.length; j++) { //控制每轮循环次数 //如果房钱的值小于最小值,则记录当前值的索引 if (numbers[j] < numbers[min]) { min = j; } //如果默认的第一个值不是最小的,则将序列中的最小值放到前面 if (min != i) { int temp = numbers[min]; numbers[min] = numbers[i]; numbers[i] = temp; } } System.out.println("第" + (i + 1) + "轮的排序结果为:" + Arrays.toString(numbers)); } System.out.println("排序后的结果为:" + Arrays.toString(numbers)); } }