出版時間:2009-10 出版社:朱青 清華大學(xué)出版社 (2009-10出版) 作者:朱青 頁數(shù):280
Tag標(biāo)簽:無
前言
“計算機算法與程序設(shè)計”(computer algorithm and programming design)是計算機科學(xué)技術(shù)領(lǐng)域研究的重要基礎(chǔ)課程,己成為眾多理工科專業(yè)學(xué)生所喜愛的必修課之一。眾所周知,計算機系統(tǒng)軟件和應(yīng)用軟件,如操作系統(tǒng)、高級語言編譯器、數(shù)據(jù)庫管理系統(tǒng)及各種計算機應(yīng)用軟件,無論是單機環(huán)境的系統(tǒng)軟件,還是分布式、并行計算軟件都是程序設(shè)計的結(jié)晶,當(dāng)然都離不開算法的設(shè)計與實現(xiàn)。計算機系統(tǒng)中的任何軟件,都是按特定的算法進(jìn)行設(shè)計并且編寫必需的程序源代碼予以實現(xiàn)的。算法性能的好壞,直接決定了所實現(xiàn)軟件性能的優(yōu)劣。對于算法的設(shè)計除了需要考慮算法自身的功能外,還需考慮算法的時空復(fù)雜度,關(guān)鍵是設(shè)計一個功能強、效率高、時空復(fù)雜性低的優(yōu)化算法并用程序?qū)崿F(xiàn)。因此,計算機算法與程序設(shè)計是計算機科學(xué)與技術(shù)的一個核心問題,也是大學(xué)計算機專業(yè)本科生的一門重要的專業(yè)基礎(chǔ)課程。本書的內(nèi)容選材適當(dāng),循序漸進(jìn),互相銜接,逐步展開,具有系統(tǒng)性、先進(jìn)性和實用性。(1)系統(tǒng)性。系統(tǒng)深入地介紹計算機專業(yè)基礎(chǔ)課程“算法設(shè)計與分析”的理論知識;全面地講解程序設(shè)計對于算法的設(shè)計與實現(xiàn)。全書包括:算法基礎(chǔ),數(shù)據(jù)抽象與數(shù)據(jù)結(jié)構(gòu),初等數(shù)論,組合數(shù)學(xué)初步;講述了遞歸與分治策略,動態(tài)規(guī)劃,貪心算法,搜索技術(shù),圖論算法;進(jìn)一步研究了計算幾何,排序算法;最后給出了程序設(shè)計典型實例。(2)先進(jìn)性。計算機應(yīng)用領(lǐng)域?qū)<?、?yōu)秀的重點高校教師、ACM-ICPC國際大學(xué)生程序設(shè)計競賽金牌教練,近年的科研與教學(xué)的積累與提煉,內(nèi)容體系先進(jìn)性與計算機算法、程序設(shè)計的有機結(jié)合的研究成果與經(jīng)驗結(jié)晶。
內(nèi)容概要
將本科“計算機算法與程序設(shè)計”課程與大學(xué)生程序設(shè)計競賽有機地結(jié)合是新時期教學(xué)改革、培養(yǎng)實用型計算機優(yōu)秀人才的創(chuàng)新。《計算機算法與程序設(shè)計》既系統(tǒng)深入地介紹算法設(shè)計的理論知識,又詳盡地將其應(yīng)用于實際編程,做到理論與實踐的統(tǒng)一?! 惺紫葟睦碚摰慕嵌冉榻B了算法基礎(chǔ),數(shù)據(jù)抽象與數(shù)據(jù)結(jié)構(gòu),初等數(shù)論,組合數(shù)學(xué)初步;講述了遞歸與分治策略,動態(tài)規(guī)劃,貪心算法,搜索技術(shù),圖論算法;進(jìn)一步研究了計算幾何,排序算法;最后從實踐的角度給出了程序設(shè)計典型實例及詳細(xì)解析。
作者簡介
朱青,博士,中國人民大學(xué)信息學(xué)院副教授,高級CCF會員:曾于2004年3月-9月在美國加州大學(xué)圣迭戈分校UCSD作訪問學(xué)者。在2007年1月-3月作為訪問學(xué)者到香港中文大學(xué)合作研究。2006年獲教育部寶鋼優(yōu)秀教師獎,2005年獲中國人民大學(xué)優(yōu)秀教師獎,2005年國家精品課程獎、北京市精品課程獎、2008年中國人民大學(xué)教學(xué)改革獎等獎勵。中國人民大學(xué)ACM-ICPC(ACM國際大學(xué)生程序競賽)代表隊總教練,曾獲亞洲賽區(qū)金牌,帶隊進(jìn)入世界總決賽。主要研究方向:網(wǎng)格與并行計算,分布式系統(tǒng)可信與安全技術(shù)、高性能數(shù)據(jù)庫與信息檢索、Web Service計算。
書籍目錄
第1章 緒論1.1 算法研究的意義1.2 算法與程序1.3 算法的描述工具1.4 算法的復(fù)雜性分析1.4.1 時間復(fù)雜度1.4.2 空間復(fù)雜度1.5 常用數(shù)學(xué)分析公式第2章 數(shù)據(jù)抽象與數(shù)據(jù)結(jié)構(gòu)2.1 數(shù)據(jù)抽象概念2.1.1 數(shù)據(jù)結(jié)構(gòu)的基本概念和術(shù)語2.1.2 數(shù)據(jù)抽象2.2 基本數(shù)據(jù)結(jié)構(gòu)2.2.1 線性表與向量2.2.2 鏈表2.2.3 棧和隊列2.2.4 二叉樹2.2.5 圖2.3 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)拓廣2.3.1 哈希表2.3.2 并查集(等價類)2.3.3 線段樹2.3.4 二叉堆第3章 初等數(shù)論3.1 數(shù)論基礎(chǔ)3.1.1 素數(shù)與算術(shù)基本定理3.1.2 最大公約數(shù)與最小公倍數(shù)3.2 同余方程3.2.1 同余方程概念3.2.2 中國剩余定理3.3 數(shù)論函數(shù)3.3.1 歐拉函數(shù)3.3.2 積性函數(shù)3.4 素數(shù)和整除3.4.1 篩法求素數(shù)3.4.2 整數(shù)Ⅳ的因子函數(shù)3.5 高精度計算第4章 組合數(shù)學(xué)初步4.1 加法原理與乘法原理4.2 鴿籠原理和Ramsey數(shù)4.3 遞推關(guān)系和生成函數(shù)4.3.1 Fibonacci數(shù)4.3.2 Catalan數(shù)4.3.3 第二類Stirlin9數(shù)4.4 排列組合4.4.1 字典序排列4.4.2 組合算法4.4.3 二項式系數(shù)4.5 容斥原理4.5.1 容斥原理的概念4.5.2 錯排問題4.6 Polya定理及其應(yīng)用第5章 遞歸與分治策略5.1 遞歸概念5.1.1 遞歸與遞歸調(diào)用5.1.2 遞歸應(yīng)用5.2 分治法概述5.2.1 分治法基本思想5.2.2 分治算法設(shè)計和特點5.3 分治法的基本應(yīng)用5.3.1 最大最小值5.3.2 Strassen矩陣乘法5.4 分治法解騎士周游5.5 大整數(shù)乘法5.5.1 常規(guī)大整數(shù)乘法5.5.2 分治法解大整數(shù)乘法5.6 棋盤覆蓋問題第6章 貪心算法6.1 貪心算法概述6.1.1 貪心舉例6.1.2 貪心算法的理論基礎(chǔ)6.1.3 貪心算法與動態(tài)規(guī)劃算法的區(qū)別6.2 背包問題6.3 機器任務(wù)調(diào)度算法6.3.1 多機調(diào)度問題6.3.2 活動安排問題6.4 最小生成樹6.4.1 普里姆(Prim)算法6.4.2 克魯斯卡爾(Kruskal)算法6.5 哈夫曼(Huffman)樹及其應(yīng)用6.5.1 Huffman樹6.5.2 哈夫曼編碼6.5.3 Huffman算法的正確性第7章 動態(tài)規(guī)劃7.1 動態(tài)規(guī)劃算法思想7.1.1 動態(tài)規(guī)劃最優(yōu)決策原理7.1.2 動態(tài)規(guī)劃求解步驟7.1.3 動態(tài)規(guī)劃的數(shù)學(xué)抽象7.2 矩陣連乘問題7.3 最長子序列探索7.3.1 最長遞增子序列7.3.2 最長公共子序列7.4 多段圖的最短路徑7.5 資源分配問題7.6 樹狀動態(tài)規(guī)劃第8章 搜索技術(shù)8.1 盲目搜索算法8.1.1 對分搜索8.1.2 DFS與BFS搜索算法8.1.3 盲目搜索算法應(yīng)用8.2 回溯算法8.3 啟發(fā)式搜索8.3.1 啟發(fā)式搜索策略8.3.2 A*算法8.4 博弈問題8.4.1 博弈樹8.4.2 極小極大搜索法8.5 α-β剪枝技術(shù)第9章 圖論算法9.1 基本概念和定理9.1.1 可行遍性問題9.1.2 平面圖9.1.3 獨立集、覆蓋與支配集9.2 最短路徑9.2.1 Diikstra算法9.2.2 Floyd算法求一對點最短路徑9.3 道路和回路9.3.1 歐拉道路和歐拉回路9.3.2 哈密爾頓圖和貨郎擔(dān)問題9.4 網(wǎng)絡(luò)流算法9.4.1 基本概念9.4.2 最大流問題9.4.3 最小費用流9.5 二分圖相關(guān)問題9.5.1 二分圖的最大匹配9.5.2 二分圖的最佳匹配第10章 計算幾何10.1 計算幾何基本問題10.1.1 矢量與線段10.1.2 幾何計算公式10.2 點與線段的關(guān)系10.2.1 點與線段的距離10.2.2 線段與直線的交點10.3 多邊形10.3.1 多邊形基本概念10.3.2 點與多邊形的關(guān)系10.4 凸包問題10.4.1 判斷凸包10.4.2 尋找凸包10.5 歐拉定理及其應(yīng)用.第11章 排序11.1 排序基礎(chǔ)11.2 比較排序法11.2.1 插入排序11.2.2 冒泡排序11.2.3 簡單選擇排序11.3 基于分治策略的排序算法11.3.1 快速排序11.3.2 歸并排序11.4 堆排序11.4.1 樹狀選擇排序11.4.2 堆排序11.5 基數(shù)排序11.6 排序小結(jié)第12章 算法與程序經(jīng)典實例12.1 計算機算法設(shè)計實例12.2 國際競賽程序?qū)嵗治?/pre>章節(jié)摘錄
插圖:第1章 緒論計算機算法與程序設(shè)計(Computer Algorithm and Programming Design)是計算機科學(xué)技術(shù)領(lǐng)域研究的重要基礎(chǔ)課程,目前在各個高校普遍開設(shè)的本科課程,已成為眾多理工科專業(yè)學(xué)生所喜愛的選修課之一。算法(algorithm)是一組有限規(guī)則,即為某個特定問題提供了計算機求解的運算序列。通俗點說,就是計算機解題的過程。算法分為并行算法和“傳統(tǒng)意義”上的單處理器計算機上執(zhí)行的算法,本書重點研究后者,重點講述構(gòu)成算法與程序的基本方法,解題思路,求解過程,求解效果的優(yōu)劣分析等重要特征。本章主要內(nèi)容:1.1節(jié)算法研究的意義,列舉多個實例,詳細(xì)討論“算法,的概念和研究算法的意義;1.2節(jié)算法與程序,講述算法如何逐步求精,實現(xiàn)程序設(shè)計;1.3節(jié)算法的描述工具,討論算法的偽代碼表示,說明算法的精確描述工具;l.4節(jié)算法的復(fù)雜性分析,簡要介紹算法分析技術(shù),研究時間復(fù)雜度與空問復(fù)雜度分析;1.5節(jié)常用數(shù)學(xué)分析公式,提出在算法分析中實施計算的一些必備數(shù)學(xué)基礎(chǔ),這些方法將會幫助設(shè)計和分析算法。1.1 算法研究的意義隨著信息技術(shù)的發(fā)展,計算機算法與程序設(shè)計的普及,依據(jù)其難易等級,已從大學(xué)本科課程、研究生基礎(chǔ)教學(xué)擴(kuò)展到中學(xué)、高職高專教育;尤其是計算機信息類ACM國際大學(xué)生程序設(shè)計競賽(ACM International Collegiate Programming Contest,ACM—ICPC),中學(xué)信息學(xué)奧林匹克國際競賽,已從計算機算法與程序設(shè)計研究的高端到低端全面展開。其目的是培養(yǎng)學(xué)生良好的程序設(shè)計技巧和熟練的算法分析能力,能夠開發(fā)出高效率的有效高級語言程序。編輯推薦
《計算機算法與程序設(shè)計》是由清華大學(xué)出版社出版的。圖書封面
圖書標(biāo)簽Tags
無評論、評分、閱讀與下載