基本介绍
- 将最大的往数组最后面扔
- 每一轮获取一个当前数组最大的值放到后面
例如:
原始数据: {7,-3,10,5,-1} 比较方法: {-3,7,10,5,-1} {-3,7,10,5,-1} {-3,7,5,10,-1} {-3,7,5,-1,10} {-3,7,5,-1,10} {-3,5,7,-1,10} {-3,5,-1,7,10} {-3,5,-1,7,10} {-3,-1,5,7,10} {-3,-1,5,7,10}
代码实现
package com.h.排序;
//冒泡排序
public class Bubbling {
public int[] array;
Bubbling(int[] array){
this.array = array;
}
public void run(){
int temp = 0;
//循环条件是 i < array.length-1 原因: 防止比较的时候出现数组下表越界,保证 i+1 < array.length
for (int j = 0; j < array.length-1 ; j++) {
//记录当前轮次是否有进行位置交换
boolean flag = true;
for (int i = 0; i <array.length-1-j ; i++) {
if(array[i] > array[i+1] ){
temp = array[i];
array[i] = array[i+1];
array[i+1] = temp;
flag = false;
}
}
//如果当前这轮没有进行交换 , 说明已经排序好了
if(flag){
return;
}
}
}
}