1.算法解释
选择排序就是将当前元素之后的元素中最小的那个元素找到,然后跟当前元素进行位置交换
如:int[] a = [3,5,2,1]
遍历第一次:i=0,拿到a[0]=3,然后遍历3之后的所有元素,找到最小的元素,就是1,然后将3和1交换位置,变成[1,5,2,3]
遍历第二次:i=1,拿到a[1]=5,继续找后面元素中最小的元素,并与5交换位置后,变成[1,2,5,3]
遍历第三次:i=2,拿到a[2]=5,继续找后面元素中最小的元素,并与5交换位置后,变成[1,2,3,5]
2.代码实现
private static void sort(int[] a){ for(int i=0;i<a.length;i++){ int k = a[i]; int min = i; for(int j=i;j<a.length;j++){ if(a[j] < a[min]){ min = j; } } a[i] = a[min]; a[min] = k; } }
3.运行及结果
package com.example.demo.paixusuanfa; import java.util.Arrays; public class XuanZePaiXu { public static void main(String[] args) { int[] a = new int[]{5,3,7,1,8,2}; System.out.println(Arrays.toString(a)); sort(a); System.out.println(Arrays.toString(a)); } private static void sort(int[] a){ for(int i=0;i<a.length;i++){ int k = a[i]; int min = i; for(int j=i;j<a.length;j++){ if(a[j] < a[min]){ min = j; } } a[i] = a[min]; a[min] = k; } } }