-
An Introduction to the Analysis of Algorithms
This book is a thorough overview of the primary techniques and models used in the mathematical analysis of algorithms. The first half of the book draws upon classical mathematical material from discrete mathematics, elementary real analysis, and combinatorics; the second half discusses properties of discrete structures and covers the analysis of a variety of classical sorting, searching, and string processing algorithms. -
算法竞赛入门经典
《算法竞赛入门经典:训练指南》是《算法竞赛入门经典》的重要补充,旨在补充原书中没有涉及或者讲解得不够详细的内容,从而构建一个较完整的知识体系,并且用大量有针对性的题目,让抽象复杂的算法和数学具体化、实用化。《算法竞赛入门经典:训练指南》共6章,分别为算法设计基础、数学基础、实用数据结构、几何问题、图论算法与模型和更多算法专题,全书通过近200道例题深入浅出地介绍了上述领域的各个知识点、经典思维方式以及程序实现的常见方法和技巧,并在章末和附录中给出了丰富的分类习题,供读者查漏补缺和强化学习效果。 -
Hacker's Delight
In Hacker's Delight, Second Edition, Hank Warren once again compiles an irresistible collection of programming hacks: timesaving techniques, algorithms, and tricks that help programmers build more elegant and efficient software, while also gaining deeper insights into their craft. Warren's hacks are eminently practical, but they're also intrinsically interesting, and sometimes unexpected, much like the solution to a great puzzle. They are, in a word, a delight to any programmer who is excited by the opportunity to improve. Extensive additions in this edition include * A new chapter on cyclic redundancy checking (CRC), including routines for the commonly used CRC-32 code * A new chapter on error correcting codes (ECC), including routines for the Hamming code * More coverage of integer division by constants, including methods using only shifts and adds * Computing remainders without computing a quotient * More coverage of population count and counting leading zeros * Array population count * New algorithms for compress and expand * An LRU algorithm * Floating-point to/from integer conversions * Approximate floating-point reciprocal square root routine * A gallery of graphs of discrete functions * Now with exercises and answers -
How to Solve It
This book is the only source that provides comprehensive, current, and correct information on problem solving using modern heuristics. It covers classic methods of optimization, including dynamic programming, the simplex method, and gradient techniques, as well as recent innovations such as simulated annealing, tabu search, and evolutionary computation. Integrated into the discourse is a series of problems and puzzles to challenge the reader. The book is written in a lively, engaging style and is intended for students and practitioners alike. Anyone who reads and understands the material in the book will be armed with the most powerful problem solving tools currently known. This second edition contains two new chapters, one on coevolutionary systems and one on multicriterial decision-making. Also some new puzzles are added and various subchapters are revised. The March 2002 issue of ACMs Computing Reviews identifies a review of "How to Solve It" as the best review they published in 2001. The review is then reprinted in its entirety. Reviewer: H. van Dyke Parunak. Excerpt: Like its predecessor, the new How to Solve It, combines deep mathematical insight with skilled pedagogy. Puzzle lovers will seek out the book for its insightful discussion of many intriguing brain twisters. Students of computational methods will find it an accessible but rigorous introduction to evolutionary algorithms. Teachers will learn from its expositions how to make their own subject matter clearer to their students. Polya would be honored to know that his spirit lives on in the computer age. From the reviews of the second edition: "This is an outstanding book. It takes the reader close to the current knowledge frontier … . The book’s writing style is lively and educational, and this makes it extremely interesting … . is intended for students and practitioners. … is an excellent choice for a course on heuristics … . One of the most comprehensive views … is provided in this book. It is written to be read and understood … . is a must-read and must-have for anyone engaged in the art of problem solving." (Dimitrios Katsaros, Computing Reviews, April, 2005) -
Think Complexity
Dive into Python's advanced possibilities, including algorithm analysis, graphs, scale-free networks, and cellular automata with this in-depth, hands-on guide. Whether you're an intermediate-level Python programmer, or a student of computational modeling, you'll examine data structures, complexity science, and other fascinating topics through a series of exercises, easy-to-understand explanations, and case studies. Think Complexity presents features that make Python such a simple and powerful language. Author Allen Downey provides code to help you get started, along with a solution for each exercise. With this book, you will: Work with graphs and graph algorithms, NumPy arrays and SciPy methods, basic signal processing and Fast Fourier Transform, and hash tables. Discover complexity science, the field that studies abstract models of complex physical systems, including power laws, fractals and pink noise, and Turing machines. Explore the philosophy of science through the models and results in this book about the nature of scientific laws, theory choice, and realism and instrumentalism, and more. -
Large-Scale Inference
We live in a new age for statistical inference, where modern scientific technology such as microarrays and fMRI machines routinely produce thousands and sometimes millions of parallel data sets, each with its own estimation or testing problem. Doing thousands of problems at once is more than repeated application of classical methods. Taking an empirical Bayes approach, Bradley Efron, inventor of the bootstrap, shows how information accrues across problems in a way that combines Bayesian and frequentist ideas. Estimation, testing and prediction blend in this framework, producing opportunities for new methodologies of increased power. New difficulties also arise, easily leading to flawed inferences. This book takes a careful look at both the promise and pitfalls of large-scale statistical inference, with particular attention to false discovery rates, the most successful of the new statistical techniques. Emphasis is on the inferential ideas underlying technical developments, illustrated using a large number of real examples.