选择排序:外循环循环一轮,就是拿这个固定位置的数与后面比较,确保当前这个位置的数是这个位置之后的所有数据的最小值.不明白意思的话看代码:(注释掉的代码)
package com.qf.demo4;
public class Test2 {
public static void main(String[] args) {
int[] a = {5,18,9,2,6,3};
// for (int i = 0; i < a.length-1; i++) {
// for (int j = i+1; j <= a.length-1; j++) {
// if(a[i]>a[j]){
// int temp = a[i];
// a[i] = a[j];
// a[j] = temp;
// }
// }
// }
// 选择排序的优化: 提高效率
// 6个数 至多 交换5次
for (int i = 0; i < a.length-1; i++) {
int min = i;
for (int j = i+1; j <= a.length-1; j++) {
if(a[min]>a[j]){
min = j;// 把 最小的数据的下标给 min
// min 一直是最小的数据的下标
}
}
//如果当前最小值不是a[i] , 即下标不同时 ,交换
if(i!=min){
int temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
for (int i : a) {
System.out.println(i);
}
}
}
网友评论