java演算法之一氣泡排序(交換排序)

2021-07-05 03:03:02 字數 386 閱讀 5859

最近重新把演算法也同步整理一遍,雖然平時用的少,但至少是一種思想,對於程式設計的影響還是有的。

氣泡排序算是我大學以來唯一印象深刻且現在還記得的演算法,原因因為非常簡單卻不是經典。

乙個存放著無序數字的陣列,如何使之進行有規律的排序。於是冒泡演算法就提供了兩個for迴圈巢狀(第乙個位置和第二個位置的比較,如果大於就對換位置,否則就繼續第二個位置和第三個位置進行比較,以此類推,第一輪結束後,最大的數字就已經放置在陣列的最後乙個位置上了),從而解決了從小到大的排序問題(同理從大到下)。 **貼如下:

/* * 氣泡排序

*/ public class bubblesort }}

}這樣就實現了氣泡排序,不過這種效率不是最好的,時間複雜度是o(n²)。

改進效率請參考快速排序。

排序演算法 交換排序之冒泡

一 主要思想 顧名思義,交換排序的主要操作是交換,其主要思想是在待排序列中選兩個記錄,將它們的關鍵碼相比較,如果反序 即排列順序與排序後的次序正好相反 則交換它們的儲存位置。二 需要解決的關鍵問題 1 在一趟起泡排序中,若有多個紀錄位於最終位,應如何記載 解決方法 設定變數 exchange 記載記...

交換排序 氣泡排序

交換排序 兩兩比較待排序記錄的關鍵碼,若是逆序,則交換,直到無逆序。其中最簡單的交換排序是 氣泡排序。氣泡排序 bubble sort,也叫起泡排序 不斷地比較相鄰的記錄,若是不滿足排序要求,則交換。交換時,可從前向後,也可從後向前。看乙個從前向後的排序過程 原序列 12 3 45 33 6 下標 ...

氣泡排序 交換排序

最壞情況下,直接插入排序時間複雜度為 n 最小時間代價為 n 平均時間代價為 n 附加儲存空間 乙個儲存單位 穩定性 穩定 原址性 是 緊緻性 乙個比較,三個賦值操作 特點 對於基本有序,或偶爾有幾個在有序位置附近時,效率高,只有直接插入排序和它達到一樣的效果 整體效果不如直接插入排序,因為,直接插...