两个典型排序:①冒泡排序。②选择排序
1.冒泡排序:根据名字可知排序的底层逻辑,就像水泡一样。数据按照固定的规则进行排列。
对数组进行排序,相邻两个元素,大的往后面排,以此类推。
给定一个数组可以来进行分析int[]arr = {5,3,9,6}
分析:①每次执行的是相邻的两个元素,那么第一轮走的次数为数组的长度减一(因为一次使用的是两个元素)
②执行第一步后,就可以将数组中的最大值放到最后了,那么数组要执行第一步的次数就为,数组长度减一(因为最后一次排完后就剩下一个,就一定是最小值了,且只有一个就不用排了)
代码演示:
其中的内循环中:arr.length-1-j,这里之所以再减去就是因为每次要排序的元素越来越少。
注:不加上这个也可以,就是后面排序好的再进行判断多一次,就执行效果差些。不影响效果。
2.选择排序:
某个元素和后面的每个元素比较,小的往前放
图解:
说明:
第一轮第0个元素和后面的每个比较
第二轮第1个元素和后面的每个比较
第三轮第2个元素和后面的每个比较
代码理解:外循环跑了一次,内循环跑定义好的次数,就如上图所展示的一样一个元素跟除了自己之外的所有元素进行比较。如第一轮外循环第一个值为0时,内循环需要从1开始到数组的索引最大值结束。(若内循环从0开始就是跟自己比没意义)就实现排序。