冒泡排序
原理分析:
索引0和1比;1和2比;2和3比…
- 两两比较,较大者和较小者交换位置,最后一个数不需要主动比较
- 因此第一轮后,最大数就在最大索引处
- 第二轮开始,比较次数因此减1次
- 因此,总比较轮数为数组长度减1轮
代码如下:
1 | public class BubbleSort { |
选择排序
选择排序
原理分析:
索引:0和1比,0和2比,0和3比…
- 值小的往前交换,一轮结束,最小索引处即是最小值
- 内循环的索引对应被比较的对象,内循环启始索引永远比外循环索引大1位
- 每一轮都需要比较直到最大索引处,但是启始索引每一轮都会加1位
- 外循环控制比较轮次,也是当前比较者的索引;类似于冒泡排序,轮次等于数组长度减1次
代码如下:
1 | public class SelectSort { |