程式的靈魂 演算法(二)

2021-08-05 22:56:13 字數 1126 閱讀 4051

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的資料型別包括 整型 字元型 實型或浮點型 單精度和雙精度 列舉型別...