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