Publisher: O'Reilly Media
Final Release Date: August 1999
Pages: 706
Many programmers would love to use Perl for projects that involve heavy lifting, but miss the many traditional algorithms that textbooks teach for other languages. Computer scientists have identified many techniques that a wide range of programs need, such as:
- Fuzzy pattern matching for text (identify misspellings!)
- Finding correlations in data
- Game-playing algorithms
- Predicting phenomena such as Web traffic
- Polynomial and spline fitting
Using algorithms explained in this book, you too can carry out traditional programming tasks in a high-powered, efficient, easy-to-maintain manner with Perl.This book assumes a basic understanding of Perl syntax and functions, but not necessarily any background in computer science. The authors explain in a readable fashion the reasons for using various classic programming techniques, the kind of applications that use them, and -- most important -- how to code these algorithms in Perl.If you are an amateur programmer, this book will fill you in on the essential algorithms you need to solve problems like an expert. If you have already learned algorithms in other languages, you will be surprised at how much different (and often easier) it is to implement them in Perl. And yes, the book even has the obligatory fractal display program.There have been dozens of books on programming algorithms, some of them excellent, but never before has there been one that uses Perl. The authors include the editor of The Perl Journal and master librarian of CPAN; all are contributors to CPAN and have archived much of the code in this book there."This book was so exciting I lost sleep reading it." Tom Christiansen
|
-
Chapter 1 Introduction -
What Is an Algorithm? -
Efficiency -
Recurrent Themes in Algorithms -
Chapter 2 Basic Data Structures -
Perl’s Built-in Data Structures -
Build Your Own Data Structure -
A Simple Example -
Perl Arrays: Many Data Structures in One -
Chapter 3 Advanced Data Structures -
Linked Lists -
Circular Linked Lists -
Garbage Collection in Perl -
Doubly-Linked Lists -
Infinite Lists -
The Cost of Traversal -
Binary Trees -
Heaps -
Binary Heaps -
Janus Heap -
The Heap Modules -
Future CPAN Modules -
Chapter 4 Sorting -
An Introduction to Sorting -
All Sorts of Sorts -
Sorting Algorithms Summary -
Chapter 5 Searching -
Hash Search and Other Non-Searches -
Lookup Searches -
Generative Searches -
Chapter 6 Sets -
Venn Diagrams -
Creating Sets -
Set Union and Intersection -
Set Differences -
Counting Set Elements -
Set Relations -
The Set Modules of CPAN -
Sets of Sets -
Multivalued Sets -
Sets Summary -
Chapter 7 Matrices -
Creating Matrices -
Manipulating Individual Elements -
Finding the Dimensions of a Matrix -
Displaying Matrices -
Adding or Multiplying Constants -
Transposing a Matrix -
Multiplying Matrices -
Extracting a Submatrix -
Combining Matrices -
Inverting a Matrix -
Computing the Determinant -
Gaussian Elimination -
Eigenvalues and Eigenvectors -
The Matrix Chain Product -
Delving Deeper -
Chapter 8 Graphs -
Vertices and Edges -
Derived Graphs -
Graph Attributes -
Graph Representation in Computers -
Graph Traversal -
Paths and Bridges -
Graph Biology: Trees, Forests, DAGS, Ancestors, and Descendants -
Edge and Graph Classes -
CPAN Graph Modules -
Chapter 9 Strings -
Perl Builtins -
String-Matching Algorithms -
Phonetic Algorithms -
Stemming and Inflection -
Parsing -
Compression -
Chapter 10 Geometric Algorithms -
Distance -
Area, Perimeter, and Volume -
Direction -
Intersection -
Inclusion -
Boundaries -
Closest Pair of Points -
Geometric Algorithms Summary -
CPAN Graphics Modules -
Chapter 11 Number Systems -
Integers and Reals -
Strange Systems -
Trigonometry -
Significant Series -
Chapter 12 Number Theory -
Basic Number Theory -
Prime Numbers -
Unsolved Problems -
Chapter 13 Cryptography -
Legal Issues -
Authorizing People with Passwords -
Authorization of Data: Checksums and More -
Obscuring Data: Encryption -
Hiding Data: Steganography -
Winnowing and Chaffing -
Encrypted Perl Code -
Other Issues -
Chapter 14 Probability -
Random Numbers -
Events -
Permutations and Combinations -
Probability Distributions -
Rolling Dice: Uniform Distributions -
Loaded Dice and Candy Colors: Nonuniform Discrete Distributions -
If the Blue Jays Score Six Runs: Conditional Probability -
Flipping Coins Over and Over: Infinite Discrete Distributions -
How Much Snow? Continuous Distributions -
Many More Distributions -
Chapter 15 Statistics -
Statistical Measures -
Significance Tests -
Correlation -
Chapter 16 Numerical Analysis -
Computing Derivatives and Integrals -
Solving Equations -
Interpolation, Extrapolation, and Curve Fitting -
Appendix Further Reading -
General References for Algorithms -
Graphs, Graphics, and Geometry -
String Processing and Parsing -
Numerical Methods -
General Mathematics -
Probability and Statistics -
Other References -
Appendix ASCII Character Set -
Colophon |
- Title:
- Mastering Algorithms with Perl
- By:
- Jarkko Hietaniemi, John Macdonald, Jon Orwant
- Publisher:
- O'Reilly Media
- Formats:
-
- Print
- Ebook
- Safari Books Online
- Print:
- August 1999
- Ebook:
- April 2011
- Pages:
- 706
- Print ISBN:
- 978-1-56592-398-0
- | ISBN 10:
- 1-56592-398-7
- Ebook ISBN:
- 978-1-4493-8587-3
- | ISBN 10:
- 1-4493-8587-7
|
-
Jarkko Hietaniemi Jarkko Hietaniemi is the creator and Master Librarian of CPAN: Comprehensive Perl Archive Network. He has also been known to frequent Perl developer forums. Luckily enough, getting his MSc in CS in the field of parallel computing didn't interfere overly much with his Perl and UNIX hacking. During those savored moments of off-line time, he fancies gobbling up speculative fiction and popular science. His real life employer is Nokia Research Center. View Jarkko Hietaniemi's full profile page. -
John Macdonald John Macdonald has been using Perl commercially since 1988 for a suite of Unix system administration tools. His background with Unix dates back to the days when Unix was written in PDP-11 assembler and later includes representing the University of Waterloo at the first UNIX Users Meeting at City University of New York in the mid-1970s while finishing his M. Math degree. (In those days before the creation of Usenix, the people at the meeting would sit together around a single table.) In addition, his background includes work on compilers, kernel internals, device drivers and the like. He has also been observed partaking in recreational computing activities. View John Macdonald's full profile page. -
Jon Orwant Jon Orwant, a well-known member of the Perl community, founded The Perl Journal and co-authored OReillys bestseller, Programming Perl, 3rd Edition. View Jon Orwant's full profile page. |
Colophon Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. The animal on the cover of Mastering Algorithms with Perl is a wolf (Canis lupus). The wolf, a member of the dog family, is one of the most sociable of mammals. Wolves live and hunt in packs, which consist of one pair of alpha male and female wolves and several offspring. Pack size is usually five to nine wolves. Each wolf pack has its own territory, which they will mark and fight to defend. Wolves often travel long distance in their hunt for prey, and they keep in contact with other members of their pack by howling. Howling seems to be almost contagious to wolves-when one wolf begins to howl, others around it will almost always join in, creating an echoing, almost musical effect. Wolves were once common throughout the northern hemisphere. Deserts and tropical forests are the only habitats that cannot support wolves. However, as a result of disease, parasites, starvation caused by habitat loss, and persecution by humans, wolves have been eradicated from much of their former territory and are limited in others. Significant wolf populations are now found only in Canada, Alaska, Minnesota, and parts of Asia. Smaller wolf populations can be found in Scandinavia and parts of Europe. In Greenland, the wolf was nearly extinct, but has managed to repopulate itself. The grey wolf is currently listed as vulnerable. The relationship between wolves and humans has always been a troubled one. Folktales and childrens' stories have long characterized the wolf as an evil, bloodthirsty killer who preys on children and other humans. In fact, healthy wolves rarely, if ever, attack humans. On a more down-to-earth level, farmers resent wolves because they frequently kill livestock. However, wolves provide a beneficial service: they feed on carrion, rodents, and other pests. Because of their greatly diminished numbers, wolves have come to symbolize to many the disappearing wilderness. Interest in preserving them is growing as a result. Melanie Wang was the production editor and copy editor for Mastering Algorithms with Perl; Ellie Cutler, Maureen Dempsey, Abigail Myers, Colleen Gorman, and Jane Ellin provided quality control. Kimo Carter provided production support. Lenny Muellner provided technical support. Seth Maislin wrote the index, with additional index work done by Ellen Troutman Zaig and Brenda Miller. Edie Freedman designed the cover of this book, using an original illustration by Lorrie LeJeune. The cover layout was produced by Kathleen Wilson with QuarkXPress 3.32 using the ITC Garamond font. Whenever possible, our books use RepKover, a durable and flexible lay-flat binding. If the page count exceeds RepKover's limit, perfect binding is used. The inside layout was designed by Alicia Cech based on a series design by Nancy Priest and implemented in gtroff by Lenny Muellner. The text and heading fonts are ITC Garamond Light and Garamond Book. The illustrations that appear in the book were produced by Robert Romano and Rhon Porter using Macromedia FreeHand 8 and Adobe Photoshop 5. This colophon was written by Clairemarie Fisher O'Leary. |
|
Table of Contents
|
Product Details
|
About the Author
|
Colophon
|
 |
|
 |
|
|
|
Recommended for You
|
Recently Viewed
|
 |
|
By Andrew Ford
December 2000
By Tom Christiansen, Nathan Torkington
August 1998
By Johan Vromans
July 2002
|
Customer Reviews
8/20/2003 (5 of 6 customers found this review helpful) 4.0Mastering Algorithms with Perl Review By Shawn Boyette from Undisclosed 5/10/2002 (2 of 4 customers found this review helpful) 5.0Mastering Algorithms with Perl Review By Scheer from Undisclosed 7/27/2000 (5 of 5 customers found this review helpful) 5.0Mastering Algorithms with Perl Review By Steve C from Undisclosed
|
|
|