从待排序的数据中,选出最小值,和待排序的数据中的最左边的数据对调
1轮过后,最小的在最左边
时间复杂度 n2
附上JAVA代码
public void select(Integer[] a){
System.out.println(“开始前,a:” + Arrays.toString(a));
for (int i = 0; i < a.length; i++) {
int value = a[i];//要比较的数
int k = i;//最小值位置
for (int j = i+1; j < a.length ; j++) {
if(a[j] < value){//如果a[j] 小于 要比较的数
value = a[j];//将值赋值给比较值
k = j;//将新位置赋值给最小值位置
}
}
if(k != i){//如果最小值不是第一个,第一个数和最小值互换
int temp = a[i];
a[i] = a[k];
a[k] = temp;
}
//System.out.println(“执行” + String.valueOf(i+1) + “次,a:” + Arrays.toString(a));
}
System.out.println(“开始后,a:” + Arrays.toString(a));
}
