计算机科学无处不在,但传统教材枯燥无趣,致使很多程序员从未深研究过这一对于实现高效程序设计至关重要的学科,也将很多对此话题感兴趣的非程序员挡在了门外。 本书以简明扼要的形式介绍计算机科学知识,浅显易懂,既适合程序员巩固编程基础,也适合普通人了解计算机科学和计算思维。 - 梳理了求解问题所需的基本数学知识,将想法转换为可供计算机执行的解决方案
售 价:¥
纸质售价:¥36.40购买纸书
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
名言
译者序
前言
目标读者
计算机科学并非只和学者有关
查尔斯 • 巴贝奇的分析机原理图
第 1 章 预备知识
1.1 想法
1.1.1 流程图
1.1.2 伪代码
1.1.3 数学模型
1.2 逻辑
1.2.1 运算符
1.2.2 布尔代数
1.2.3 真值表
1.2.4 逻辑在计算中的应用
1.3 计数
1.3.1 乘法
1.3.2 排列
1.3.3 具有相同项的排列
1.3.4 组合
1.3.5 求和
1.4 概率
1.4.1 对结果计数
1.4.2 独立事件
1.4.3 互斥事件
1.4.4 对立事件
1.4.5 赌徒谬误
1.4.6 高级概率
1.5 小结
参考资料
第 2 章 复杂度
好处着想,坏处准备
2.1 时间计算
理解增长
2.2 大 O 符号
2.3 指数
2.4 内存计算
2.5 小结
参考资料
第 3 章 策略
3.1 迭代
嵌套循环与幂集
3.2 递归
递归与迭代
3.3 蛮力法
3.4 回溯法
3.5 启发法
3.5.1 贪心法
3.5.2 利用贪心法求解电网问题
3.6 分治法
3.6.1 利用分治法求解排序问题
3.6.2 利用分治法求解最佳交易问题
3.6.3 利用分治法求解背包问题
3.7 动态规划
3.7.1 利用记忆化求解斐波那契数
3.7.2 利用记忆化求解背包问题
3.7.3 利用自底向上法求解最佳交易问题
3.8 分支定界法
3.8.1 上界与下界
3.8.2 背包问题中的上界与下界
3.9 小结
参考资料
第 4 章 数据
抽象
数据类型
4.1 抽象数据类型
使用ADT的优点
4.2 常见抽象
4.2.1 基本数据类型
4.2.2 栈
4.2.3 队列
4.2.4 优先队列
4.2.5 列表
4.2.6 排序列表
4.2.7 映射
4.2.8 集合
4.3 数据结构
4.3.1 数组
4.3.2 链表
4.3.3 双向链表
4.3.4 数组与链表的比较
4.3.5 树
4.3.6 二叉查找树
4.3.7 二叉堆
4.3.8 图
4.3.9 散列表
4.4 小结
参考资料
第 5 章 算法
5.1 排序
5.2 搜索
5.3 图
5.3.1 图的搜索
5.3.2 图着色
5.3.3 寻路
5.3.4 PageRank
5.4 运筹学
5.4.1 线性最优化问题
5.4.2 网络流问题
5.5 小结
参考资料
第 6 章 数据库
6.1 关系数据库
6.1.1 关系
6.1.2 模式迁移
6.1.3 SQL
6.1.4 索引
6.1.5 事务
6.2 非关系数据库
6.2.1 文档存储
6.2.2 键值对存储
6.2.3 图数据库
6.2.4 大数据
6.2.5 SQL与NoSQL的比较
6.3 分布式数据库
6.3.1 单主机复制
6.3.2 多主机复制
6.3.3 分片
6.3.4 数据一致性
6.4 地理数据库
6.5 序列化格式
6.6 小结
参考资料
第 7 章 计算机
7.1 体系结构
7.1.1 存储器
7.1.2 CPU
7.2 编译器
7.2.1 操作系统
7.2.2 编译优化
7.2.3 脚本语言
7.2.4 反汇编与逆向工程
7.2.5 开源软件
7.3 存储器层次结构
7.3.1 处理器与存储器之间的鸿沟
7.3.2 时间局部性与空间局部性
7.3.3 一级缓存
7.3.4 二级缓存
7.3.5 第一级存储器与第二级存储器
7.3.6 外部存储器与第三级存储器
7.3.7 存储技术的发展趋势
7.4 小结
参考资料
第 8 章 程序设计
8.1 语言学
8.1.1 值
8.1.2 表达式
8.1.3 语句
8.2 变量
8.2.1 变量类型
8.2.2 变量作用域
8.3 范式
8.3.1 命令式编程
8.3.2 声明式编程
8.3.3 逻辑编程
8.4 小结
参考资料
附录
I 数字底数
II 高斯的诀窍
III 集合
IV Kadane 算法
结语
后记
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜