1. 程式人生 > >排序演算法之氣泡排序的思想以及Java實現

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

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),它是一種穩定的排序演算法。