c语言十七算法,算法精解十七(C语言版)
算法分析
無論是在設計還是在應用一種廣泛認可的算法時,我們必須了解這種算法的性能如何。算法的性能可以通過很多方面評判,但是通常我們最關心的算法是運算速度。但有些時候,如果一種算法消耗了大量的存儲空間,那么我們也要關注算法對內存空間的要求。不管如何,都要一種標準和確定的方法來確定算法的性能。
之所以要了解算法的性能,去原因是很多方面的。例如:當要解決一個問題時,有很多算法可供選擇,理解算法的性能有助于區分它們,如果了解每種算法的性能就能夠有效地幫助我們解決問題。舉例來說,垃圾回收算法,它用來回收堆上分配的動態存儲空間(見第3章),并且需要相當長的時間來運行。認識到這點之后,我們就能非常注意只在適當的時候運用此算法,就像LISP和Java所做的那樣。
本章內容包括:
最壞情況分析
這是大多數算法都采用的評估方法。在其他情況下,我們可能會考慮算法的平均情況和最佳情況。但是,對最壞情況的分析同樣會帶來一些好處。
O表示法
這是表示算法性能的最為常用的正式方法。在一定的條件因素下,O表示法指明一個函數的上限。
計算的復雜度
資源消耗的大小往往與算法所需要處理的數據量地方哦大小相輔相成。O表示法可以很好表示一個算法的復雜度。
最壞情況分析
在所有的情況下,絕大多數算法都會表現出不同的性能;并且,隨著傳人數據的不同,算法的表現也不相同。通常用來判斷性能的三種情況是:最佳情況、平均情況與最壞情況。對于任何算法來說,理解每種情況是如何生產的對于分析算法來說非常重要,因為算法在不同的情況下性能差異可能很大。看一種線性收索的簡單算法。線性搜索是一種自然的但效率低下的搜索技術,它簡單地從數據集的頭部順序遍歷到尾部。在最佳情況下,要查找的元素處于數據集的第一個位置,所以在僅僅遍歷一個元素之后就找到想查找的元素,然而,在最壞情況下,要查找的元素處于數據集的最后一個位置,所以必須在遍歷完所有的元素之后才能找到要查找的元素。在平均情況下,可能在數據集的中間某一個位置找到元素。
總結
以上是生活随笔為你收集整理的c语言十七算法,算法精解十七(C语言版)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android UI进阶之实现listv
- 下一篇: GMF学习系列(二) 一些知识点(续2)