歸併和氣泡排序
阿新 • • 發佈:2018-11-14
歸併和氣泡排序
歸併排序:歸併排序是建立在歸併操作上的一種有效的排序演算法,該演算法是採用分治法的一個非常典型的應用。將已有序的子序列合併,得到完全有序的序列;即先使每個子序列有序,再使子序列段間有序。若將兩個有序表合併成一個有序表,稱為二路歸併。
時間複雜度:平均情況O(nlogn) 最好情況O(nlogn) 最壞情況O(nlogn)
空間複雜度:O(n)
穩定
程式碼:
它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
這個演算法的名字由來是因為越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“氣泡排序”也叫“沉石排序”。
時間複雜度:平均情況O(n^2) 最好情況O(n) 最壞情況O(n^2)
空間複雜度:O(1)
穩定
程式碼: