diff --git a/codes/mimisn/9969120.java b/codes/mimisn/9969120.java new file mode 100644 index 0000000000000000000000000000000000000000..a1a5da88d076028e8c030e4eb93fa8e4cab32ffd --- /dev/null +++ b/codes/mimisn/9969120.java @@ -0,0 +1,54 @@ +public class Sort { + public static void bubbleSort(int[] arr) { + // 空数组 或 只有一个元素的数组,则什么都不做。 + if (arr == null || arr.length == 1) return; + + // 外层循环表示趟数。 + for (int i = 0; i < arr.length - 1; i++) { + + // 默认有序,如果发生交换说明无序。 + boolean isSorted = true; + + // j 表示 要比较元素对的第一个。 + for (int j = 0; j < arr.length - 1 - i; j++) { + // 不能写 >= ,否则不稳定。 + if (arr[j] > arr[j + 1]) { + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; + // 发生交换了,说明无序。 + isSorted = false; + } + } + + // 如果没有发生交换,则数组已经有序,结束冒泡。 + if (isSorted) return; + + // 把每一趟排序的结果也输出一下。 + System.out.print("第 "+ (i+1) + " 趟: "); + print(arr); + } + } + + public static void main(String[] args) { + int[] arr = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; + + System.out.print("排序前: "); + print(arr); + + bubbleSort(arr); + + System.out.print("排序后: "); + print(arr); + } + + // 打印数组 + public static void print(int[] arr) { + if (arr == null) return; + + for(int i : arr) { + System.out.print(i + " "); + } + System.out.println(); + } +} diff --git a/codes/mimisn/Sort.class b/codes/mimisn/Sort.class new file mode 100644 index 0000000000000000000000000000000000000000..34b123a659ae8ac7e5b9ef5726c7490090115408 Binary files /dev/null and b/codes/mimisn/Sort.class differ diff --git a/codes/mimisn/Sort.java b/codes/mimisn/Sort.java new file mode 100644 index 0000000000000000000000000000000000000000..6c9b8da25b0f8abb6e0d3d42d10b4b5a6d54ee24 --- /dev/null +++ b/codes/mimisn/Sort.java @@ -0,0 +1,54 @@ +public class Sort { + public static void doSort(int[] arr) { + // 空数组 或 只有一个元素的数组,则什么都不做。 + if (arr == null || arr.length == 1) return; + + // 外层循环表示趟数。 + for (int i = 0; i < arr.length - 1; i++) { + + // 默认有序,如果发生交换说明无序。 + boolean isSorted = true; + + // j 表示 要比较元素对的第一个。 + for (int j = 0; j < arr.length - 1 - i; j++) { + // 不能写 >= ,否则不稳定。 + if (arr[j] > arr[j + 1]) { + int temp = arr[j]; + arr[j] = arr[j + 1]; + arr[j + 1] = temp; + // 发生交换了,说明无序。 + isSorted = false; + } + } + + // 如果没有发生交换,则数组已经有序,结束冒泡。 + if (isSorted) return; + + // 把每一趟排序的结果也输出一下。 + System.out.print("第 "+ (i+1) + " 趟: "); + print(arr); + } + } + + public static void main(String[] args) { + int[] arr = {3,44,38,5,47,15,36,26,27,2,46,4,19,50,48}; + + System.out.print("排序前: "); + print(arr); + + doSort(arr); + + System.out.print("排序后: "); + print(arr); + } + + // 打印数组 + public static void print(int[] arr) { + if (arr == null) return; + + for(int i : arr) { + System.out.print(i + " "); + } + System.out.println(); + } +}