八大排序之冒泡排序

1、基本思想html

 冒泡排序是一種基於數值交換的排序,從第一個元素開始,與後面緊接着的一個元素比較,若是當前這個數更大,則交換二者的數值,那麼值更大的元素就像泡泡同樣日後走。第n趟排序便可使第n大元素從前日後走。進行n-1次這樣的"冒泡操做"後,整個序列就有序了。算法

2、實現代碼數組

   測試工具類 點擊這裏dom

public class BubbleSort implements ISort{
    
    public void sort(int[] a) {
        for(int i = 0; i <= a.length - 3; i++) {
            boolean isInOrder = true;
            for(int j = 0; j <= a.length-2-i; j++) {
                if(a[j] > a[j+1]) {                             //比較大的數日後面走
                    int t = a[j];
                    a[j] = a[j+1];
                    a[j+1] = t;
                    isInOrder = false;
                }
            }
            if(isInOrder) {                                     //若是某一次循環冒泡沒有發生交換,則代表數組已經有序了
                break;
            }
        }
    }
    
    public static void main(String[] args) {
        int[] array = RandomArrayGenerator.getRandomArray(100 , 30);
        SortTestHelper.test(new BubbleSort() , array);
    }

 

3、測試結果工具

 

 

4、總結分析測試

 時間複雜度:O(n2)spa

 空間複雜度:O(1)code

 穩定性:穩定htm

 冒泡排序實現簡單,直觀易懂,且是穩定的排序算法,但時間複雜度不夠理想。blog

相關文章
相關標籤/搜索