{"product_id":"algorithm-design-and-applications-isbn-9781118335918","title":"Algorithm Design and Applications","description":"\u003cp\u003eIntroducing a NEW addition to our growing library of computer science titles, \u003cb\u003e\u003ci\u003eAlgorithm Design and Applications\u003c\/i\u003e,\u003c\/b\u003e by Michael T. Goodrich \u0026amp; Roberto Tamassia! Algorithms is a course required for all computer science majors, with a strong focus on theoretical topics. Students enter the course after gaining hands-on experience with computers, and are expected to learn how algorithms can be applied to a variety of contexts. This new book integrates application with theory.\u003c\/p\u003e \u003cp\u003eGoodrich \u0026amp; Tamassia believe that the best way to teach algorithmic topics is to present them in a context that is motivated from applications to uses in society, computer games, computing industry, science, engineering, and the internet. The text teaches students about designing and using algorithms, illustrating connections between topics being taught and their potential applications, increasing engagement. \u003c\/p\u003e  \u003cp\u003e\u003cb\u003ePreface xi\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e1 AlgorithmAnalysis 1\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e1.1 Analyzing Algorithms 3\u003c\/p\u003e \u003cp\u003e1.2 A Quick Mathematical Review 19\u003c\/p\u003e \u003cp\u003e1.3 A Case Study in Algorithm Analysis 29\u003c\/p\u003e \u003cp\u003e1.4 Amortization 34\u003c\/p\u003e \u003cp\u003e1.5 Exercises 42\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart I: Data Structures\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e2 BasicDataStructures 51\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e2.1 Stacks and Queues 53\u003c\/p\u003e \u003cp\u003e2.2 Lists 60\u003c\/p\u003e \u003cp\u003e2.3 Trees 68\u003c\/p\u003e \u003cp\u003e2.4 Exercises 84\u003c\/p\u003e \u003cp\u003e\u003cb\u003e3 BinarySearchTrees 89\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e3.1 Searches and Updates 91\u003c\/p\u003e \u003cp\u003e3.2 Range Queries 101\u003c\/p\u003e \u003cp\u003e3.3 Index-Based Searching 104\u003c\/p\u003e \u003cp\u003e3.4 Randomly-Constructed Search Trees 107\u003c\/p\u003e \u003cp\u003e3.5 Exercises 110\u003c\/p\u003e \u003cp\u003e\u003cb\u003e4 BalancedBinarySearchTrees 115\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e4.1 Ranks and Rotations 117\u003c\/p\u003e \u003cp\u003e4.2 AVL Trees 120\u003c\/p\u003e \u003cp\u003e4.3 Red-Black Trees 126\u003c\/p\u003e \u003cp\u003e4.4 Weak AVL Trees 130\u003c\/p\u003e \u003cp\u003e4.5 Splay Trees 139\u003c\/p\u003e \u003cp\u003e4.6 Exercises 149\u003c\/p\u003e \u003cp\u003e\u003cb\u003e5 PriorityQueuesandHeaps 155\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e5.1 Priority Queues 157\u003c\/p\u003e \u003cp\u003e5.2 PQ-Sort, Selection-Sort, and Insertion-Sort 158\u003c\/p\u003e \u003cp\u003e5.3 Heaps 163\u003c\/p\u003e \u003cp\u003e5.4 Heap-Sort 174\u003c\/p\u003e \u003cp\u003e5.5 Extending Priority Queues 179\u003c\/p\u003e \u003cp\u003e5.6 Exercises 182\u003c\/p\u003e \u003cp\u003e\u003cb\u003e6 HashTables 187\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e6.1 Maps 189\u003c\/p\u003e \u003cp\u003e6.2 Hash Functions 192\u003c\/p\u003e \u003cp\u003e6.3 Handling Collisions and Rehashing 198\u003c\/p\u003e \u003cp\u003e6.4 Cuckoo Hashing 206\u003c\/p\u003e \u003cp\u003e6.5 Universal Hashing 212\u003c\/p\u003e \u003cp\u003e6.6 Exercises 215\u003c\/p\u003e \u003cp\u003e\u003cb\u003e7 Union-FindStructures 219\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e7.1 Union-Find and its Applications 221\u003c\/p\u003e \u003cp\u003e7.2 A List-Based Implementation 225\u003c\/p\u003e \u003cp\u003e7.3 A Tree-Based Implementation 228\u003c\/p\u003e \u003cp\u003e7.4 Exercises 236\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart II: Sorting and Selection\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e8 Merge-SortandQuick-Sort 241\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e8.1 Merge-Sort 243\u003c\/p\u003e \u003cp\u003e8.2 Quick-Sort 250\u003c\/p\u003e \u003cp\u003e8.3 A Lower Bound on Comparison-Based Sorting 257\u003c\/p\u003e \u003cp\u003e8.4 Exercises 259\u003c\/p\u003e \u003cp\u003e\u003cb\u003e9 FastSortingandSelection 265\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e9.1 Bucket Sort and Radix Sort 267\u003c\/p\u003e \u003cp\u003e9.2 Selection 270\u003c\/p\u003e \u003cp\u003e9.3 Weighted Medians 276\u003c\/p\u003e \u003cp\u003e9.4 Exercises 279\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart III: Fundamental Techniques\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e10 The Greedy Method 283\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e10.1 The Fractional Knapsack Problem 286\u003c\/p\u003e \u003cp\u003e10.2 Task Scheduling 289\u003c\/p\u003e \u003cp\u003e10.3 Text Compression and Huffman Coding 292\u003c\/p\u003e \u003cp\u003e10.4 Exercises 298\u003c\/p\u003e \u003cp\u003e\u003cb\u003e11 Divide-and-Conquer 303\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e11.1 Recurrences and the Master Theorem 305\u003c\/p\u003e \u003cp\u003e11.2 Integer Multiplication 313\u003c\/p\u003e \u003cp\u003e11.3 Matrix Multiplication 315\u003c\/p\u003e \u003cp\u003e11.4 The Maxima-Set Problem 317\u003c\/p\u003e \u003cp\u003e11.5 Exercises 319\u003c\/p\u003e \u003cp\u003e\u003cb\u003e12 Dynamic Programming 323\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e12.1 Matrix Chain-Products 325\u003c\/p\u003e \u003cp\u003e12.2 The General Technique 329\u003c\/p\u003e \u003cp\u003e12.3 Telescope Scheduling 331\u003c\/p\u003e \u003cp\u003e12.4 Game Strategies 334\u003c\/p\u003e \u003cp\u003e12.5 The Longest Common Subsequence Problem 339\u003c\/p\u003e \u003cp\u003e12.6 The 0-1 Knapsack Problem 343\u003c\/p\u003e \u003cp\u003e12.7 Exercises 346\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart IV: Graph Algorithms\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e13 Graphs and Traversals 353\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e13.1 Graph Terminology and Representations 355\u003c\/p\u003e \u003cp\u003e13.2 Depth-First Search 365\u003c\/p\u003e \u003cp\u003e13.3 Breadth-First Search 370\u003c\/p\u003e \u003cp\u003e13.4 Directed Graphs 373\u003c\/p\u003e \u003cp\u003e13.5 Biconnected Components 386\u003c\/p\u003e \u003cp\u003e13.6 Exercises 392\u003c\/p\u003e \u003cp\u003e\u003cb\u003e14 Shortest Paths 397\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e14.1 Single-Source Shortest Paths 399\u003c\/p\u003e \u003cp\u003e14.2 Dijkstra’s Algorithm 400\u003c\/p\u003e \u003cp\u003e14.3 The Bellman-Ford Algorithm 407\u003c\/p\u003e \u003cp\u003e14.4 Shortest Paths in Directed Acyclic Graphs 410\u003c\/p\u003e \u003cp\u003e14.5 All-Pairs Shortest Paths 412\u003c\/p\u003e \u003cp\u003e14.6 Exercises 418\u003c\/p\u003e \u003cp\u003e\u003cb\u003e15 Minimum Spanning Trees 423\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e15.1 Properties of Minimum Spanning Trees 425\u003c\/p\u003e \u003cp\u003e15.2 Kruskal’s Algorithm 428\u003c\/p\u003e \u003cp\u003e15.3 The Prim-Jarn´ýk Algorithm 433\u003c\/p\u003e \u003cp\u003e15.4 Bar°uvka’s Algorithm 436\u003c\/p\u003e \u003cp\u003e15.5 Exercises 439\u003c\/p\u003e \u003cp\u003e\u003cb\u003e16 Network Flow and Matching 443\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e16.1 Flows and Cuts 445\u003c\/p\u003e \u003cp\u003e16.2 Maximum Flow Algorithms 452\u003c\/p\u003e \u003cp\u003e16.3 Maximum Bipartite Matching 458\u003c\/p\u003e \u003cp\u003e16.4 Baseball Elimination 460\u003c\/p\u003e \u003cp\u003e16.5 Minimum-Cost Flow 462\u003c\/p\u003e \u003cp\u003e16.6 Exercises 469\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart V: Computational Intractability\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e17 NP-Completeness 473\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e17.1 \u003cb\u003eP\u003c\/b\u003e and \u003cb\u003eNP\u003c\/b\u003e 476\u003c\/p\u003e \u003cp\u003e17.2 \u003cb\u003eNP\u003c\/b\u003e-Completeness 483\u003c\/p\u003e \u003cp\u003e17.3 CNF-SAT and 3SAT 489\u003c\/p\u003e \u003cp\u003e17.4 VERTEX-COVER, CLIQUE, and SET-COVER 492\u003c\/p\u003e \u003cp\u003e17.5 SUBSET-SUM and KNAPSACK 496\u003c\/p\u003e \u003cp\u003e17.6 HAMILTONIAN-CYCLE and TSP 499\u003c\/p\u003e \u003cp\u003e17.7 Exercises 502\u003c\/p\u003e \u003cp\u003e\u003cb\u003e18 Approximation Algorithms 507\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e18.1 The Metric Traveling Salesperson Problem 511\u003c\/p\u003e \u003cp\u003e18.2 Approximations for Covering Problems 515\u003c\/p\u003e \u003cp\u003e18.3 Polynomial-Time Approximation Schemes 518\u003c\/p\u003e \u003cp\u003e18.4 Backtracking and Branch-and-Bound 521\u003c\/p\u003e \u003cp\u003e18.5 Exercises 525\u003c\/p\u003e \u003cp\u003e\u003cb\u003ePart VI: Additional Topics\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003e19 Randomized Algorithms 529\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e19.1 Generating Random Permutations 531\u003c\/p\u003e \u003cp\u003e19.2 Stable Marriages and Coupon Collecting 534\u003c\/p\u003e \u003cp\u003e19.3 Minimum Cuts 539\u003c\/p\u003e \u003cp\u003e19.4 Finding Prime Numbers 546\u003c\/p\u003e \u003cp\u003e19.5 Chernoff Bounds 551\u003c\/p\u003e \u003cp\u003e19.6 Skip Lists 557\u003c\/p\u003e \u003cp\u003e19.7 Exercises 563\u003c\/p\u003e \u003cp\u003e\u003cb\u003e20 B-Trees and External-Memory 569\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e20.1 External Memory 571\u003c\/p\u003e \u003cp\u003e20.2 (2,4) Trees and B-Trees 574\u003c\/p\u003e \u003cp\u003e20.3 External-Memory Sorting 590\u003c\/p\u003e \u003cp\u003e20.4 Online Caching Algorithms 593\u003c\/p\u003e \u003cp\u003e20.5 Exercises 600\u003c\/p\u003e \u003cp\u003e\u003cb\u003e21 Multi-Dimensional Searching 603\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e21.1 Range Trees 605\u003c\/p\u003e \u003cp\u003e21.2 Priority Search Trees 609\u003c\/p\u003e \u003cp\u003e21.3 Quadtrees and k-D Trees 614\u003c\/p\u003e \u003cp\u003e21.4 Exercises 618\u003c\/p\u003e \u003cp\u003e\u003cb\u003e22 Computational Geometry 623\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e22.1 Operations on Geometric Objects 625\u003c\/p\u003e \u003cp\u003e22.2 Convex Hulls 630\u003c\/p\u003e \u003cp\u003e22.3 Segment Intersection 638\u003c\/p\u003e \u003cp\u003e22.4 Finding a Closest Pair of Points 642\u003c\/p\u003e \u003cp\u003e22.5 Exercises 646\u003c\/p\u003e \u003cp\u003e\u003cb\u003e23 String Algorithms 651\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e23.1 String Operations 653\u003c\/p\u003e \u003cp\u003e23.2 The Boyer-Moore Algorithm 656\u003c\/p\u003e \u003cp\u003e23.3 The Knuth-Morris-Pratt Algorithm 660\u003c\/p\u003e \u003cp\u003e23.4 Hash-Based Lexicon Matching 664\u003c\/p\u003e \u003cp\u003e23.5 Tries 669\u003c\/p\u003e \u003cp\u003e23.6 Exercises 680\u003c\/p\u003e \u003cp\u003e\u003cb\u003e24 Cryptography 685\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e24.1 Greatest Common Divisors (GCD) 687\u003c\/p\u003e \u003cp\u003e24.2 Modular Arithmetic 691\u003c\/p\u003e \u003cp\u003e24.3 Cryptographic Operations 699\u003c\/p\u003e \u003cp\u003e24.4 The RSA Cryptosystem 703\u003c\/p\u003e \u003cp\u003e24.5 The El Gamal Cryptosystem 706\u003c\/p\u003e \u003cp\u003e24.6 Exercises 708\u003c\/p\u003e \u003cp\u003e\u003cb\u003e25 The Fast Fourier Transform 711\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e25.1 Convolution 713\u003c\/p\u003e \u003cp\u003e25.2 Primitive Roots of Unity 715\u003c\/p\u003e \u003cp\u003e25.3 The Discrete Fourier Transform 717\u003c\/p\u003e \u003cp\u003e25.4 The Fast Fourier Transform Algorithm 721\u003c\/p\u003e \u003cp\u003e25.5 Exercises 727\u003c\/p\u003e \u003cp\u003e\u003cb\u003e26 Linear Programming 731\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e26.1 Formulating the Problem 734\u003c\/p\u003e \u003cp\u003e26.2 The Simplex Method 739\u003c\/p\u003e \u003cp\u003e26.3 Duality 746\u003c\/p\u003e \u003cp\u003e26.4 Applications of Linear Programming 750\u003c\/p\u003e \u003cp\u003e26.5 Exercises 753\u003c\/p\u003e \u003cp\u003e\u003cb\u003eA UsefulMathematicalFacts 761\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eBibliography 765\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eIndex 774\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“This is a wonderful book, covering both classical and contemporary topics in algorithms. I look forward to trying it out in my algorithms class. I especially like the diversity in topics and difficulty of the problems.”\u003cbr\u003e\u003cb\u003eROBERT TARJAN, PRINCETON UNIVERSITY \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“The clarity of explanation is excellent. I like the inclusion of the three types of exercises very much.”\u003cbr\u003e\u003cb\u003eMING-YANG KAO, NORTHWESTERN UNIVERSITY \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“Goodrich and Tamassia have designed a book that is both remarkably comprehensive in its coverage and innovative in its approach. Their emphasis on motivation and applications, throughout the text as well as in the many exercises, provides a book well-designed for the boom in students from all areas of study who want to learn about computing. The book contains more than one could hope to cover in a semester course, giving instructors a great deal of flexibility and students a reference that they will turn to well after their class is over.”\u003cbr\u003e\u003cb\u003eMICHAEL MITZENMACHER, HARVARD UNIVERSITY \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e“I highly recommend this accessible roadmap to the world of algorithm design. The authors provide motivating examples of problems faced in the real world and guide the reader to develop workable solutions, with a number of challenging exercises to promote deeper understanding.”\u003cbr\u003e\u003cb\u003eJEFFREY S. VITTER, UNIVERSITY OF KANSAS \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eDidYou\u003cb\u003eKnow?\u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eThis book is available as a Wiley E-Text. \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003eThe Wiley E-Text is a complete digital version of the text that makes time spent studying more efficient. Course materials can be accessed on a desktop, laptop, or mobile device—so that learning can take place anytime, anywhere.\u003c\/p\u003e \u003cp\u003eA more affordable alternative to traditional print, the Wiley E-Text creates a flexible user experience:\u003c\/p\u003e \u003cul\u003e \u003cli\u003e\u003cb\u003eAccess on-the-go \u003c\/b\u003e\u003c\/li\u003e \u003cli\u003eSearch across content\u003c\/li\u003e \u003cli\u003eHighlight and take notes\u003c\/li\u003e \u003cli\u003eSave money!\u003c\/li\u003e \u003c\/ul\u003e \u003cp\u003e\u003cb\u003eThe Wiley E-Text can be purchased in the following ways: \u003c\/b\u003e\u003c\/p\u003e \u003cp\u003e\u003cb\u003eVia your campus bookstore:\u003c\/b\u003e\u003cbr\u003eWiley E-Text: Powered by VitalSource®\u003cbr\u003eISBN 9781119028796 \u003cbr\u003e*Instructors: This ISBN is needed when placing an order.\u003c\/p\u003e \u003cp\u003e\u003cb\u003eDirectly from: \u003c\/b\u003e\u003cbr\u003ewww.wiley.com\/college\/goodrich\u003c\/p\u003e","brand":"Wiley","offers":[{"title":"Default Title","offer_id":47988712997093,"sku":"NP9781118335918","price":121.0,"currency_code":"USD","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1842\/7735\/files\/9781118335918.jpg?v=1761781294","url":"https:\/\/k12savings.com\/products\/algorithm-design-and-applications-isbn-9781118335918","provider":"K12savings","version":"1.0","type":"link"}