注册 登录 进入教材巡展 进入在线书城
#
  • #
  • #

出版时间:2018年4月

出版社:高等教育出版社

以下为《程序设计算法基础》的配套数字资源,这些资源在您购买图书后将免费附送给您:
  • 高等教育出版社
  • 9787040491920
  • 1
  • 239548
  • 平装
  • 16开
  • 2018年4月
  • 370
  • 285
  • 工学
  • 软件工程
内容简介

这是一本面向计算机专业或者计算机爱好者的算法教材,旨在将更多对程序算法感兴趣,但又苦于无从入手的同学带进算法的大门。全书共分11 章,第1 章介绍Linux 操作系统与C++编程环境,第2 章简单介绍初级算法,第3 章介绍基础数据结构,第4 章介绍枚举、递推、递归、贪心、分治、哈希和二分等基础算法设计,第5 章介绍简单排序算法,第6 章介绍图论的相关知识,第7 章介绍并查集和线段树两种高级数据结构,第8章介绍KMP、字典树、Z 算法和马拉车算法等处理字符串的数据结构,第9 章介绍深度优先搜索、宽度优先搜索、双向宽度优先搜索、A*搜索和一些剪枝常用的策略,第10 章介绍初等数论,第11 章介绍动态规划,重点讲述背包问题。

本书可作为高等学校计算机专业、软件工程专业教学用书,以及ACM大赛参考用书。

目录

 前辅文
 第1 章 Linux 操作系统与编程环境
  1.1 Linux 基础
  1.2 编译器
   1.2.1 Code::Blocks 安装
   1.2.2 Code::Blocks 编程环境配置
   1.2.3 Code::Blocks 编写程序
  1.3 编译C++文件
  1.4 ACM 国际大学生程序设计竞赛
  1.5 自动评测系统
   1.5.1 评测系统反馈
   1.5.2 国内知名评测系统
 第2 章 算法入门
  2.1 快速幂取模算法
   2.1.1 模运算
   2.1.2 幂取模的计算
   2.1.3 例题讲解
  2.2 算法
   2.2.1 算法的定义
   2.2.2 学习算法的意义
   2.2.3 算法复杂度分析
 第3 章 基本数据结构
  3.1 基本线性数据结构
   3.1.1 线性表
   3.1.2 栈
   3.1.3 队列
   3.1.4 例题讲解
  3.2 二叉搜索树
   3.2.1 二叉搜索树的定义
   3.2.2 二叉搜索树的实现
  3.3 C++标准模板库
   3.3.1 vector
   3.3.2 set
   3.3.3 map
   3.3.4 priority_queue
   3.3.5 例题讲解
  3.4 练习题
 第4 章 基本算法设计
  4.1 枚举
   4.1.1 枚举算法的定义
   4.1.2 枚举算法的解题过程
   4.1.3 枚举算法的特点
   4.1.4 例题讲解
  4.2 递推
   4.2.1 递推的概念
   4.2.2 递推与数列
   4.2.3 斐波那契数列
   4.2.4 递推的两种顺序
   4.2.5 例题讲解
  4.3 递归
   4.3.1 递归的定义
   4.3.2 递归的要求
   4.3.3 递归与递推
   4.3.4 例题讲解
  4.4 贪心算法
   4.4.1 贪心算法的概念
   4.4.2 贪心算法的原理
   4.4.3 例题讲解
  4.5 分治算法
   4.5.1 分治的基本思想
   4.5.2 分治的一般解题步骤
   4.5.3 分治的特点
   4.5.4 归并排序
   4.5.5 例题讲解
  4.6 模拟
   4.6.1 高精度计算
   4.6.2 矩阵运算
   4.6.3 例题讲解
  4.7 哈希
   4.7.1 直接寻址表
   4.7.2 哈希表
   4.7.3 例题讲解
  4.8 二分法
   4.8.1 二分查找
   4.8.2 二分逼近
   4.8.3 求解性问题的二分策略
   4.8.4 例题讲解
  4.9 练习题
 第5 章 排序算法
  5.1 基于比较的排序算法
   5.1.1 简单排序
   5.1.2 快速排序
   5.1.3 限制和优势
  5.2 基于统计的排序算法
   5.2.1 计数排序
   5.2.2 基数排序
  5.3 例题讲解
  5.4 练习题
 第6 章 图的基本算法
  6.1 图的定义及存储方法
   6.1.1 图的定义
   6.1.2 有向图和无向图
   6.1.3 路径与连通
   6.1.4 图的存储结构
  6.2 图的遍历及拓扑排序
   6.2.1 图的深度优先遍历
   6.2.2 图的宽度优先遍历
   6.2.3 图的拓扑排序
   6.2.4 例题讲解
  6.3 最小生成树
   6.3.1 Kruskal 算法
   6.3.2 Prim 算法
  6.4 单源最短路径
   6.4.1 Dijkstra 算法
   6.4.2 Bellman-Ford 算法
   6.4.3 SPFA 算法
   6.4.4 差分约束系统
   6.4.5 例题讲解
  6.5 每对顶点的最短路径
   6.5.1 最短路径和矩阵乘法
   6.5.2 Floyd 算法
   6.5.3 例题讲解
  6.6 练习题
 第7 章 并查集和线段树
  7.1 并查集
   7.1.1 并查集的基本概念
   7.1.2 并查集的操作
   7.1.3 例题讲解
  7.2 线段树
   7.2.1 线段树的概念与性质
   7.2.2 线段树的基本操作
   7.2.3 例题讲解
  7.3 练习题
 第8 章 字符串问题
  8.1 Trie 树
   8.1.1 Trie 树的基本概念
   8.1.2 Trie 树的操作
   8.1.3 例题讲解
  8.2 KMP 算法
   8.2.1 BF 算法简介
   8.2.2 KMP 算法原理和实现
   8.2.3 例题讲解
  8.3 Z 算法与Manacher 算法
   8.3.1 Z 算法
   8.3.2 Manacher 算法
   8.3.3 例题讲解
  8.4 练习题
 第9 章 搜索
  9.1 状态空间和状态空间搜索
  9.2 宽度优先搜索
   9.2.1 基本概念
   9.2.2 算法分析与实现
   9.2.3 例题讲解
  9.3 深度优先搜索
   9.3.1 基本概念
   9.3.2 算法分析与实现
   9.3.3 例题讲解
  9.4 双向宽度优先搜索
  9.5 A*搜索
   9.5.1 基本概念
   9.5.2 算法分析与实现
   9.5.3 例题讲解
  9.6 剪枝
   9.6.1 基本概念
   9.6.2 可行性剪枝
   9.6.3 最优性剪枝
   9.6.4 例题讲解
  9.7 练习题
 第10 章 初等数论
  10.1 初等数论简介
  10.2 最大公约数和扩展欧几里得算法
   10.2.1 欧几里得算法
   10.2.2 扩展欧几里得算法
   10.2.3 例题讲解
  10.3 线性方程与同余方程
   10.3.1 线性方程
   10.3.2 例题讲解
  10.4 乘法逆元
   10.4.1 整数集合下逆元的求解方法
   10.4.2 例题讲解
  10.5 中国剩余定理
   10.5.1 中国剩余定理
   10.5.2 中国剩余定理的扩展
  10.6 质数筛法与质因数分解
   10.6.1 埃拉托斯特尼(Eratosthenes)筛法
   10.6.2 欧拉(Euler)筛法
   10.6.3 质因数分解
  10.7 欧拉函数
   10.7.1 欧拉函数与欧拉定理
   10.7.2 例题讲解
  10.8 原根与剩余系
  10.9 指数方程与高次同余方程
   10.9.1 指数方程
   10.9.2 高次同余方程
   10.9.3 例题讲解
  10.10 高斯消元
  10.11 练习题
 第11 章 动态规划入门
  11.1 动态规划概述
   11.1.1 数字三角形
   11.1.2 组合数
   11.1.3 动态规划方法求解的问题类型
   11.1.4 例题讲解
  11.2 背包问题
   11.2.1 0-1 背包
   11.2.2 完全背包
   11.2.3 多重背包
  11.3 经典动态规划问题
   11.3.1 最长上升子序列
   11.3.2 最长公共子序列
   11.3.3 矩阵链相乘问题
  11.4 练习题
 参考文献