算法基础

算法基础

作者:罗德.斯蒂芬斯

出版社:机械工业出版社

出版年:2017-05-01

评分:5分

ISBN:9787111560920

所属分类:教辅教材

书刊介绍

算法基础 内容简介

本书的撰写有机结合了理论与实现,在讲授算法理论的同时也通过C#实例讲授了算法的实现。通过描述并分析一些重要的传统算法,从而理解它们并且了解每一个算法在什么时候使用较为适合,通俗易懂地教授读者创造自己的算法的技巧。这些技巧让读者能从不同的角度看问题,建立有用的方法工具,从而解决实际问题,抑或从容面对面试难题。本书适合当作“算法设计与分析”和“数据结构与算法”两门课程的教材或参考书使用。特别是本书还融入和面试相关的内容,因此适合作为算法相关工作面试的参考资料。

算法基础 本书特色

本书的撰写有机结合了理论与实现,在讲授算法理论的同时也通过C#实例讲授了算法的实现。通过描述并分析一些重要的传统算法,从而理解它们并且了解每一个算法在什么时候使用较为适合,通俗易懂地教授读者创造自己的算法的技巧。这些技巧让读者能从不同的角度看问题,建立有用的方法工具,从而解决实际问题,抑或从容面对面试难题。本书适合当作“算法设计与分析”和“数据结构与算法”两门课程的教材或参考书使用。特别是本书还融入和面试相关的内容,因此适合作为算法相关工作面试的参考资料。

算法基础 目录

目录
Essential Algorithms:A Practical Approach to Computer Algorithms
出版者的话
译者序
前言
第1章算法基础知识1
1.1方法1
1.2算法和数据结构2
1.3伪代码2
1.4算法的特点4
1.4.1大O符号5
1.4.2常见的运行时间函数7
1.4.3可视化函数12
1.5实际因素12
1.6总结13
练习13
第2章数值算法16
2.1随机化数据16
2.1.1随机数生成16
2.1.2随机化数组20
2.1.3生成不均匀分布21
2.2寻找*大公约数21
2.3求幂运算23
2.4有关素数的运算24
2.4.1寻找素数因子24
2.4.2寻找素数26
2.4.3素性测试27
2.5进行数值积分28
2.5.1矩形规则28
2.5.2梯形规则29
2.5.3自适应求积30
2.5.4蒙特卡罗积分32
2.6查找零32
2.7总结34
练习34
第3章链表36
3.1基本概念36
3.2单链表37
3.2.1遍历链表37
3.2.2查找单元格37
3.2.3使用哨兵38
3.2.4在开头添加单元格39
3.2.5在结尾添加单元格40
3.2.6在某个单元格后插入单元格40
3.2.7删除单元格41
3.3双向链表42
3.4有序链表43
3.5链表算法44
3.5.1复制链表44
3.5.2链表的插入排序45
3.6链表的选择排序46
3.7多线程链表47
3.8循环链表48
3.8.1标记单元格49
3.8.2使用散列表50
3.8.3链表回溯51
3.8.4反转链表51
3.8.5乌龟和兔子53
3.8.6双向链表中的循环问题55
3.9总结55
练习55
第4章数组57
4.1基本概念57
4.2一维数组58
4.2.1查找元素58
4.2.2查找*大值、*小值、平均值59
4.2.3插入元素60
4.2.4移除元素61
4.3非零下界61
4.3.1二维数组61
4.3.2多维数组62
4.4三角形数组64
4.5稀疏数组66
4.5.1找到行或列67
4.5.2获取值68
4.5.3设置值69
4.5.4删除值71
4.6矩阵72
4.7总结74
练习74
第5章栈和队列76
5.1栈76
5.1.1栈的链表实现76
5.1.2栈的数组实现77
5.1.3双向栈78
5.1.4栈的算法79
5.2队列84
5.2.1队列的链表实现84
5.2.2队列的数组实现85
5.2.3专用队列86
5.3总结87
练习87
第6章排序89
6.1时间复杂度为O(N2)的算法89
6.1.1数组中的插入排序89
6.1.2数组中的选择排序90
6.1.3冒泡排序91
6.2时间复杂度为O(N log N)的算法93
6.2.1堆排序93
6.2.2快速排序98
6.2.3归并排序103
6.3时间复杂度为亚O(N log N)的算法105
6.3.1计数排序106
6.3.2桶排序107
6.4总结108
练习108
第7章搜索110
7.1线性搜索110
7.2二分搜索111
7.3插值搜索112
7.4总结113
练习113
第8章散列表114
8.1散列表的基础知识114
8.2链115
8.3开放寻址116
8.3.1删除记录117
8.3.2线性探测118
8.3.3二次探测119
8.3.4伪随机探测120
8.3.5双散列120
8.3.6有序散列121
8.4总结122
练习123
第9章递归125
9.1基础算法125
9.1.1阶乘125
9.1.2斐波那契数127
9.1.3汉诺塔128
9.2图算法130
9.2.1科赫曲线130
9.2.2希尔伯特曲线131
9.2.3谢尔宾斯基曲线132
9.2.4垫片134
9.3回溯算法134
9.3.1八皇后问题136
9.3.2骑士巡游138
9.4选择与排列140
9.4.1循环选择140
9.4.2重复选择141
9.4.3不重复选择142
9.4.4元素可重复的排列143
9.4.5元素不重复的排列144
9.5消去递归145
9.5.1尾递归的消除145
9.5.2存储中间值146
9.5.3一般递归的消除148
9.6总结150
练习151
第10章树153
10.1树的术语153
10.2二叉树属性155
10.3树的表示157
10.3.1建立树的通用方法157
10.3.2构造完全树159
10.4树的遍历160
10.4.1前序遍历160
10.4.2中序遍历162
10.4.3后序遍历163
10.4.4深度优先遍历164
10.4.5遍历的运行时间164
10.5排序树 165
10.5.1添加结点165
10.5.2查找结点166
10.5.3删除结点167
10.6线索树168
10.6.1建立线索树169
10.6.2使用线索树171
10.7特化树算法172
10.7.1动物游戏172
10.7.2表达式求值173
10.7.3四叉树175
10.7.4Trie树179
10.8总结182
练习182
第11章平衡树185
11.1AVL树185
11.1.1添加值185
11.1.2删除值187
11.22-3树187
11.2.1添加值188
11.2.2删除值189
11.3B树191
11.3.1添加值191
11.3.2删除值192
11.4平衡树变体193
11.4.1自上而下的B树193
11.4.2B 树193
11.5总结194
练习195
第12章决策树196
12.1游戏搜索树196
12.1.1极小化极大值算法197
12.1.2初始步骤和反应199
12.1.3启发式游戏树200
12.2搜索通用决策树201
12.2.1优化问题202
12.2.2穷举搜索202
12.2.3分支界限203
12.2.4决策树的启发式搜索205
12.2.5其他决策树问题209
12.3总结212
练习195
第13章基本网络算法214
13.1网络术语214
13.2

算法基础 作者简介

Rod Stephens初是一名数学家,但是在麻省理工学院进修时,他喜欢上了算法和编程,并且从此以后走上了专业编程的道路。作为一位获奖导师,他经常在各种技术大会上讲演,并已写了26本技术图书,被翻译为多国语言出版。

相关推荐

微信二维码