- 數(shù)據(jù)結(jié)構(gòu)和算法(Python和C++語(yǔ)言描述)
- (美)戴維·M.瑞德 約翰·策勒
- 370字
- 2020-05-20 09:14:22
1.4 小結(jié)
這一章里,我們介紹了編寫(xiě)大型軟件系統(tǒng)至關(guān)重要的基本概念。
?“小作坊”式的編程和“大型”編程在不同維度上的不同。設(shè)計(jì)和實(shí)施大型程序的根本問(wèn)題是如何控制復(fù)雜度。
?在編寫(xiě)程序的時(shí)候,抽象被用來(lái)簡(jiǎn)化和減少程序員需要理解的信息量。一些特別有用的抽象類型(比如功能抽象)能夠允許將“做什么”與“如何做”分開(kāi),并且通過(guò)契約來(lái)優(yōu)化設(shè)計(jì)。
?程序斷言通過(guò)要求在給定執(zhí)行點(diǎn)處必須為真來(lái)文檔化程序。先驗(yàn)條件與后置條件是特殊類型的斷言,它們提供了一種表明函數(shù)或方法的行為的便捷方法。
?自上而下的設(shè)計(jì)可以把更大的問(wèn)題分解成若干個(gè)小問(wèn)題。對(duì)功能進(jìn)行分解的規(guī)范,使得一個(gè)項(xiàng)目上可以有多個(gè)程序員一起工作。
?對(duì)于比較大的數(shù)據(jù)集,算法的效率很重要。我們通過(guò)用漸近分析來(lái)區(qū)分算法的效率。大O符號(hào)被用來(lái)表示效率(時(shí)間復(fù)雜度)的上限,而Θ 符號(hào)被用來(lái)表示更準(zhǔn)確的時(shí)間復(fù)雜度增長(zhǎng)率。
推薦閱讀
- Node.js+Webpack開(kāi)發(fā)實(shí)戰(zhàn)
- Visual C++程序設(shè)計(jì)學(xué)習(xí)筆記
- 青少年軟件編程基礎(chǔ)與實(shí)戰(zhàn)(圖形化編程三級(jí))
- Apache Spark 2 for Beginners
- Python零基礎(chǔ)快樂(lè)學(xué)習(xí)之旅(K12實(shí)戰(zhàn)訓(xùn)練)
- 人臉識(shí)別原理及算法:動(dòng)態(tài)人臉識(shí)別系統(tǒng)研究
- AutoCAD VBA參數(shù)化繪圖程序開(kāi)發(fā)與實(shí)戰(zhàn)編碼
- 劍指MySQL:架構(gòu)、調(diào)優(yōu)與運(yùn)維
- 從零開(kāi)始學(xué)C語(yǔ)言
- Spring Boot+Vue全棧開(kāi)發(fā)實(shí)戰(zhàn)
- Node.js開(kāi)發(fā)指南
- C編程技巧:117個(gè)問(wèn)題解決方案示例
- scikit-learn Cookbook(Second Edition)
- C語(yǔ)言程序設(shè)計(jì)
- WCF編程(第2版)