diff --git a/codes/fucm_lelin/15846945.java b/codes/fucm_lelin/15846945.java new file mode 100644 index 0000000000000000000000000000000000000000..10e103d2679126ba5c42651c7f7d505a058e8f67 --- /dev/null +++ b/codes/fucm_lelin/15846945.java @@ -0,0 +1,30 @@ +/** + * 冒泡排序函数 + * 使用冒泡排序算法对数组进行升序排序 + * @param a 待排序的数组 + * @param n 待排序的数组长度 + */ +public static void bubbleSort(int[] a, int n) { + if (n <= 1) { + return; // 数组长度为0或1时,不需要排序 + } + for (int i = 0; i < n - 1; i++) { + // 表示当前这趟排序是否进行了交换,初始化为false + boolean swapped = false; + for (int j = 0; j < n - i - 1; 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; + } + } +} //end +