热门排行
简介
算法是程序设计的灵魂,代表着用系统的方法描述解决问题的策略与机制。《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》将介绍简单模拟、枚举、递归、二分、贪心、动态规划和搜索等经典算法,带领读者体会它们巧妙的构思,感受利用它们解决问题的独特魅力。《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》不仅讲解这些算法的基本原理思想,还通过具体例题对这些算法进行灵活、有效的展开和准确实现。《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》中涉及的编程任务将充分训练读者的思维能力和动手能力,促成全面、缜密思考问题的习惯。
《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》可作为高等学校计算机等相关专业算法设计类课程的教材,也可供对算法设计、程序设计竞赛感兴趣的读者自学使用。
目录
第1章 绪论
1.1 什么是算法
1.2 算法的时间复杂度
1.3 算法时间复杂度分析示例
1.4 PKU 0penJudge在线评测系统
1.5 本章小结
第2章 简单计算与模拟
2.1 基本思想
2.2 例题:鸡兔同笼(POJ 3237)
2.3 例题:校门外的树(POJ 2808)
2.4 例题:装箱问题(POJ 1017)
2.5 例题:约瑟夫问题(POJ 2746)
2.6 例题:显示器(POJ 2745)
2.7 例题:排列(POJ 1833)
2.8 本章小结
2.9 练习题
习题2-1:与7无关的数(POJ 2701)
习题2-2:细菌繁殖(POJ 2712)
习题2-3:判断闰年(POJ 2733)
习题2-4:求一兀二次方程的根(PoJ 2707)
习题2-5:合唱队形(POJ 2711)
第3章 枚举
3.1 基本思想
3.2 例题:假币问题(POJ 2692)
3.3 例题:生理周期(POJ 4148)
3.4 例题:完美立方(POJ 2810)
3.5 例题:熄灯问题(POJ 2811)
3.6 例题:讨厌的青蛙(POJ 2812)
3.7 本章小结
3.8 练习题
习题3-1:数字三元组(POJ 4146)
习题3-2:质数的和与积(POJ 4138)
习题3-3:不定方程求解(POJ 4139)
习题3-4:砝码称重(POJ 4141)
习题3-5:垃圾炸弹(POJ 4133)
第4章 递归
4.1 基本思想
4.2 例题:汉诺塔问题
4.3 例题:小游戏(POJ 2802)
4.4 例题:棋盘分割(POJ 1191)
4.5 例题:八皇后问题(POJ 2754)
4.6 例题:文件结构“图”(POJ 2775)
4.7 例题:算24(POJ 2787)
4.8 例题:汉诺塔问题利用栈替代递归的解法
4.9 本章小结
4.10 练习题
习题4-1:斐波那契数列(POJ 2753)
习题4-2:求最大公约数问题(POJ 3248)
习题4-3:分解因数(POJ 2749)
习题4-4:逆波兰表达式(POJ 2694)
习题4-5:括号匹配问题(POJ 3704)
第5章 二分查找
5.1 基本思想
5.2 例题:方程求解(POJ 4140)
5.3 例题:在线翻译(POJ 2503)
5.4 例题:快速找到和为零的四个数(POJ 3441)
5.5 例题:疯牛(POJ 2456)
5.6 例题:弯曲的木杆(POJ 1905)
5.7 例题:放弃考试(POJ 4145)
5.8 本章小结
5.9 练习题
习题5-1:查找最接近的元素(PoJ 4134)
习题5-2:二分法求函数的零点(POJ 4142)
习题5-3:和为给定数(POJ 4143)
习题5-4:月度开销(POJ 4135)
习题5-5:矩形分割(PoJ 4136)
第6章 贪心算法
6.1 基本思想
6.2 例题:圣诞老人的礼物(POJ 4110)
6.3 例题:电池的寿命(POJ 3468)
6.4 例题:建立雷达(POJ 1328)
6.5 例题:田忌赛马(POJ 2287)
6.6 例题:钓鱼(POJ 1042)
6.7 例题:畜栏保留问题(POJ 4144)
6.8 本章小结
6.9 练习题
习题6-1:金银岛(POJ 2795)
习题6-2:最短前缀(POJ 2797)
习题6-3:书架(POJ 3406)
习题6-4:最小新整数(POJ 4137)
习题6-5:拼点游戏(POJ 4005)
第7章 动态规划
7.1 基本思想
7.2 动态规划解题的一般思路
7.3 例题:最长上升子序列(POJ 2533)
7.4 例题:最长公共子序列(POJ 1458)
7.5 例题:CIlarm Bracelet(POJ 4131)
7.6 例题:滑雪(POJ 1088)
7.7 例题:灌溉草场(POJ 2373)
7.8 例题:方盒游戏(POJ 1390)
7.9 例题:美妙栅栏(POJ 1037)
7.10 本章小结
7.11 练习题
习题7-1:简单的整数划分问题(POJ 4117)
习题7-2:开餐馆(POJ 4118)
习题7-3:复杂的整数划分问题(PoJ 4119)
习题7-4:硬币(POJ 4120)
习题7-5:宠物小精灵之收服(POJ 4102)
习题7-6:股票买卖(POJ 4121)
习题7-7:切割回文(POJ 4122)
第8章 深度优先搜索
8.1 基本思想
8.2 例题:城堡问题(POJ 2815)
8.3 例题:ROADS(POJ 1724)
8.4 例题:生日蛋糕(POJ 1190)
8.5 例题:sticks(POJ 1011)
8.6 本章小结
8.7 练习题
习题8-1:踩方格(POJ 4103)
习题8-2:棋盘问题(POJl321)
习题8-3:马走日(POJ 4123)
习题8-4:海贼王之伟大航路(PoJ 4124)
习题8-5:DNA(POJ 4126)
第9章 广度优先搜索
9.1 基本思想
9.2 例题:Catch That cow(POJ 4001)
9.3 例题:拯救行动(POJ 4116)
9.4 例题:鸣人和佐助(POJ 4115)
9.5 例题:八数码(POJ 1077)
9.6 双向广度优先搜索
9.7 本章小结
9.8 练习题
习题9-1:迷宫问题(POJ 4127)
习题9-2:单词序列(POJ 4128)
习题9-3:变换的迷宫(POJ 4129)
习题9-4:Flip Game(POJ 1753)
习题9-5:SavingTang Monk(POJ 4130)
习题9-6:Jack and Jill(POJ 1729)