// 冒泡排序的原理是 把第一个和第二个进行比较 如果第一个数比第二数大那么第一个数就和第二个数进行位置交换
// 比较的轮数 是数组的长度-1 而比较的次数会随着轮数的增加 次数会减少 因为每一轮都会把一个最大的数放在后面
public class Bubbling {
// 判断arr数组的长度 是否为空 或者长度少于2 如果为空或者少于2 那么就没有排序的意义
public static void bubbling(int[]arr){
if (arr == null || arr.length < 2){
return;
}
// 第一层for循环确定好比较的轮数 冒泡排序的轮数是长度-1 打个比方就是 3个数只要比较两次
for (int i = 1; i < arr.length - 1;i++){
// 第二层for循环 确定好比较的次数 因为每一轮的比较都会找到一个最大值并把它放在数组的最后面
// 所以每一轮都会减少一次比较的次数 arr.length-i 每一轮i都会加1 所以比较的次数会随着i的增加 而减少
for (int j = 0;j < arr.length-i;j++){
// 判断j 是否大于 j 后面一个数 如果大于后面一个数 那么就把j和j后面一个数进行位置互换
if (arr[j] > arr[j+1]){
int mep = arr[j];
arr[j] = arr[j+1];
arr[j+1] = mep;
}
}
}
}
public static void print(int[]arr){
for (int i = 0; i < arr.length;i++){
System.out.print(arr[i]);
System.out.print(" ");
}
}
public static void main(String[] args) {
int[]arr = {1,3,2,4,5};
bubbling(arr);
print(arr);
}
}