冒泡排序
package com.sort;
import java.util.Arrays;
/**
* @Author Handsome
* @Date 2022/8/12 11:39
* @Version 1.0
*/
public class 冒泡排序 {
public static void main(String[] args) {
bubbleSort(new int[]{3, 9, -1, 10, -2});
// 输出
// 第1趟排序后的数组
// [3, -1, 9, -2, 10]
// 第2趟排序后的数组
// [-1, 3, -2, 9, 10]
// 第3趟排序后的数组
// [-1, -2, 3, 9, 10]
// 第4趟排序后的数组
// [-2, -1, 3, 9, 10]
}
public static void bubbleSort(int[] arr) {
// 冒泡排序优化
boolean flag = false; // 表示变量,表示是否进行交换
// 冒泡排序的时间复杂度 O(n^2)
int temp = 0; // 临时变量
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j + 1]) {
flag = true;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.println("第" + (i + 1) + "趟排序后的数组");
System.out.println(Arrays.toString(arr));
if (!flag) { // 在一趟排序中,一次交换都没有发生过
break;
} else {
flag = false; // 重置flag,进行下次判断
}
}
}
}
我的学习论坛
HandsomeForum:用Java编写的学习论坛,打造我们自己的圈子!(http://huangjunjie.vip:66)