算法設計及套用

算法設計及套用

《算法設計及套用》是2008年清華大學出版社出版的圖書,作者是呂國英。

基本介紹

  • 書名:算法設計及套用
  • 作者:呂國英
  • ISBN:9787302163367
  • 定價:29元
  • 出版社:清華大學出版社
  • 出版時間:2008-3-11
  • 裝幀:平裝
  • 開本:16
內容簡介,圖書前言,目錄,

內容簡介

本教材的內容遵循《中國計算機科學與技術學科教程2002》(China Computing Curricula 2002,CCC2002)的知識體系,介紹算法及其設計、分析的基礎知識,並通過大量例題,講解枚舉法、遞推法、分治法、貪婪算法、動態規劃及與圖搜尋有關的算法策略。除此之外,還對算法設計基本工具的使用和算法設計中的技巧做了講解。最後通過例題進行算法設計的實踐。算法用了接近自然語言(英語)的符號,可讀性強,適合於不同程式設計語言背景的讀者學習。
本書可以作為高等院校計算機及其相關專業高年級本科生和研究生算法設計課程的教材,也可作為計算機工作者、廣大程式設計愛好者和信息學愛好者的參考書。

圖書前言

進入21世紀,各國高科技發展突飛猛進,對教育資源、人才資源的爭奪也日益激烈,計算機軟體開發人才更是處在核心競爭地位。培養套用型軟體開發人才成為提高國家科技實力的重要步驟。國家973信息技術與高性能軟體基礎規劃項目首席科學家顧鈞教授和中國工程院院士李國傑教授指出:“我國的軟體開發要算法先行,這樣才能推動軟體技術的研究與開發,提高我國企業軟體產品的技術競爭力和市場競爭力。”
算法設計與分析是一門理論性與實踐性相結合的課程,是計算機科學與計算機套用專業的核心課程。學習算法設計可以在分析解決問題的過程中,培養學生抽象思維和縝密概括的能力,提高學生的軟體開發設計能力。
本書共包含4篇:
(1) 第1篇“引入篇”共兩章,從認識算法開始,介紹問題求解的步驟及算法在其中的重要地位,講解了算法效率分析的基本方法,對當前常用的算法軟體進行了簡要概述(可作為選修)。
(2) 第2篇“基礎篇”,對算法的重複操作機制——循環和遞歸的設計要點、算法中數據結構的選擇和提高算法效率的基本技巧做了講解,這些都是算法設計的重要基礎。
(3) 第3篇“核心篇”共兩章,主要介紹了幾種常用的算法策略,如枚舉法、遞推法、分治法、貪婪算法、動態規劃及與圖搜尋有關的算法策略,並對算法策略進行了總結比較。
(4) 第4篇“套用篇”,以問題為節,每節中針對同一問題給出採用不同的數學模型、不同數據結構或不同的算法策略進行算法設計,並進行效率分析。這部分內容是對算法設計學習的實踐。
本教材建設的理念是“實用、適用”。書中的例題選擇力求簡單但具有代表性,例題講解注重解題的思維過程,這樣做有利於培養學生“設計”算法的能力,而不是“記憶” 算法的能力,並力爭淺顯易懂地講解較深奧的算法設計策略和算法分析方法。
本書的主要特點有:
1) 重系統性
教材的第3篇“核心篇”摒棄同類教材中根據問題劃分章節的方法,通過對算法策略特點的概括和歸納,以同一策略下的套用差別來劃分章節,使得教材結構更合理、講解更系統、更加符合認知規律。同時,在各章末尾對算法進行比較、總結,使學生能方便、全面地掌握算法策略的本質及算法套用體系。
2) 重啟發性
本書中例題要經過問題分析、數學建模、數據結構設計後,才給出算法設計和算法分析。這樣講解解題的思維過程,富有啟發性,不僅培養了學生算法設計的思維方式,而且還能改變學生被動接受知識的習慣。書中多處提出供讀者深入思考的問題,旨在培養學生主動學習的意識,進而提高創新能力。
3) 重適用性
第2篇“基礎篇”是從程式設計到算法設計承上啟下的內容,對問題求解的基本方法、算法基本工具的使用及提高算法效率的基本技巧做了必要的總結、歸納。別的教材沒有這些內容,相信這些內容會給普通院校的廣大學生有較大的裨益,促進其打好學習算法設計的基礎。彌補了以往教材缺乏課程間銜接內容的缺陷,增強了學生學習該課程的自信心,提高了教學效率。
4) 重開放性
教材在第1篇中對現代算法進行了概覽,旨在擴大學生的知識面,提高其對算法設計的學習興趣。教材還獨特地介紹了從算法到程式轉換的要點,引導學生不能僅停留在形式化的算法描述階段,而是要大膽上機實現,提高學生學習本學科的興趣。這些內容是其他教材所不具有的。
5) 重實踐性
第4篇“套用篇”是本教材的一大亮點。該篇以問題為節,每節中針對同一問題採用不同的數學模型、不同的數據結構或不同的算法策略進行算法設計,擴展學生解決問題的思路,學會靈活運用算法知識,而不是生搬硬套教材中的算法。同時,也可以通過對多種算法設計的分析比較認識算法的優劣,從而設計出質量優良的算法。
在學習算法設計的過程中,可能有讀者感到所學的內容和大多例題都離現實問題較遠,似乎用途不大。這是因為現實中的實際問題往往較複雜,需要具備豐富的領域知識、算法設計方法和技巧規範及軟體工程的開發規範等綜合技能。所以,只能通過一些簡單、抽象的例子,對基礎的算法策略進行講解。待打好算法設計基礎且有足夠的問題領域知識儲備後,才能去解決實際套用問題。附錄“算法設計課程設計”中給出一些與現實結合相對較緊的練習,區別於章節習題,希望讀者廣開思路。
隨著信息化時代的到來,計算機開發平台日新月異,軟體套用拓展到了各個領域,各類算法和技巧層出不窮,本書只能是管中窺豹。若能達到本書的初衷——使讀者能掌握到算法設計的基本方法和技巧,打好軟體開發的基礎,就深感滿意了。
山西大學及作者所在的計算機與信息技術學院在教材的建設中給予了充分支持,為本書的寫作和教學實踐提供了良好的環境。教材出版單位清華大學出版社的編輯們更是為此書傾注了大量心血。在此,向各位關心和支持本書出版的人士表示衷心的感謝!

目錄

第1篇引入篇
第1章算法概述
1.1用計算機求解問題與算法
1.1.1用計算機求解問題的步驟
1.1.2算法及其要素和特性
1.1.3算法設計及基本方法
1.1.4從算法到實現
1.2算法描述
1.2.1算法描述簡介
1.2.2本書算法描述約定
1.2.3一個簡單問題的求解過程
1.3現代常用算法概覽
1.3.1壓縮算法
1.3.2加密算法
1.3.3人工智慧算法
1.3.4並行算法
1.3.5其他實用算法
第2章算法分析基礎
2.1算法分析體系及計量
2.1.1算法分析的評價體系
2.1.2算法的時間複雜性
2.1.3算法的空間複雜性
2.1.4NP完全問題
2.2算法分析實例
2.2.1非遞歸算法分析
2.2.2遞歸算法分析
2.2.3提高算法質量
第2篇基礎篇
第3章算法基本工具和最佳化技巧
3.1循環與遞歸
3.1.1循環設計要點
3.1.2遞歸設計要點
3.1.3遞歸與循環的比較
3.2算法與數據結構
3.2.1原始信息與處理結果的對應存儲
3.2.2數組使信息有序化
3.2.3數組記錄狀態信息
3.2.4大整數存儲及運算
3.2.5構造趣味矩陣
3.2.6一維與二維的選擇
3.3最佳化算法的基本技巧
3.3.1算術運算的妙用
3.3.2標誌量的妙用
3.3.3信息數位化
3.4最佳化算法的數學模型
3.4.1楊輝三角形的套用
3.4.2最大公約數的套用
3.4.3公倍數的套用
3.4.4斐波那契數列的套用
3.4.5特徵根求解遞推方程
習題
第3篇核心篇
第4章基本的算法策略
4.1疊代算法
4.1.1遞推法
4.1.2倒推法
4.1.3疊代法解方程
4.2蠻力法
4.2.1枚舉法
4.2.2其他範例
4.3分而治之算法
4.3.1分治算法框架
4.3.2典型二分法
4.3.3二分法不相似情況
4.3.4二分法不獨立情況
4.3.5非等分分治
4.4貪婪算法
4.4.1可絕對貪婪問題
4.4.2相對或近似貪婪問題
4.4.3貪婪策略算法設計框架
4.5動態規劃
4.5.1認識動態規劃
4.5.2動態規划算法設計框架
4.5.3突出階段性的動態規劃套用
4.5.4突出遞推的動態規劃套用
4.6算法策略間的比較
4.6.1不同算法策略特點小結
4.6.2算法策略間的關聯
4.6.3算法策略側重的問題類型
習題
第5章圖的搜尋算法
5.1圖搜尋概述
5.1.1圖及其術語
5.1.2圖搜尋及其術語
5.2廣度優先搜尋
5.2.1算法框架
5.2.2廣度優先搜尋的套用
5.3深度優先搜尋
5.3.1算法框架
5.3.2深度優先搜尋的套用
5.4回溯法
5.4.1認識回溯法
5.4.2算法簡介算法框架
5.4.3套用1——基本的回溯搜尋
5.4.4套用2——排列及排列樹的回溯搜尋
5.4.5套用3——最最佳化問題的回溯搜尋
5.5分支限界法
5.5.1分支搜尋算法
5.5.2分支限界搜尋算法
5.5.3算法框架
5.6圖的搜尋算法小結
習題
第4篇套用篇
第6章算法設計實踐
6.1循環賽日程表(4種)
6.2求3個數的最低公倍數(4種)
6.3猴子選大王(4種)
6.4最大子段和問題(5種)
6.5背包問題(11種)
6.5.1與利潤無關的背包問題
6.5.2與利潤有關的背包問題
附錄算法設計課程設計大綱

相關詞條

熱門詞條

聯絡我們