定 价:59 元
丛书名:高等院校电气信息类专业"互联网+"创新规划教材
- 作者:王桂平,刘君,李韧
- 出版时间:2020/12/1
- ISBN:9787301318416
- 出 版 社:北京大学出版社
- 中图法分类:TP312.8
- 页码:372
- 纸张:
- 版次:1
- 开本:16开
本教材以程序设计方法和算法的培养为主线,通过许多经典的程序设计竞赛题目为例阐述常用的程序设计方法和算法,如枚举、尺取法、模拟、字符串处理、时间和日期处理、高精度运算、递归、分治、动态规划、贪心、深度优先搜索、广度优先搜索、排序与检索、数论算法等。本教材附录为读者介绍了在线程序实践和程序设计竞赛需要掌握的一些方法和技巧。本书可用作高等院校理工科专业程序设计基础类课程的参考教材,也可以作为大学生程序设计大赛、蓝桥杯大赛、团体程序设计天梯赛等程序设计竞赛的培训和自学教材。
王桂平,博士,副教授,重庆交通大学信息科学与工程学院,研究方向为程序设计(C、C++、Java)、算法分析与设计、图论,主编教材4部,以第一作者发表SCI期刊论文8篇,EI期刊论文12篇,有ACM/ICPC竞赛12年的教练经验。
刘君,女,工学博士,现任重庆交通大学信息学院副教授,主要研究方向为大气颗粒物飘散模型,发表SCI/EI论文4篇,获授权发明专利5项。
李韧,男,工学博士,现任重庆交通大学信息学院副教授,主要研究方向为交通基础设施智能化管养,发表SCI/EI论文20余篇,获省部级科技进步二等奖1项。
第1章 程序设计竞赛与在线程序实践 ???????????????? 1
1.1 程序设计竞赛 ?????????????????????????????????????????? 1
1.1.1 大学生程序设计竞赛 ??????????????????? 1
1.1.2 蓝桥杯全国软件和信息技术专业人才大赛 ??????????????????????????????? 4 1.1.3 中国高校计算机大赛团体程序设计天梯赛??????????????????????????????????? 7 1.2 在线程序实践 ?????????????????????????????????????????? 7
1.3 程序设计竞赛题目的特点 ??????????????????????? 9
1.3.1 程序设计题目的组成 ??????????????????? 9
1.3.2 从单个测试数据的处理过渡到多个测试数据的处理 ??????????????????? 9
1.3.3 程序设计竞赛题目的输入/输出 ??? 11
1.3.4 程序设计竞赛题目的类型 ????????? 12
1.4 程序设计竞赛题目解析 ????????????????????????? 13
练习题 ???????????????????????????????????????????????????? 19
1.5 实践进阶:基本的输入/输出的处理 ???? 20
1.5.1 输入的处理????????????????????????????????? 21
1.5.2 输出的处理????????????????????????????????? 22
第2章 枚举 ???????????????????????????????????????????????????????? 24
2.1 枚举算法及例题解析????????????????????????????? 24
2.1.1 枚举算法及实现要点 ????????????????? 24
2.1.2 例题解析 ???????????????????????????????????? 25
练习题 ???????????????????????????????????????????????????? 31
2.2 哥德巴赫猜想 ???????????????????????????????????????? 34
练习题 ???????????????????????????????????????????????????? 37
2.3 尺取法及应用 ???????????????????????????????????????? 38
2.3.1 尺取法的原理及注意事项 ????????? 38
2.3.2 例题解析 ???????????????????????????????????? 39
练习题 ???????????????????????????????????????????????????? 43
2.4 实践进阶:算法及算法复杂度 ????????????? 44
2.4.1 算法的概念????????????????????????????????? 44
2.4.2 算法的效率及算法复杂度 ????????? 45
2.4.3 算法时间复杂度的渐进分析和表示 ????????????????????????????????????????????? 47
2.4.4 最好、最坏和平均情况 ?????????????? 48
2.4.5 基本的算法复杂度模型 ?????????????? 49
第3章 模拟 ???????????????????????????????????????????????????????? 51
3.1 模拟方法及例题解析 ????????????????????????????? 51
3.1.1 模拟方法及实现要点 ?????????????????? 51
3.1.2 例题解析 ????????????????????????????????????? 52
练习题 ???????????????????????????????????????????????????? 56
3.2 模拟约瑟夫环 ????????????????????????????????????????? 58
练习题 ???????????????????????????????????????????????????? 62
3.3 游戏的模拟 ????????????????????????????????????????????? 63
练习题 ???????????????????????????????????????????????????? 70
3.4 实践进阶:程序测试 ????????????????????????????? 73
3.4.1 解答程序设计竞赛题目的一般流程 ????????????????????????????????????????????? 73
3.4.2 程序测试方法 ????????????????????????????? 74
第4章 字符及字符串处理 ????????????????????????????????? 81
4.1 字符转换与编码 ??????????????????????????????????????? 81
4.1.1 字符转换 ????????????????????????????????????? 81
4.1.2 字符编码 ????????????????????????????????????? 84
练习题 ???????????????????????????????????????????????????? 87
4.2 回文的判断与处理 ????????????????????????????????? 90
练习题 ???????????????????????????????????????????????????? 94
4.3 子串处理 ????????????????????????????????????????????????
95 练习题 ???????????????????????????????????????????????????? 98
4.4 模式匹配问题及KMP算法 ??????????????????? 99
4.4.1 字符串的模式匹配问题 ?????????????? 99
4.4.2 朴素的模式匹配算法 ?????????????????? 99
4.4.3 KMP算法 ????????????????????????????????? 101
4.4.4 例题解析 ???????????????????????????????????
109 练习题 ?????????????????????????????????????????????????? 114
4.5 其他竞赛题目解析 ??????????????????????????????? 114
练习题 ??????????????????????????????????????????????????? 118
4.6 实践进阶:特殊的输入/输出的处理 ?????? 119
4.6.1 特殊输入的处理 ??????????????????????? 120
4.6.2 特殊输出的处理 ??????????????????????? 122
第5章 时间和日期的处理 ??????????????????????????????? 123
第6章 高精度计算 ??????????????????????????????????????????? 147
第7章 递归、分治、动态规划和贪心 ???????????? 171
第8章 搜索 ?????????????????????????????????????????????????????? 217
第9章 排序和检索 ??????????????????????????????????????????? 260
第10章 数论基础 ???????????????????????????????????????????? 300
附录A 程序设计竞赛的100个技巧 ???????????????? 322
附录B 本书例题和练习题汇总 ???????????????????????? 353
参考文献 ?????????????????????????????????????????????????????????????? 360