首页>参考读物>计算机科学与技术>综合

零基础学算法
作者 : 戴艳 等编著
丛书名 : 零基础学编程
出版日期 : 2009-12-10
ISBN : 978-7-111-28404-8
定价 : 60.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 486
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书分为两篇,第一篇用5章的篇幅介绍了算法和数据结构的基础知识,包括基础算法思想、简单数据结构、复杂数据结构、排序和查找算法等内容;第二篇用4章的篇幅介绍了用数据结构解决实际问题的相关程序,包括解决数学问题、数据结构问题、算法经典问题等内容,最后一章介绍了信息学奥赛部分试题的程序。

图书特色

零基础学算法
戴 艳 等编著
19.5小时多媒体视频讲解
通俗易懂:从日常生活中的例子入手,引领读者理解算法和数据结构
实例丰富:全书提供了120余个实例阐述常见的算法思想
实例典型:书中实例都是算法的经典题目,对于算法学习有很大的启发作用
C语言实现:书中实例都是用C语言编写,便于大多数读者学习和阅读
视频教学:配有19.5小时多媒体视频进行讲解,学习效果好


本书涵盖内容
基础算法思想:递推算法、枚举算法、递归算法、分治算法、贪婪算法、试探法算法、模拟算法
算法的评价
简单数据结构:线性表、队列、栈
复杂数据结构:树、图
常用算法之排序:冒泡法、快速排序法、简单选择法、堆排序法、直接插入法、希尔法、合并法
排序算法的选择
常用算法之查找:简单查找、二叉排序树、索引、散列表
数学问题:有趣的整数、素数、阶乘、求π的近似值、方程求解、矩阵运算、一元多项式的运算
数据结构问题:约瑟夫环、大整数四则运算、进制转换、括号匹配、中序式转后序式、停车场管理、迷宫求解、LZW压缩的实现
算法经典问题:不定方程、推算、魔术方阵、智力趣题、趣味游戏
信息学奥赛试题:NOIP普及组试题、NOIP提高组试题
Dev-C++开发环境的使用

图书前言

“数据结构”是计算机相关专业的一门核心课程,由于该课程理论性较强,很多人学习起来感觉比较抽象,在学习时感觉掌握了相关知识,但是放开书本便又没有什么印象。其实,数据结构课程的实践性是很强的,不只是要掌握理论上的方法,还必须将这些方法应用到程序设计的实践中去。有鉴于此,作者编写了本书。本书没有侧重介绍各种数据结构的原理,而是重点介绍各种数据结构的实现方法,并给出了相应的实现程序代码。
  本书所有程序都是在Dev-C++开发环境中编写而成的,本书附录中简单介绍了该开发环境的使用方法。
本书内容
  全书分两篇共9章,第1~5章介绍常用算法和数据结构的相应代码,第6~8章介绍使用数据结构和算法解决一些经典问题的程序,第9章介绍信息学奥赛部分试题的解题代码。
各章内容如下:
  第1章介绍一些基础算法的使用,如递推算法、枚举(穷举)算法、递归算法、分治算法、贪婪算法、试探算法、模拟算法等的算法思路,并用相应的实例代码演示这些算法的具体实现方法。
  第2章介绍简单数据结构的实现,主要有线性表、队列、栈这三种简单数据结构的相关操作代码和实例。
  第3章介绍复杂数据结构的实现,主要有二叉树和图这两种数据结构的相关操作代码,并介绍赫夫曼树、图的最小生成树、最短路径等相关代码。
  第4章介绍常见的排序算法,包括冒泡排序法、快速排序法、简单选择排序法、堆排序法、直接插入排序法、希尔排序法、合并排序法等常见排序方法的原理及实现代码。
  第5章介绍常见查找算法,包括顺序查找、折半查找、二叉排序树、索引查找、散列表等内容。
  第6章介绍通过数据结构解决常见数学问题的内容,包括计算完数、亲密数、水仙花数,计算素数、哥德巴赫猜想,计算阶乘,求p的近似值,方程求解,矩阵运算,一元多项式运算等内容。
  第7章介绍解决经典数据结构问题的内容,包括约瑟夫环、大整数四则运算、进制转换、括号匹配、中序式转后序式、停车场管理、迷宫求解、LZW压缩的实现等内容。
  第8章介绍解决经典算法问题的内容,包括百钱买百鸡、五家共井、鸡兔同笼、猴子吃桃、舍罕王的赏赐、魔术方阵、汉诺塔、背包问题、马踏棋盘、八皇后等经典算法问题的求解代码,最后还介绍了一些趣味游戏的代码。
  第9章介绍信息学奥赛部分试题的解题过程及对应的参考程序。
本书特点
  q 由浅入深:本书从日常生活中常见的实例入手,引领读者进入算法和数据结构的抽象世界。
  q 简单易学:由于数据结构、算法的知识比较抽象,使许多读者望而却步。本书在编写过程中,尽量使用读者容易理解的、简单的语言来描述算法和数据结构,对于复杂一些的内容,也是以图、表等形式介绍其原理,使读者能很快理解相关知识。
  q 详细的代码:为了便于读者理解相应的知识点,本书对每一个知识点都提供了完整、详细的代码,读者可通过阅读代码,并上机调试来逐步体会、理解相应的知识点。
本书适合的读者
  本书所有代码都是用C语言编写的,因此,要求读者首先对C语言的基本语法有所了解。本书适用于如下读者:
  q 程序设计初学者。
  q 大中专院校学生。
  q 大中专院校教师。
  q 信息学奥赛选手。
  q 计算机爱好者。
本书作者
  本书由戴艳主笔编写,同时参与编写和资料整理的有刘亮亮、丁士锋、何涛发、陈杰、黄曦、罗嘉、段春江、韩红宇、李嵩峰、莫光胜、王天国、李蓉、吴荣、宋祥亮、刘宇、吕晓鹏、王大伟、吴小平、张卫忠、施佳鹏、王嘉、吴雪、阳婷、张秀妍、王江、王志永、杨红、郑维龙、王松、张文。
  由于本书需要编写的代码很多,许多问题也存在多种求解,限于篇幅,也由于编者水平和学识有限,不能全部列出。本书提供的源程序在Dev-C++环境中全部调试通过。
  尽管编者竭尽全力,但百密一疏,书中难免有疏漏之处,敬请广大读者朋友批评指正,并多多提出宝贵意见。
编 者
2009年11月

上架指导

计算机\程序设计

封底文字

面向大众最初级的电脑学习用户
以生活以及工作中实际应用为主线布局
以图析文、一步一图、便于学习
多媒体视频辅助教学

作者简介

戴艳 等编著:暂无简介

图书目录

出版说明
前言
第一篇  算法与数据结构基础
第1章 基础算法思想 1
1.1 编程的灵魂:数据结构+算法 1
1.2 算法的作用 2
1.2.1 概述 2
1.2.2 实例:看商品猜价格 2
1.3 递推算法思想 5
1.3.1 算法思路 5
1.3.2 顺推实例:斐波那契数列 5
1.3.3 逆推实例:该存多少钱 7
1.4 枚举算法思想 8
1.4.1 算法思路 9
1.4.2 实例:填数游戏 9
1.4.3 实例:填运算符 10
1.5 递归算法思想 13
1.5.1 算法思路 13
1.5.2 实例:求阶乘 14
1.5.3 实例:数制转换 16
1.6 分治算法思想 17
1.6.1 算法思路 17
1.6.2 实例:乒乓球比赛赛程安排 18
1.7 贪婪算法思想 21
1.7.1 算法思路 22
1.7.2 实例:换零钱 22
1.8 试探法算法思想 24
1.8.1 算法思路 24
1.8.2 实例:生成彩票号码组合 25
1.9 模拟算法 27
1.9.1 算法思路 28
1.9.2 实例:猜数游戏 28
1.9.3 实例:模拟掷骰子游戏 29
1.10 算法的评价 30
1.10.1 算法评价原则 30
1.10.2 算法的效率 30
第2章 简单数据结构 32
2.1 最简单的结构:线性表 32
2.1.1 什么叫线性表 32
2.1.2 操作顺序表 33
2.1.3 操作链表 40
2.1.4 实例:用链表制作通信录 49
2.2 先进先出结构:队列 53
2.2.1 什么是队列 53
2.2.2 操作队列 53
2.2.3 循环队列的操作 56
2.2.4 实例:银行排号程序 59
2.3 后进先出结构:栈 61
2.3.1 什么是栈 61
2.3.2 操作栈 62
2.3.3 实例:算术表达式求值 66
第3章 复杂数据结构 74
3.1 层次关系结构:树 74
3.1.1 树的概念 74
3.1.2 二叉树的概念 75
3.1.3 二叉树的存储 77
3.1.4 操作二叉树 79
3.1.5 遍历二叉树 82
3.1.6 测试二叉树 86
3.1.7 线索二叉树 89
3.1.8 最优二叉树(赫夫曼树) 96
3.2 网状关系:图 105
3.2.1 图的定义和基本术语 106
3.2.2 图的存储 109
3.2.3 创建图 112
3.2.4 图的遍历 117
3.2.5 最小生成树 121
3.2.6 最短路径 126
第4章 常用算法—排序 131
4.1 排序概述 131
4.1.1 排序算法分类 131
4.1.2 数据准备 132
4.2 冒泡排序法 133
4.2.1 算法描述 133
4.2.2 改进的冒泡排序法 135
4.3 快速排序法 137
4.3.1 算法描述 137
4.3.2 算法实现 138
4.4 简单选择排序法 140
4.5 堆排序法 141
4.5.1 算法描述 141
4.5.2 算法实现 143
4.6 直接插入排序法 146
4.6.1 算法描述 146
4.6.2 算法实现 147
4.7 希尔排序法 148
4.7.1 算法描述 148
4.7.2 算法实现 149
4.8 合并排序法 150
4.8.1 算法描述 151
4.8.2 算法实现 152
4.9 排序算法的选择 155
4.9.1 选择基准 155
4.9.2 各种排序算法的优缺点 156
第5章 常用算法—查找 157
5.1 查找的基本概念 157
5.2 简单查找 158
5.2.1 顺序查找 158
5.2.2 折半查找 160
5.3 二叉排序树 163
5.3.1 二叉排序树的定义 163
5.3.2 插入结点 163
5.3.3 查找结点 166
5.3.4 删除结点 167
5.4 索引查找 171
5.4.1 索引的概念 171
5.4.2 索引查找算法 173
5.5 散列表 177
5.5.1 散列表概述 177
5.5.2 构造散列函数 178
5.5.3 处理冲突 180
5.5.4 创建和查找散列表 181
第二篇 用数据结构解决实际问题
第6章 数学问题 185
6.1 有趣的整数 185
6.1.1 完数 185
6.1.2 亲密数 187
6.1.3 水仙花数 189
6.1.4 自守数 190
6.1.5 最大公约数和最小公倍数 191
6.2 素数 194
6.2.1 求素数 194
6.2.2 回文素数 197
6.2.3 哥德巴赫猜想 200
6.3 阶乘 203
6.3.1 用递归计算阶乘 204
6.3.2 大数阶乘 204
6.4 求p的近似值 208
6.4.1 概率法 209
6.4.2 割圆法 210
6.4.3 公式法 211
6.4.4 计算任意位数的p 213
6.5 方程求解 216
6.5.1 高斯消元法解线性方程组 216
6.5.2 二分法解非线性方程 221
6.5.3 牛顿迭代法解非线性方程 222
6.6 矩阵的运算 224
6.6.1 矩阵加法和乘法运算 225
6.6.2 多维矩阵转一维矩阵 227
6.6.3 逆矩阵 229
6.6.4 稀疏矩阵 233
6.7 一元多项式的运算 235
6.7.1 多项式加法 236
6.7.2 多项式减法 240
第7章 数据结构问题 245
7.1 约瑟夫环 245
7.2 大整数四则运算 247
7.2.1 使用数组进行大整数运算 247
7.2.2 使用链表进行大整数运算 260
7.3 进制转换 267
7.3.1 进制转换的分析 267
7.3.2 进制转换实现代码 268
7.4 括号匹配 272
7.5 中序表达式转后序表达式 275
7.5.1 后序表达式 275
7.5.2 算法实现 276
7.5.3 后序表达式求值 279
7.6 停车场管理 282
7.6.1 问题分析 282
7.6.2 算法实现 282
7.7 迷宫求解 292
7.7.1 迷宫问题 292
7.7.2 算法实现 293
7.7.3 求迷宫所有路径 300
7.8 LZW压缩的实现 304
7.8.1 LZW的相关概念 304
7.8.2 LZW压缩过程 304
7.8.3 LZW压缩的实现 306
7.8.4 LZW解压缩过程 310
7.8.5  解压缩函数 311
7.8.6 集成压缩和解压缩功能 314
第8章 算法经典问题 316
8.1 不定方程问题 316
8.1.1 百钱买百鸡 316
8.1.2 存钱利息最大化 318
8.1.3 求阶梯数 321
8.1.4 五家共井 322
8.1.5 鸡兔同笼 323
8.2 推算问题 324
8.2.1 猴子吃桃 324
8.2.2 舍罕王的赏赐 325
8.3 魔术方阵 327
8.3.1 简捷连续填数法 327
8.3.2 双向翻转法 330
8.3.3 井字调整法 332
8.4 智力趣题 336
8.4.1 汉诺塔 336
8.4.2 背包问题 340
8.4.3 马踏棋盘 347
8.4.4 八皇后问题 357
8.4.5 青蛙过河 362
8.4.6 三色旗 365
8.5 趣味游戏 368
8.5.1 取石子游戏 368
8.5.2 生命游戏 371
8.5.3 洗扑克牌 376
8.5.4 黑白棋 379
8.5.5 凑24点游戏 388
8.5.6 10点半游戏 394
第9章 信息学奥赛试题精解 399
9.1 NOIP普及组试题精解 399
9.1.1 求级数之和 399
9.1.2 求素数组合 402
9.1.3 计算卒的路线 405
9.1.4 检查校验码 407
9.1.5 排座位 409
9.1.6 击鼓传花 413
9.1.7 绘制模拟立体图 414
9.1.8 公路上的树 419
9.1.9 采药 420
9.1.10 求等价表达式 422
9.1.11 不开心的龙龙 426
9.1.12 孙悟空摘桃 428
9.1.13 FBI树 431
9.1.14 外星人的语言 433
9.2 NOIP提高组试题精解 438
9.2.1 砝码称重 438
9.2.2 阿明的零花钱 439
9.2.3 购买年货 442
9.2.4 调整队形 445
9.2.5 均分纸牌 448
9.2.6 最小矩形面积 450
9.2.7 低价买股票 458
9.2.8 数字金字塔 461
9.2.9 方格取数 463
9.2.10 导弹防御系统 467
附录 Dev-C++开发环境的使用 470

教学资源推荐
作者: 刘凤岐 编著
作者: 中国计算机学会 主编
作者: 王立柱 编著
作者: 试题研究编写组
参考读物推荐
作者: (澳)Larry L.Constantine;Lucy A.D.Lockwood 著
作者: 软考新大纲研究组 编著