-
内容大纲
本书系统介绍程序设计中常用的基础算法及典型案例,包括排序算法、递归算法、数论基础、组合数学基础、贪心算法、分治算法、动态规划算法和回溯算法等内容。
全书以图文并茂的方式讲解各种基础算法的分析过程,侧重于基础算法的深入理解与实践,配有大量图表辅助算法的分析过程,适用于有一定程序设计基础、尚未学习数据结构且对算法分析与设计感兴趣的算法初学者。
本书各章节配有典型案例和大量图表,既便于教师课堂讲授,也适合读者自学,可作为高等院校“程序设计基础”课程的延伸和“算法分析与设计”课程的入门教材,也可供程序设计竞赛初学者参考。 -
作者介绍
英昌盛,男,1979年生,博士,吉林师范大学计算机学院系主任,主要研究方向为云计算及算法分析与设计。教学及科研成果:发表SCI论文2篇,EI论文1篇;主编教材1部,参编教材3部;主持及参与省教改项目2项、省职业与成人教育项目1项、教育部协同育人项目4项。 -
目录
第1章 环境搭建
1.1 Microsoft Visual C++2010学习版使用
1.1.1 Visual C++2010学习版安装
1.1.2 创建、编辑、编译和运行项目
1.1.3 为什么缺少很多选项
1.1.4 为什么一闪而过
1.1.5 其他配置选项
1.2 Code::Blocks的使用
1.2.1 安装Code::Blocks
1.2.2 创建项目和编辑源代码
1.2.3 调试
第2章 排序算法
2.1 冒泡排序
2.1.1 冒泡排序的基本思想
2.1.2 冒泡排序过程分析
2.1.3 冒泡排序代码分析
2.2 选择排序
2.2.1 选择排序的基本思想
2.2.2 选择排序过程分析
2.2.3 选择排序代码分析
2.3 插入排序
2.3.1 插入排序的基本思想
2.3.2 插入排序过程分析
2.3.3 插入排序代码分析
2.4 计数排序
2.4.1 计数排序的基本思想
2.4.2 计数排序过程分析
2.4.3 计数排序代码分析
2.4.4 统计句子中字母出现次数
第3章 递归算法
3.1 汉诺塔问题
3.1.1 汉诺塔问题解题思路分析
3.1.2 汉诺塔问题代码分析
3.2 全排列问题
3.2.1 无重复元素的全排列
3.2.2 有重复元素的全排列
3.3 因数分解问题
3.3.1 因子递增方式递归求解
3.3.2 子问题分解方式递归求解
3.3.3 分解因数问题代码分析
3.4 分形图形
3.4.1 盒分形思路分析
3.4.2 盒分形代码分析
第4章 数论基础
4.1 余数和最大公约数
4.1.1 余数
4.1.2 最大公约数
4.1.3 欧几里得算法
4.2 素数问题
4.2.1 素数的概念
4.2.2 素数相关的定理
4.2.3 筛选法求素数
4.3 同余问题
4.3.1 同余及其性质
4.3.2 线性同余
第5章 组合数学基础
5.1 排列生成算法
5.1.1 序数生成法
5.1.2 字典序生成法
5.1.3 “火星人”问题
5.2 组合生成算法
5.2.1 基于字典序的组合生成算法
5.2.2 基于格雷码的组合生成算法
第6章 贪心算法
6.1 结构体
6.2 贪心算法概述
6.3 活动时间安排
6.3.1 活动安排过程分析
6.3.2 活动安排代码分析
6.4 最优装载问题
6.4.1 最优装载问题过程分析
6.4.2 最优装载问题代码分析
6.5 可切割背包问题
6.5.1 可切割背包问题分析
6.5.2 可切割背包代码分析
6.6 删数问题
6.7 操作系统内存分配
6.7.1 First Fit内存分配
6.7.2 Best Fit内存分配
6.7.3 Worst Fit内存分配
第7章 分治算法
7.1 快速排序
7.1.1 快速排序过程分析
7.1.2 快速排序代码分析
7.2 归并排序
7.2.1 归并排序过程分析
7.2.2 归并排序代码分析
7.3 二分查找
7.3.1 二分查找过程分析
7.3.2 二分查找代码分析
7.4 循环赛
7.4.1 2k循环赛日程表
7.4.2 奇偶循环赛日程表
7.5 大整数乘法
7.5.1 大整数乘法过程分析
7.5.2 大整数乘法代码分析
第8章 动态规划算法
8.1 数字三角形
8.1.1 使用朴素递归求解数字三角形问题
8.1.2 使用动态规划算法求解数字三角形问题
8.2 最长公共子序列
8.2.1 最长公共子序列问题过程分析
8.2.2 最长公共子序列问题代码分析
8.3 编辑距离
8.3.1 编辑距离的正向生成
8.3.2 操作序列的逆向回溯
8.4 0-1背包问题(一)
8.4.1 0-1背包问题过程分析
8.4.2 0-1背包问题代码分析
8.5 石子合并
8.5.1 石子合并问题过程分析
8.5.2 石子合并问题代码分析
第9章 回溯算法
9.1 八皇后问题
9.1.1 八皇后问题过程分析
9.1.2 八皇后问题代码分析
9.2 子集和问题
9.2.1 子集和问题过程分析
9.2.2 子集和问题代码分析
9.3 0-1背包问题(二)
9.3.1 0-1背包问题过程分析
9.3.2 0-1背包问题代码分析
9.4 装载问题
9.4.1 装载问题过程分析
9.4.2 装载问题代码分析
9.5 任务分配问题
9.5.1 任务分配问题过程分析
9.5.2 任务分配问题代码分析
参考文献
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...