排序演算法之冒泡排序的思想以及Java實現

來源:互聯網
上載者:User

標籤:技術   sys   view   效能分析   markdown   ble   javase   java se   技術分享   

1 基本思想
設排序表長為n,從後向前或者從前向後兩兩比較相鄰元素的值,如果兩者的相對次序不對(A[i-1] > A[i]),則交換它們,其結果是將最小的元素交換到待排序序列的第一個位置,我們稱它為一趟冒泡。下一趟冒泡時,前一趟確定的最小元素不再參與比較,待排序序列減少一個元素,每趟冒泡的結果把序列中最小的元素放到了序列的”最前面”。

2,演算法的實現(Java)

package Algorithm;public class BubleSort {    /**     * @param args     */    public static void main(String[] args) {        int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};        System.out.println("排序之前:");        BubleSort.output(data);        System.out.println();        System.out.println("排序之後:");        BubleSort.buble_sort(data);        BubleSort.output(data);    }    public static void buble_sort(int[] arr){        for(int i=0;i < arr.length-1;i++){            for(int j =0; j < arr.length-i-1;j++){                if(arr[j] > arr[j+1]){                    int temp = arr[j];                    arr[j] = arr[j+1];                    arr[j+1] = temp;                }            }        }    }    //輸出列印    public static void output(int[] arr){        for(int i=0;i<arr.length;i++){                System.out.print(arr[i]+"\t");            }        }}

得到的結果為:



3,效能分析

冒泡排序的時間複雜度為O(n^2),空間複雜度為O(1),它是一種穩定的排序演算法。

排序演算法之冒泡排序的思想以及Java實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.