目录介绍
第1章计算思维的本质1
1.1计算机的发明2
1.1.1计算机的数学原理2
1.1.2计算机的工程知识3
1.2思维方式概述5
1.2.1数学思维5
1.2.2计算思维6
1.2.3AI思维7
1.2.4大数据思维8
本章小结9
第2章计算思维解决数学问题10
2.1多项式运算10
2.1.1一元多项式求值10
2.1.2多项式相乘12
2.1.3多项式相除13
2.2求解一元多项式的根15
2.2.1算法实践——二分法15
2.2.2算法实践——弦割法17
2.2.3思维扩展18
2.3求解定积分20
2.3.1算法实践——牛顿法20
2.3.2算法实践——蒙特卡罗随机投点法22
2.3.3算法实践——蒙特卡罗平均值法24
2.4最大公约数问题26
2.4.1算法实践——质因数分解法26
2.4.2算法实践——辗转相除法26
2.4.3算法实践——更相减损法27
2.4.4算法实践——Stein算法28
2.5随机数的产生29
2.5.1算法实践——线性同余法29
2.5.2思维扩展31
本章小结33
第3章计算思维解决数学技巧34
3.1寻找数组中的最大值和最小值34
3.1.1算法实践——独立求解34
3.1.2算法实践——快速求解135
3.1.3算法实践——快速求解236
3.1.4算法实践——分治法37
3.2计算最大值和次大值38
3.2.1算法实践——分步计算38
3.2.2算法实践——同步计算40
3.3数组循环移位41
3.3.1算法实践——循环右移N位41
3.3.2算法实践——三次翻转法42
3.4奇数偶数分离问题43
3.4.1算法实践——简单算法43
3.4.2算法实践——二分区算法44
3.4.3思维扩展——荷兰国旗问题45
3.5数制转换问题47
3.5.1算法实践——递归48
3.5.2算法实践——栈49
3.6删除重复元素问题50
3.6.1算法实践——简单算法50
3.6.2算法实践——最优算法51
3.7连续最大数值问题52
本章小结54
第4章计算思维解决抽象问题55
4.1比赛名次问题55
4.2抢20游戏问题57
4.3莫尔斯码问题58
4.3.1编码思维58
4.3.2问题分析59
4.3.3算法实践——编码思维60
4.4微信红包算法66
4.4.1问题分析66
4.4.2算法实践 66
4.5智力拼图问题69
4.5.1问题分析69
4.5.2算法设计——BFS算法71
4.5.3算法实现72
4.6基因序列相似度问题74
4.6.1问题分析74
4.6.2算法设计——动态规划75
4.6.3算法实现77
4.7地铁线路查询问题79
4.7.1问题分析79
4.7.2数据整理79
4.7.3数据结构设计82
4.7.4优化的Dijkstra算法实现85
4.7.5完整的类实现87
本章小结90
第5章计算思维解决通用问题91
5.1总和最大区间问题91
5.1.1问题分析91
5.1.2算法实现——三重循环O(n3)92
5.1.3算法实现——二重循环O(n2)93
5.1.4算法实现——分治法O(nlogn)94
5.1.5算法实现——正反扫描法O(n)97
5.1.6算法实现——动态规划O(n)100
5.1.7算法变形——连续最大数值问题103
5.2矩阵问题104
5.2.1矩阵相乘104
5.2.2大规模矩阵相乘108
5.3矩阵应用——BMP图像处理113
5.3.1BMP文件结构分析113
5.3.2简单图像处理——平滑技术122
本章小结124
第6章计算思维与智能控制125
6.1电梯调度分析125
6.2俄罗斯方块游戏分析126
6.3相关基础知识127
6.3.1控制台数据类型127
6.3.2常用系统函数128
6.3.3控制台相关的API及封装128
6.3.4多线程和互斥信号量130
6.3.5编程技巧131
6.4电梯调度控制——工程实践134
6.4.1设计思想134
6.4.2函数设计135
6.4.3函数实现135
6.5俄罗斯方块——工程实践142
6.5.1设计思想142
6.5.2类设计143
6.5.3类实现148
本章小结159
第7章计算思维与文本处理160
7.1字符串的拷贝、比较和统计160
7.1.1字符串拷贝160
7.1.2字符串比较162
7.1.3字符串统计164
7.2字符串相似度问题166
7.2.1算法实践——编辑距离167
7.2.2算法实践——最小操作次数168
7.2.3算法实践——最长公共子序列169
7.3字符串匹配问题172
7.3.1算法实践——BF算法173
7.3.2算法实践——KMP算法174
7.4AC自动机179
7.4.1问题分析179
7.4.2工程实践180
7.4.3扩展思考192
7.5AC自动机的应用——中文分词192
7.5.1问题分析192
7.5.2工程实践193
7.6AC自动机的应用——搜索引擎之倒排索引196
7.6.1问题分析196
7.6.2工程实践198
本章小结203
参考文献204