本文主要是介绍(兔C残篇)选择排序的代码实现与图文讲解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 1. 排序过程图解
- 2.选择排序的原理
- 3. code
- 4. 总结
1. 排序过程图解
2.选择排序的原理
从最小索引处开始,依次和后面的元素进行比较,得出的较小元素往前放置,经过排序轮次后,较小的元素在数组的前面。
规律:
元素数量 -1 = 比较的轮数
而每轮比较次数都比上一轮次的比较少一次
3. code
public class ReturnIndex{public static void main(String[] args){int arr[] ={10,55,33,44,99,22};//定义外层循环,控制排序的总轮数,减1 是针对 元素之内,和长度无关for(int i =0; i < arr.length-1; i++){//定义内层循环,控制每轮比较中的元素//j的起始值直接设置成1即可//因为剔除自己和自己比较的次数,直接比较下一个元素for(int j =1 +i; j< arr.length; j++){//j+1 +i 在加i 是针对遍历轮数的循环变化//也就是下一轮中,最小元素已经在前面了,在比较时,从后面的开始去比// 此时的长度无需进行减一,可以理解成是针对长度之内的元素,// 因为此时 j从1开始一直到长度范围内的元素,如果是<= 长度则需要减1//增加判断条件//当前比较轮数(外层循环)的 下标指向元素,//是否大于 内层循环控制的元素遍历if(arr[i] > arr[j]){int temp = arr[i];arr[i] = arr[j];arr[j] = temp;}}}System.out.println("选择排序后的数组元素顺序为:"+Arrays.toString(arr));}
}
.
4. 总结
与冒泡排序不同的是
冒泡排序是在控制轮次时,增加内层循环从而进行元素的排序和交换。
而选择排序,
是利用外层循环控制指针指向元素,在增加内层循环去遍历指向后面的元素,与自己当前指针的元素进行比较和排序。
而两者相同的规律是:
自己的元素数量 - 1 都会等于 需比较的轮数
而每轮比较比较次数,都比上一次的比较 少一次。
单独掌握冒泡排序和选择排序,感觉玩起来并不快乐,而两者同时掌握和进行比较,乐趣无穷,哈哈哈
这篇关于(兔C残篇)选择排序的代码实现与图文讲解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!