选择排序的思想:
给定数组a[5] = {2,1,3,5,4}
每一趟循环,都会把最小值的下标,用临时变量保存起来
然后依此把最小值和第一个数,第二个数交换位置......即可实现从小到大排序
1,2,3,5,4
1,2,3,5,4
1,2,3,5,4
1,2,3,4,5
代码:
for(int i =0;i<5-1;i++){ //完成4趟排序后,前面4个位置的值均是从小到大,无需排第五个数
min = a[i];//第一趟排序完成后,第一个数会是最小值;
//又会从新的起点第2个数到最后一个数找最小值
ind = i;//这是最小值的下标; 注意:要让min的下标和ind保持一致
for(int j = i+1;j<5;j++){
if(min > a[j]){
min = a[j];//最小值保存下来,是为了找到更小的值,最后遍历结束才是真的最小值
ind = j;//将最小值的下标保存下来
}
//第一遍循环结束后,交换第一个数和最小数
a[ind] = a[i];
a[i] = min;
}
}