0、交換排序
基本思想 : 兩兩比較元素,發現倒序即交換
兩種基本的實現演算法:
1、氣泡排序
基本思想 :從表的某一端開始,逐個比較相鄰的兩個元素,發現倒序即交換。
[標註] 這裡的敘述都是從後往前逐個比較,相鄰兩個倒序就交換形如」冒泡泡」,故稱為氣泡排序。
語言很蒼白,用圖例來解決
對序列 arr =進行氣泡排序演示
上面圖例,兩兩之間比較需要交換的我畫出來了,沒交換的省略。
[注]上面的序列是無序的,進行了多次兩兩之間的交換,那麼如果序列本身就是有序的,那麼按照上面的從後往前做了無效的兩兩比較,效率較低,如何解決?
solution : 設定乙個」標記」就ok了
**:
冒泡演算法分析:(有標記位改進的冒泡)
1 . 時間複雜度: 受序列表初始狀態影響
2 . 穩定性 : 穩定排序
3 . 空間效能 : 1個輔助空間
最後的大白話:
排序演算法 交換排序之冒泡
一 主要思想 顧名思義,交換排序的主要操作是交換,其主要思想是在待排序列中選兩個記錄,將它們的關鍵碼相比較,如果反序 即排列順序與排序後的次序正好相反 則交換它們的儲存位置。二 需要解決的關鍵問題 1 在一趟起泡排序中,若有多個紀錄位於最終位,應如何記載 解決方法 設定變數 exchange 記載記...
交換排序之氣泡排序
大學學的演算法已經基本遺忘了,最近又重新撿起來好好鑽研一下,那麼就先從排序開始。先說交換排序中的氣泡排序,這個是比較基礎的乙個排序演算法。1 基本思想 在要排序的一組數中,對當前還未排好序的範圍內的全部數,自上而下對相鄰兩個數依次進行比較和調整,讓較大的數往下沉,較小的往上冒。即 每當兩相鄰的數比較...
交換排序之氣泡排序
氣泡排序演算法的基本思想是 假設待排序表長為n,從前往後 或從後往前 兩兩比較相鄰元素的值,若為逆序 即a i 1 a i 則交換它們,直到序列比較完。我們成它為一趟冒泡,結果將最大 最小 的元素交換到待排序列的最後乙個位置。下一趟冒泡時,前一趟確定的最大元素不再參與比較,待排序列減少乙個元素,每趟...