JAVA冒泡排序代码

冒泡算法学习使用代码如下

import untils.AlgorithmUtils;

import java.util.Arrays;

/**
 * 冒泡排序:最基础(简单)的排序
 * 比较两个相邻的元素,将较大值的元素交换至(左)右端
 * 

* 第一次比较n-1次 * 第二次比较n-2次 * 。。。。 *

* 平均时间复杂度 最好情况 最坏情况 空间复杂度 * O(n²) O(n) O(n²) O(1) */ public class Bubble { public static int[] studyBubbleSort(int[] arr) { int len = arr.length; System.out.println("传入的原数组长度为: " + len); System.out.println("传入的原数组为: " + Arrays.toString(arr)); //外层循环控制比较的次数 for (int i = 0; i < len - 1; i++) { System.out.println("----第 " + (i + 1) + " 轮排序开始----"); //内层循环控制到达位置 for (int j = 0; j < len - i - 1; j++) { if (arr[j] > arr[j + 1]) { AlgorithmUtils.swap(arr, j, j + 1); System.out.println(" 数组的第 " + j + " 位置与第 " + (j + 1) + "进行交换,交换后结果为: "); System.out.println(" " + Arrays.toString(arr)); } } System.out.println("----第 " + (i + 1) + " 轮排序完毕----"); } return arr; } }

package untils;

public class AlgorithmUtils {
     

    public static void swap(int[] arr, int a, int b) {
     

        int temp = arr[a];
        arr[a] = arr[b];
        arr[b] = temp;

        /* 不常用

        arr[a] = arr[a] + arr[b];
        arr[b] = arr[a] - arr[b];
        arr[a] = arr[a] - arr[b];
        */

    }

}

冒泡算法作为工具类使用代码如下

public class Bubble {
     

    /**
     * 
     * @param arr 传入数组
     * @return 排序后的数组
     */
    public static int[] bubbleSort(int[] arr) {
     
        int len = arr.length;
        for (int i = 0; i < len - 1; i++) {
     
            for (int j = 0; j < len - i - 1; j++) {
     
                if (arr[j] > arr[j + 1]) {
     
                    AlgorithmUtils.swap(arr, j, j + 1);
                }
            }
        }
        return arr;
    }
}

你可能感兴趣的:(算法,算法,数据结构,排序算法,java)