本書(shū)主要介紹程序設(shè)計(jì)算法的基礎(chǔ)知識(shí),通過(guò)算法問(wèn)題實(shí)踐講解程序設(shè)計(jì)常用的算法,包括題目描述、題目分析,并給出參考代碼。本書(shū)可以作為基礎(chǔ)語(yǔ)言(C、C++)的后續(xù)內(nèi)容,用于鞏固和提高數(shù)據(jù)結(jié)構(gòu)的相關(guān)知識(shí),此外,亦可為軟件工程、應(yīng)用程序開(kāi)發(fā)、網(wǎng)絡(luò)信息技術(shù)、大數(shù)據(jù)和人工智能等提供算法知識(shí)基礎(chǔ)。
本書(shū)可作為普通高等學(xué)校計(jì)算機(jī)及工科專(zhuān)業(yè)教材或從事軟件程序設(shè)計(jì)人員的參考書(shū),也可作為大學(xué)生程序設(shè)計(jì)競(jìng)賽的訓(xùn)練指導(dǎo)書(shū)。
更多科學(xué)出版社服務(wù),請(qǐng)掃碼獲取。
第1章 程序設(shè)計(jì)算法概述
1.1 算法實(shí)現(xiàn)過(guò)程
1.2 算法的特征及評(píng)價(jià)標(biāo)準(zhǔn)
1.3 算法分析
1.4 算法實(shí)踐
第2章 基礎(chǔ)算法
2.1 枚舉法
2.1.1 生理周期(Biorhythms/1006)
2.1.2 立方體(Blocks/2363)
2.1.3 完美立方(Perfect Cubes/1543)
2.1.4 千年蟲(chóng)病毒(Y2K Accounting Bug/2586)
2.1.5 保險(xiǎn)箱(Safecracker/1248)
2.1.6 裝盒問(wèn)題(Packets/1017)
2.2 遞歸法
2.2.1 遞歸函數(shù)(Function Run Fun/1579)
2.2.2 還原二叉樹(shù)(Tree Recovery/2255)
2.2.3 分形(Fractal/2083)
2.2.4 放蘋(píng)果(1664)
2.2.5 排列問(wèn)題(Orders/1731)
2.3 分治法
2.3.1 誰(shuí)在中間(Who's in the Middle/2388)
2.3.2 排序問(wèn)題(Ultra-QuickSort/2299)
2.3.3 好斗的牛(Aggressive cows/2456)
2.3.4 分餡餅(Pie/3122)
2.3.5 木桿的膨脹(ExpandingRods/1905)
2.3.6 星形還是樹(shù)形(A Star not a Tree?/2420)
第3章 基礎(chǔ)數(shù)據(jù)結(jié)構(gòu)
3.1 堆棧
3.1.1 網(wǎng)站導(dǎo)航(Web Navigation/1028)
3.1.2 糟糕的一天(Bad Hair Day/3250)
3.1.3 鐵軌問(wèn)題(Rails/1363)
3.1.4 可怕的集合(Terrible Sets/2082)
3.1.5 數(shù)字密碼(Code/1780)
3.2 隊(duì)列
3.2.1 紙牌戲法(Card Trick/3032)
3.2.2 紙牌發(fā)牌(Card Stacking/3629)
3.2.3 打印隊(duì)列(Printer Queue/3125)
3.2.4 成組隊(duì)列(Team Queue/2259)
3.2.5 滑動(dòng)窗口(Sliding Window/2823)
3.3 堆
3.3.1 修理柵欄(Fence Repair/3253)
3.3.2 數(shù)據(jù)流管理系統(tǒng)(Argus/2051)
3.3.3 黑盒問(wèn)題(BlackBox/1442)
3.3.4 序列問(wèn)題(Sequence/2442)
3.3.5 財(cái)務(wù)補(bǔ)助(Moo University-Financial Aid/2010)
第4章 動(dòng)態(tài)規(guī)劃
4.1 基礎(chǔ)動(dòng)態(tài)規(guī)劃問(wèn)題
4.1.1 數(shù)學(xué)三角形(The Triangle/1163/3176)
4.1.2 括號(hào)序列(Brackets/2955)
4.1.3 乘法問(wèn)題(Multiplication Puzzle/1651)
4.1.4 接蘋(píng)果(Apple Catching/2385)
4.1.5 海明數(shù)(Hamming Problem/2545)
4.2 子序列問(wèn)題
4.2.1 最長(zhǎng)有序子序列(Longest Ordered Subsequence/2533)
4.2.2 加工木棍(Wooden Sticks/1065)
4.2.3 士兵列隊(duì)(Alignment/1836)
4.2.4 求最大和(Maximum surn/2479)
4.2.5 求最大矩陣和(To the Max/1050)
4.3 最長(zhǎng)公共子串問(wèn)題
4.3.1 公共子序列(Common Subsequence/1458)
4.3.2 回文串(Palindrome/1159)
4.3.3 基因功能(Human Gene Functions/1080)
4.3.4 基因重組(AGTC/3356)
4.4 背包問(wèn)題
4.4.1 幸運(yùn)手鏈(Charm Bracelet/3624)
4.4.2 儲(chǔ)錢(qián)罐(Piggy-Bank/1384)
4.4.3 提款機(jī)(Cash Machine/1276)
4.4.4 硬幣組合(Coins/1742)
4.5 進(jìn)階動(dòng)態(tài)規(guī)劃問(wèn)題
4.5.1 策略游戲(Strategic game/1463)
4.5.2 周年紀(jì)念聚會(huì)(Anniversary party/2342)
4.5.3 玉米田(Corn Fields/3254)
4.5.4 送比薩(Hie with the Pie/3311)
4.5.5 頻率值(Frequent values/3368)
第5章 貪心算法
5.1 基礎(chǔ)貪心算法問(wèn)題
5.1.1 生物碰撞(Stripies/1862)
5.1.2 保護(hù)花朵(Protecting the Flowers/3262)
5.1.3 田忌賽馬(Tian Ji——The Horse Racing/2287)
5.1.4 發(fā)補(bǔ)助(Allowance/3040)
5.1.5 超級(jí)星星(Super Star/2069)
5.2 區(qū)間覆蓋問(wèn)題
5.2.1 不相交區(qū)間(Intervals/1089)
5.2.2 雷達(dá)安裝(Radar Installation/1328)
5.2.3 換班問(wèn)題(Cleaning Shifts/2376)
第6章 高級(jí)數(shù)據(jù)結(jié)構(gòu)
6.1 并查集
6.1.1 宗教信仰(Ubiquitous Religions/2524)
6.1.2 傳染病(The Suspects/1611)
6.1.3 犯罪幫派(Findthem,Catchthem/1703)
6.1.4 堆放立方塊(Cube Stacking/1988)
6.2 線(xiàn)段樹(shù)
6.2.1 亂套的牛(Lost Cows/2182)
6.2.2 平衡陣容(BalancedLineup/3264)
6.2.3 市長(zhǎng)的海報(bào)(Mayor's posters/2528)
6.2.4 簡(jiǎn)單整數(shù)問(wèn)題(A Simole Problem with Integers/3468)
6.3 樹(shù)狀數(shù)組
6.3.1 星星數(shù)量(Stars/2352)
6.3.2 矩陣查詢(xún)(Matrix/2155)
6.3.3 狂歡節(jié)(MooFest/1990)
6.3.4 第K小數(shù)(K-th Number/2104)
6.4 二叉搜索樹(shù)
6.4.1 闊葉樹(shù)種(Hardwood Species/2418)
6.4.2 雙重隊(duì)列(Double Queue/3481)
6.4.3 喂小狗(Feed the dogs/2761)
6.5 哈希表
6.5.1 寶貝魚(yú)(Babelfish/2503)
6.5.2 雪花(Snowflake/3349)
6.5.3 求和為零(4 Values whose Sum is 0/2785)
6.6 字符串
6.6.1 熵編碼(Entropy/1521)
6.6.2 最短前綴(Shorter Prefixes/2001)