public class Selection { public static void sort(int[] args) { int n = args.length; for (int i = 0;i < n;i++){ int min = i; for (int j = i+1;j < n;j++) { if (args[j] < args[min]) { min = j; } } exch(args, i, min); } } private static void exch(int[] a, int i, int j) { int t = a[i]; a[i] = a[j]; a[j] = t; } }
min=j;导致自己和自己交换,没有任何作用;
你定义这个 min变量多此一举,把 min的定义去掉,数组中用到min的地方 用 i 代替即可,min =j 这样每次都是自己和自己交换,或者 你把min=j的定义放在数组值交换之后。