4、快速排序演算法
(1)演算法描述
從待排序序列中任意挑選乙個元素,作為基準
將所有小於基準的元素放在基準之前,大於基準的元素放在基準之後,等於基準的元素放在基準之前或之後,這個過程稱為分組
以遞迴的方式,分別對基準之前和基準之後的分組繼續進行分組,知道每個分組內的元素個數不多於 1 個為止
(2)演算法評價
平均時間複雜度:o(nlogn)
非穩定排序
若每次都能均勻分組,則排序速度最快
(3)快速排序演算法實現
(4)快速排序說明
5、歸併排序演算法
(1)演算法描述
將待排序序列從中間劃分為兩個相等的子串行
以遞迴的方式分別對兩個子串行進行排序
將兩個有序的子串行合併成完整的序列
有序合併:
分配合併序列,其大小為兩個有序序列大小之和
設定兩個指標,分別指向兩個有序序列的首元素
比較指標目標,嬌笑著進入合併序列,指標後移
重複步驟3,直到某一指標到達序列末尾
將另一串行的剩餘元素直接複製到合併序列末尾
(2)演算法評價
平均時間複雜度:o(2nlogn)
穩定排序
對資料的有序性不敏感
非就地排序,需要輔助空間,不適合處理海量資料
(3)歸併排序演算法實現
(4)歸併排序說明
程式的靈魂 演算法(二)
資料結構 演算法 程式 演算法的特性 有窮性 包含有限的操作步驟 確定性 演算法中的每乙個步驟都應當是確定的 有零個或多個輸入 輸入是指在執行演算法時需要從外界取得必要的資訊 有乙個或多個輸出 演算法的目的是為了求解,解 就是輸出 有效性 演算法中的每乙個步驟都應當能有效地執行,並得到確定的結果。良...
程式的靈魂 演算法
資料結構只是靜態的描述了資料元素之間的關係。高效的程式需要在資料結構的基礎上設計和選擇演算法。高效的程式包括恰當的資料結構與合適的演算法。演算法是特定問題求解步驟的描述,在計算機中表現為指令的有限序列,演算法是獨立存在的一種解決問題的方法和思想。對於演算法而言,語言並不重要,重要的是思想。前面這句,...
演算法 程式靈魂
乙個程式包括兩方面的資訊 1.對資料的描寫。2.對操作的描寫。演算法 資料結構 程式 演算法的特性 1.有窮性 2.確定性 3.有零個或多個輸入 4.有乙個或多個輸入 5.有效性第二章 資料型別 運算子與表示式 1 c的資料型別 c的資料型別包括 整型 字元型 實型或浮點型 單精度和雙精度 列舉型別...