Mastering algorithms with Perl
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 (ide...
Autor principal: | |
---|---|
Otros Autores: | , |
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Beijing ; Sebastopol, California :
O'Reilly
2009.
|
Edición: | First edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009627354806719 |
Tabla de Contenidos:
- Copyright; Table of Contents; Preface; About This Book; Theory or Practice?; Organization of This Book; Conventions Used in This Book; What You Should Know Before Reading This Book; What You Should Have Before Reading This Book; Online Information About This Book; Acknowledgments; Comments and Questions; Introduction; What Is an Algorithm?; A Sample Algorithm: Binary Search; Adapting Algorithms; Generality; Efficiency; Space Versus Time; Benchmarking; Floating-Point Numbers; Temporary Variables; Caching; Evaluating Algorithms: O(N) Notation; Recurrent Themes in Algorithms; Recursion
- Divide and ConquerDynamic Programming; Choosing the Right Representation; Basic Data Structures; Perl's Built-in Data Structures; Build Your Own Data Structure; A Simple Example; Lols and Lohs and Hols and Hohs; Objects; Using a Constructed Datatype; Shortcuts; Perl Arrays: Many Data Structures in One; Queues; Stacks; Deques; Still More Perl Arrays; Advanced Data Structures; Linked Lists; Linked List Implementations; Tracking Both Ends of Linked Lists; Additional Linked List Operations; Circular Linked Lists; Garbage Collection in Perl; Doubly-Linked Lists; Infinite Lists
- The Cost of TraversalBinary Trees; Keeping Trees Balanced; Heaps; Binary Heaps; Janus Heap; The Heap Modules; Future CPAN Modules; Sorting; An Introduction to Sorting; Perl's sort Function; ASCII Order; Numeric Order; Reverse Order: From Highest To Lowest; Sort::Fields; Sort::Versions; Dictionary Order; Sorting Efficiency; Sorting Hashes Is Not What You Might Think; All Sorts of Sorts; Quadratic Sorting Algorithms; Log-Linear Sorting Algorithms; Beating O(N log N); External Sorting; Sorting Algorithms Summary; O(N2) Sorts; Shellsort; O(N log N) Sorts; How Well Did We Do?; Searching
- Hash Search and Other Non-SearchesLookup Searches; Ransack Search; Linear Search; Binary Search in a List; Proportional Search; Binary Search in a Tree; Should You Use a List or a Tree for Binary Searching?; Bushier Trees; Lists of Lists; B-Trees; Hybrid Searches; Lookup Search Recommendations; Generative Searches; Game Interface; Exhaustive Search; Alternatives to Exhaustive Search in Games; Nongame Dynamic Searches; Sets; Venn Diagrams; Creating Sets; Creating Sets Using Hashes; Creating Sets Using Bit Vectors; Set Union and Intersection; Union; Intersection; Set Universe
- Complement SetNull Set; Set Union and Intersection Using Hashes; Union and Intersection Using Bit Vectors; Set Differences; Set Difference; Set Symmetric Difference; Set Differences Using Hashes; Set Differences Using Bit Vectors; Counting Set Elements; Set Relations; Set Relations Using Hashes; Set Relations Using Bit Vectors; The Set Modules of CPAN; Set::Scalar; Set::Object; Set::IntSpan; Bit::Vector; Set::IntRange; Sets of Sets; Power Sets; Power Sets Using Hashes; Multivalued Sets; Multivalued Logic; Fuzzy Sets; Bags; Sets Summary; Matrices; Creating Matrices
- Manipulating Individual Elements