内容介绍
算法是程序设计的灵魂,代表着用系统的方法描述解决问题的策略与机制。《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》将介绍简单模拟、枚举、递归、二分、贪心、动态规划和搜索等经典算法,带领读者体会它们巧妙的构思,感受利用它们解决问题的独特魅力。《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》不仅讲解这些算法的基本原理思想,还通过具体例题对这些算法进行灵活、有效的展开和准确实现。《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》中涉及的编程任务将充分训练读者的思维能力和动手能力,促成全面、缜密思考问题的习惯。
《算法基础与在线实践/北京大学“程序设计与算法”专项课程系列教材》可作为高等学校计算机等相关专业算法设计类课程的教材,也可供对算法设计、程序设计竞赛感兴趣的读者自学使用。
目录
- 第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)