冒泡排序的原理很简单:对于一个无序的数组,依次比较相邻下标的两位的数值,然后进行排序,,每一躺确定一个最大的数,将其放在数组最后。
例如对于一个数组
4,8,9,2,5`
第一趟冒泡排序如下
,矩形框内的数字代表已排序完成,完成后,再对第一趟排序的结果再次排序,得到第二趟排序的结果
同理得出第三趟和第四趟
到这里,一次完整的冒泡排序算是完成了,我们可以发现:
对于一个有n个元素的一维数组,需要进行n-1趟排序,每趟排序的次数也会减少。
for (int j = 0; j < arr.length-1; j++) {//控制趟数
for (int i = 0; i < arr.length - j-1; i++) {//控制每趟次数
if (arr[i] >= arr[i + 1]) {
int tmp = arr[i];
arr[i] = arr[i + 1];