出版时间:2010-8 出版社:机械工业出版社 作者:韦斯(Mark Allen Weiss) 页数:511
Tag标签:无
前言
This book describes data structures, methods of organizing large amounts of data,and algorithm analysis, the estimation of the running time of algorithms. As com-puters become faster and faster, the need for programs that can handle large amountsof input becomes more acute. Paradoxically, this requires more careful attention toefficiency, since inefficiencies in programs become most obvious when input sizes arelarge. By analyzing an algorithm before it is actually coded, students can decide if aparticular solution will be feasible. For example, in this text students look at specificproblems and see how careful implementations can reduce the time constraint forlarge amounts of data from 16 years to less than a second. Therefore, no algorithmor data structure is presented without an explanation of its running time. In somecases, minute details that affect the running time of the implementation are explored.Once a solution method is determined, a program must still be written. Ascomputers have become more powerful, the problems they must solve have becomelarger and more complex, requiring development of more intricate programs. Thegoal of this text is to teach students good programming and algorithm analysis skillssimultaneously so that they can develop such programs with the maximum amountof efficiency.This book is suitable for either an advanced data structures (CS7) course ora first-year graduate course in algorithm analysis. Students should have some know-ledge of intermediate programming, including such topics as pointers and recursion,and some background in discrete math.
内容概要
本书曾被评为20世纪顶尖的30部计算机著作之一,作者在数据结构和算法分析方面卓有建树,他的数据结构和算法分析的著作尤其畅销,并受到广泛好评,已被世界500余所大学选作教材。 在本书中,作者精炼并强化了他对算法和数据结构方面创新的处理方法。通过C程序的实现,着重阐述了抽象数据类型的概念,并对算法的效率、性能和运行时间进行了分析。 着重讨论了算法设计技巧。包括贪婪算法、分治算法、动态规划、随机化算法以及回溯算法。系统介绍了当前流行的论题和新的数据结构,如斐波那契堆、斜堆、二项队列、跳跃表和伸展树。详细讨论了摊还分析,考查书中介绍的一些高级数据结构。 增加了高级数据结构及其实现的内容,包括红黑树、自顶向下伸展树、treap树、k-d树、配对堆等。整合了堆排序平均情况分析的一些新结果。
作者简介
Mark Allen Weiss 1987年在普林斯顿大学获得计算机科学博士学位。师 从Roberl Sedgewick,现任美国佛罗里达国际大学计算与信息科学学院教授。他曾担任全美AP(Advanced Placement)考试计算机学科委员会主席。其主要研究方向是数据结构、算法和教育学。
书籍目录
1 Introduction 1.1. What's the Book About? 1.2. Mathematics Review 1.2.1. Exponents 1.2.2. Logarithms 1.2.3. Series 1.2.4. Modular Arithmetic 1.2.5. The P Word 1.3. A Brief Introduction to Recursion Summary Exercises References2 Algorithm Analysis 2.1. Mathematical Background 2.2. Model 2.3. What to Analyze 2.4. Running Time Calculations 2.4.1. A Simple Example 2.4.2. General Rules 2.4.3. Solutions for the Maximum Subsequence Sum Problem 2.4.4. Logarithms in the Running Time 2.4.5. Checking Your Analysis 2.4.6. A Grain of Salt Summary Exercises References……
章节摘录
插图:This example illustrates what we call randomized algorithms. At least onceduring the algorithm, a random number is used to make a decision. The runningtime of the algorithm depends not only on the particular input, but also on therandom numbers that occur.The worst-case running time of a randomized algorithm is almost always thesame as the worst-case running time of the nonrandomized algorithm. The importantdifference is that a good randomized algorithm has no bad inputs, but only badrandom numbers (relative to the particular input). This may seem like only aphilosophical difference, but actually it is quite important, as the following exampleshows.Consider two variants of quicksort. Variant A uses the first element as pivot,while variant B uses a randomly chosen element as pivot. In both cases, the worst-case running time is (N2), because it is possible at each step that the largestelement is chosen as pivot. The difference between these worst cases is that there is aparticular input that can always be presented to variant A to cause the bad runningtime. Variant A will run in (N2) time every single time it is given an already-sortedlist. If variant B is presented with the same input twice, it will have two differentrunning times, depending on what random numbers occur.
编辑推荐
《数据结构与算法分析:C语言描述》:经典原版书库
图书封面
图书标签Tags
无
评论、评分、阅读与下载