- import java.util.Arrays;
- public class BubbleSort {
- /**
- * 冒泡排序: 相邻元素两两比较,大的往后放,第一次比较完后,最大元素出现在最大索引处。
- */
- public static void main(String[] args) {
- // 定义要排序的数组
- int[] arr = { 12, 45, 42, 0, -15, 99 };
- /*
- * 方式一: 冒泡排序法
- */
- //输出排序前数组
- System.out.println("排序前:");
- printArray(arr);
- // 调用排序功能
- bubSort(arr);
-
- //输出排序后数组
- System.out.println("排序后:");
- printArray(arr);
- /*
- * 方式二:直接调用Arrays类的sort方法进行排序
- */
- //输出排序前数组
- System.out.println("排序前:");
- printArray(arr);
- // 调用排序算法
- Arrays.sort(arr);
- //输出排序后数组
- System.out.println("排序后:");
- printArray(arr);
- }
- // 冒泡排序代码实现
- public static void bubSort(int[] arr) {
- // 外循环变量是冒泡比较的次数
- for (int i = 0; i < arr.length - 1; i++) {
- // 其中,arr.length-1 是为了防止越界,因为后面出现了j+1
- // arr.length-1-x 是每一次比较的次数在递减
- 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;
- }
- }
- }
- }
- // 遍历数组
- public static void printArray(int[] arr) {
- //输出左括号
- System.out.print("[");
-
- //遍历输出数组
- for (int x = 0; x < arr.length; x++) {
- //如果是最后一个元素,则补上又括号
- if (x == arr.length - 1) {
- System.out.println(arr[x] + "]");
- }
- //如果不是则输出元素和“, ”
- else {
- System.out.print(arr[x] + ", ");
- }
- }
- }
- }
复制代码
原理图:
|