选择排序
1.思路概述:
选择排序是一种很直观的排序算法,我们不妨以升序排列的要求排序,我们先要找出数组中最小的数字,就是将第一个元素假设为最小的数字开始向后遍历,如果后边的数字比第一个数字小,两者互换位置,一直到没有数字再比第一个数字要小,再将第二个数字作为最小数字,再继续寻找比第二个元素小的数字,小的互换位置,大的就不管啦,以此类推一直到数组结束,就以升序的顺序排列好啦。
是不是有点绕!来来来,画图画图!!!
就酱紫啦。。。
2.上代码上代码
public static void choiceSort(double[] array){
for(int i =0;i<array.length-1;i++){//遍历存放最小的元素
double currentMin=array[i]; //定义一个double型变量存放一个当前最小的数
int currentMinIndex=i; //定义int型变量存放一个当前最小数的角标
for(int j=1;j<array.length;j++){ //遍历数组查找比当前最小数小的数
if(array[j]<array[i]){ //如果比当前最小的数小就互换位置
currentMin=array[j];
currentMinIndex=j;
}
/*此处代码看不懂*/
}
}
}
我有看到这样一段代码,在上边代码的基础上第一个for循环中添加了一段如下代码。愣是没搞明白为什么要这样搞,有懂的小可爱能在线指导小吴同学吗?
if(currentMinIndex!=i){
array[currentMinIndex]=array[i];
array[i]=currentMin;
}
总结:脑子不好使。明天一定把吃玉米的钱攒下来买块鱼吃,补补脑。🙁
晚安!