原始的冒泡排序是单向的,它始终是从第一个或者最后一个元素开始扫描。
浩辰对冒泡排序进行了改进,从两端进行扫描,
首先从数组的左端到右端进行扫描,把最大的数往后交换(以升序为例),
再从右端到左端进行扫描,把最小的数往前交换,
多次扫描后,最终得到一个有序的数组。
于是,定义了left和right两个变量,变量left表示左边指针,变量right 表示右边指针,
每一遍排序,左边指针向右边移动一位,右边指针向左边移动一位
一趟排序,把最大值下沉到最后一个,最小值上浮到最前一个,最终让数组有序。
比如排序前的数组为
63 26 93 49 31 14 56 25 24 40
一趟排序后,数组变为:
14 26 63 49 31 24 56 25 40 93