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的定义放在数组值交换之后。