冒泡排序
从小到大排序。
原理:
相邻的两个单位,比较存储的数据。
如果第一个大,将两个单位交换存储数据。
过程:
从起始单位开始比较,第一次循环选出一个最大值,放在数组最后。
之后,每次循环比较出本次循环的最大值,放在参与比较的最后。
之前选出的最大值不参与下一次比较。
代码
优化:
1.外层优化:
如果有N个单元参加,只循环N-1次,因为最后一此循环会将两个数的大小确定, 当前循环的最后一位,只需要通过倒数第二位,参与比较。不循环。
2.内层循环1.
如果有n个单元参加排序,只需要循环排序n-1次 , 最后一次循环排序,会将最后两个数值的大小排序确定,剩下最后一个单元,没有循环排序,但是大小已经确定,不需要再次循环排序。
3.内层循环2.
上一次参与循环,已经决定出来的最大数值,不用参与下一次循环
第一次排序,少0个单元参与
第二次排序,少1个单元参与
第三次排序,少2个单元参与
…
通过外层循环变量,定义是从 0 开始的循环数值
每次内层循环,次数,再减去 外层循环变量 的数值