3 Java 冒泡排序法

冒泡排序( Bubble Sort)是一种简单的排序算法。它重复访问要数列, 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 重复地进行直到没有再需要交换的数据,也就是说该列已经排序完成。这个算 重复地进行直到没有再需要交换的数据,也就是说该列已经排序完成。这个算 重复地进行直到没有再需要交换的数据,也就是说该列已经排序完成。这个算 法的名字由来是因为越小元素会经交换慢 “浮”到数列的 顶端,像水中到数列的 顶端,像水中气泡从水底浮到面。

 

复制代码
public class BubbleSort {

    public static void main(String[] args) {
        int[] array = new int[]{10, 1, 9, 2, 8, 3, 7, 4, 6, 5};
        bubbleSort(array);
        display(array);
    }

    /**
     * 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是一次比较两个元素,如果他们的顺序错误就把交换过来。
     * 访问数列工作是 一次比较两个元素,如果他们的顺序错误就把交换过来。访问数列工作是 重复地进行直到没有再需要交换的数据,
     * 也就是说该列已经排序完成。这个算 重复地进行直到没有再需要交换的数据,也就是说该列已经排序完成。这个算 重复地进行直
     * 到没有再需要交换的数据,也就是说该列已经排序完成。这个算 法的名字由来是因为越小元素会经交换慢 “浮”到数列的 顶端,
     * 像水中到数列的 顶端,像水中气泡从水底浮到面。
     * @param array
     */
    public static void bubbleSort(int[] array) {
        int length = array.length;
        for (int i=0; i<length - 1; i++) {
            for (int j=0; j<length-1-i; j++) {
                if(array[j] > array[j+1]) {
                    swap(array, j, j+1);
                }
            }
            display(array);
            System.out.println();
        }
    }

    /**
     * 打印
     */
    public static void display(int[] array) {
        int len = array.length;
        StringBuilder str = new StringBuilder("");
        for (int i=0; i<len; i++) {
            str.append(array[i] + ", ");
        }
        System.out.println(str.substring(0, str.length()-2));
    }

    /**
     * 交换数组中两个元素的位置
     * @param array
     * @param a
     * @param b
     */
    private static void swap(int[] array, int a, int b) {
        array[a] = array[a] + array[b];
        array[b] = array[a] - array[b];
        array[a] = array[a] - array[b];
    }
}
View Code
复制代码
posted @   Latiny  阅读(253)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示