資料結構只是靜態的描述了資料元素之間的關係。
高效的程式需要在資料結構的基礎上設計和選擇演算法。高效的程式包括恰當的資料結構與合適的演算法。
演算法是特定問題求解步驟的描述,在計算機中表現為指令的有限序列,演算法是獨立存在的一種解決問題的方法和思想。對於演算法而言,語言並不重要,重要的是思想。前面這句,要一分為二的看,在演算法設計的時候,這句話成立。
演算法的特性:
輸入:演算法具有0個或多個輸入。
輸出:演算法至少有1個或多個輸出。
有窮性:演算法在有限的步驟之後會自動結束而不會無限迴圈。
確定性:演算法中的每一步都有確定的含義,不會出現二義性。
可行性:演算法的每一步都是可行的。
演算法設計準則之一正確性:
1.、演算法對於合法資料能夠得到滿足要求的結果。
2.、演算法能夠處理非法輸入,並得到合理的結果。
3、演算法對於邊界資料和壓力資料都能得到滿足要求的結果(不強制要求)。
注意:正確性是演算法最需要滿足的基本的準則,但是作為電腦程式,不可能無限制的滿足這條準則。
演算法設計準則之三健壯性:演算法不應該產生莫名其妙的結果。
演算法設計準則之四高價效比:利用最少的時間和資源得到滿足要求的結果。
注意:演算法可讀性是最容易被忽視的,然而,程式是寫給人看的,而不是計算機。
小結:1、演算法是為了解決實際問題而設計的
2、資料結構是演算法需要處理的問題載體
3、資料結構與演算法相輔相成
演算法 程式靈魂
乙個程式包括兩方面的資訊 1.對資料的描寫。2.對操作的描寫。演算法 資料結構 程式 演算法的特性 1.有窮性 2.確定性 3.有零個或多個輸入 4.有乙個或多個輸入 5.有效性第二章 資料型別 運算子與表示式 1 c的資料型別 c的資料型別包括 整型 字元型 實型或浮點型 單精度和雙精度 列舉型別...
程式的靈魂 演算法(二)
資料結構 演算法 程式 演算法的特性 有窮性 包含有限的操作步驟 確定性 演算法中的每乙個步驟都應當是確定的 有零個或多個輸入 輸入是指在執行演算法時需要從外界取得必要的資訊 有乙個或多個輸出 演算法的目的是為了求解,解 就是輸出 有效性 演算法中的每乙個步驟都應當能有效地執行,並得到確定的結果。良...
程式的靈魂 演算法(二)
4 快速排序演算法 1 演算法描述 從待排序序列中任意挑選乙個元素,作為基準 將所有小於基準的元素放在基準之前,大於基準的元素放在基準之後,等於基準的元素放在基準之前或之後,這個過程稱為分組 以遞迴的方式,分別對基準之前和基準之後的分組繼續進行分組,知道每個分組內的元素個數不多於 1 個為止 2 演...