diff --git a/codes/Jason_zhao/20752250.java b/codes/Jason_zhao/20752250.java new file mode 100644 index 0000000000000000000000000000000000000000..750cfaeec7a1089cbbff7db37e54d88b7b91579d --- /dev/null +++ b/codes/Jason_zhao/20752250.java @@ -0,0 +1,33 @@ +/** + * 冒泡排序函数 + * @param a 待排序的数组 + * @param n 待排序的数组长度 + */ +public static void bubbleSort(int [] a, int n) { + // 处理特殊情况 + if (a == null || n <= 1) { + return; + } + + // 外层循环控制排序的轮数,共需要 n-1 轮 + for (int i = 0; i < n - 1; i++) { + // 标记是否发生交换,用于优化算法 + boolean swapped = false; + + // 内层循环进行相邻元素的比较和交换 + for (int j = 0; j < n - 1 - i; j++) { + // 如果当前元素比下一个元素大,则交换它们 + if (a[j] > a[j + 1]) { + int temp = a[j]; + a[j] = a[j + 1]; + a[j + 1] = temp; + swapped = true; // 标记发生了交换 + } + } + + // 如果在一轮中没有发生交换,说明数组已经有序,可以提前结束排序 + if (!swapped) { + break; + } + } +}