一本算法设计的好书
来源:互联网 发布:如何利用阿里云赚钱 编辑:程序博客网 时间:2024/05/02 01:05
[算法日志 ]
Introduction to the design and analysis of algorithms, by Anany Levitin, Villanova Univ., 2003
A new road map of algorithm design techniques:picking up where the traditional classification leaves off, by Anany Levitin, Villanova Univ. 200?
这本书力图按照算法设计技术的内在思想对经典算法进行分类,尤其适合学习了数据结构之后学习,对算法技术有更深的理解。
http://algorithm.cs.nthu.edu.tw/~course/ 采用该书第二版作为教材。
来自Amazon评价:
The book teaches you algorithm design and analysis from a completely different view point. It is entertaining to read and the problems at the end of each chapter are wonderful. I only hope that the author adds nore algorithms in his next edition. Go get it!
Comment | Was this review helpful to you?
Comment | Was this review helpful to you?
Comment | Was this review helpful to you?
Write an online review and share your thoughts with other customers.
Comment | Was this review helpful to you?
Comment | Was this review helpful to you?
acknowledged to be those by Donald Knuth, "The Art of
Computer Programming". Very detailed, and with
voluminous problem sets, they have been the standard
for decades.
Along comes this book with its claim of a different
and complementary classification of the field. The
traditional way is, from a top-down vantage, that at
the highest level, you descend from the root to the
various main problem types. Beneath each problem node
would be subclassifications based on the techniques
used to attack that problem. (I could say "solve", but
that is certainly not the case for some problems.)
This is the most natural classification, because you
often get a problem put in front of you, and you start
from there. Problem-driven.
But what if a method to attack problem A and a method
to attack problem B were very similar? Is there a way
to combine these method nodes? In the problem-driven
tree, not really. So what the author suggests is a
method-driven tree, where problems are descendents of
a method. You regard solutions or research into
problems as instantiations of a particular method.
Sound familiar? You can draw analogies with physics,
if you map the methods into the laws of physics. We
should not follow this too literally. But seen from
this vantage, the author's idea is very reasonable. In
physics, the solutions to a problem are (ideally,
anyway) derived ultimately from the laws of physics.
We should not draw a contrast between the author's
suggestions and the prevailing approach too sharply.
At the research level, a competent analyst should be
aware of different problem areas from which solutions
could be drawn, or to which a solution might be
adapted. As a practical matter, it comes down to the
difference in emphasis for most, rather than a
different worldview.
Nonetheless, this is potentially quite a gem for a
researcher. The author's different emphasis may be the
trigger to solving one of your problems.
一个有意思的现象是,对于brute-force呀,divide-and-conquer呀,dynamic programming呀,这些,老师称之为“算法策略”的名词,该书也未能给出一个恰当的英文术语来描述:technique? strategy ? paradigm? idea when design certain type of algorithms? 不过,作者确实对现有的算法作了很好的分类。
该书的目录:部分
1.1算法的概念
1.2算法问题的求解基础
1.3重要的问题类型
1.4基本数据结构
2.1算法分析的框架
2.2渐进符号和基本效率类型
2.3 非递归算法的数学分析
2.4递归算法的数学分析
2.5例题:Fibonacci数列
2.6算法的经验分析
2.7算法的可视化
3.brute-force
3.1选择排序和冒泡排序
3.2顺序查找和蛮力字符匹配
3.3最近对和凸包convex问题的蛮力算法
3.4穷举查找
4分治法
4.1合并排序
4.2快速排序
4.3折半查找
4.4 二叉树遍历及相关特性
4.5 大整数乘法和Strassen矩阵乘法
5 减治法
5.1 插入排序
5.2 深度有限查找和广度优先查找
5.3 拓扑排序
5.4 生成组合对象的算法
5.5 减常因子算法 reduced constant factor algorithm
5.6 减可变规模算法
6 变治法
6.1预排序
6.2 高斯消去法
6.3 平衡查找树
6.4 堆和堆排序
6.5 H
- 一本算法设计的好书
- 推荐一本关于组件设计的好书
- 一本好书《基于FPGA的系统设计》
- 大话设计模式 一本好书
- 推荐两本设计模式的好书
- 一本好书《编码的奥秘》
- 一本学习.NET的好书
- 一本“由厚变薄”的好书
- UML入门的一本好书
- 一本Java Web开发的好书
- 推荐一本学习Java的好书。
- 给系统管理员的一本好书
- 软件架构的一本好书
- 一本好书《编码的奥秘》
- 一本关于意志力的好书
- 推荐一本Objective C的好书
- 一本了不起的html5好书
- 转 一本好书的几句话
- For my love... Be a heathy gir~
- 刚看完《新上海滩》
- JScript 是 JavaScript 的缩写吗?
- 加快 wine 速度
- 表空间管理A
- 一本算法设计的好书
- 栈和堆的区别
- 生活,人,环境
- 努力一定会成功
- 好想要的多啦A梦手办!!
- 希望妈妈快快好起来
- 曾经参加某公司的一道面试题--ASP.NET中如何防范SQL注入式攻击
- 《我是谁》
- 真是烦死了