选择排序
预先选择一个位置,假设该位置是最值(最大或最小),把后面所有的待比较的数和当前位置的数字比较,符合规则使用第三变量index记录合规数值的数字下标,等到这一轮比较完毕后,再进行交换,一轮比较只发生一次交换(效率比冒泡高)
代码实现:
//创建一个数组
int[] array2 = {...........};
//选择排序
for(int i = 0; i < array2.length - 1; i ++){
int index = i;
int min = array2[i];
for(int j = i + 1; j < array2.length; j ++){
if(array2[index] > array2[j]){
index = j;
}
}
if(index != i){
array2[i] = array2[index];
array2[index] = min;
}
}
//forEach遍历数组
for(int show: array1){
System.out.print(show+" ");
}
针对选择排序,每一次比较的时候改变的是元素的下标,等一轮排序完成后,再根据下标交换值(交换下标值的条件是判断index和i是否还相等,当在每一轮比较中,如果有比第一个数还要小的数,那么就会发生下标的交换)