This text, extensively class-tested over a decade at UC Berkeley and UC San Diego, explains the fundamentals of algorithms in a story line that makes the material enjoyable and easy to digest. Emphasis is placed on understanding the crisp mathematical idea behind each algorithm, in a manner that is intuitive and rigorous without being unduly formal. Features include: The use of boxes to strengthen the narrative: pieces that provide historical context, descriptions of how the algorithms are used in practice, and excursions for the mathematically sophisticated. Carefully chosen advanced topics that can be skipped in a standard one-semester course, but can be covered in an advanced algorithms course or in a more leisurely two-semester sequence. An accessible treatment of linear programming introduces students to one of the greatest achievements in algorithms. An optional chapter on the quantum algorithm for factoring provides a unique peephole into this exciting topic. In addition to the text, DasGupta also offers a Solutions Manual, which is available on the Online Learning Center. "Algorithms is an outstanding undergraduate text, equally informed by the historical roots and contemporary applications of its subject. Like a captivating novel, it is a joy to read." Tim Roughgarden Stanford University Table of contents0 Prologue1 Algorithms with Numbers2 Divide-and-Conquer Algorithms3 Decompositions of Graphs4 Paths in Graphs5 Greedy algorithms6 Dynamic Programming7 Linear Programming and Reductions8 NP-complete Problems9 Coping with NP-completeness10 Quantum Algorithms
Cited By
- Makhija N and Gatterbauer W (2024). Minimally Factorizing the Provenance of Self-join Free Conjunctive Queries, Proceedings of the ACM on Management of Data, 2:2, (1-24), Online publication date: 10-May-2024.
- Agarwal S and Akella S (2024). Line Coverage With Multiple Robots: Algorithms and Experiments, IEEE Transactions on Robotics, 40, (1664-1683), Online publication date: 1-Jan-2024.
- Papadakis G, Efthymiou V, Thanos E, Hassanzadeh O and Christen P (2023). An analysis of one-to-one matching algorithms for entity resolution, The VLDB Journal — The International Journal on Very Large Data Bases, 32:6, (1369-1400), Online publication date: 1-Nov-2023.
- Shukla A, Erementchouk M and Mazumder P (2023). Custom CMOS Ising Machine Based on Relaxed Burer-Monteiro-Zhang Heuristic, IEEE Transactions on Computers, 72:10, (2835-2846), Online publication date: 1-Oct-2023.
- Karaliopoulos M, Mastakas O and Chai W (2023). Matching Supply and Demand in Online Parking Reservation Platforms, IEEE Transactions on Intelligent Transportation Systems, 24:3, (3182-3193), Online publication date: 1-Mar-2023.
- J. A, Adedoyin A, Ambrosiano J, Anisimov P, Casper W, Chennupati G, Coffrin C, Djidjev H, Gunter D, Karra S, Lemons N, Lin S, Malyzhenkov A, Mascarenas D, Mniszewski S, Nadiga B, O’malley D, Oyen D, Pakin S, Prasad L, Roberts R, Romero P, Santhi N, Sinitsyn N, Swart P, Wendelberger J, Yoon B, Zamora R, Zhu W, Eidenbenz S, Bärtschi A, Coles P, Vuffray M and Lokhov A (2022). Quantum Algorithm Implementations for Beginners, ACM Transactions on Quantum Computing, 3:4, (1-92), Online publication date: 31-Dec-2022.
- Quilliot A and Rebaine D (2022). Linear time algorithms on mirror trees, Journal of Combinatorial Optimization, 44:5, (3495-3519), Online publication date: 1-Dec-2022.
- Chrobak M, Golin M, Munro J and Young N (2021). A Simple Algorithm for Optimal Search Trees with Two-way Comparisons, ACM Transactions on Algorithms, 18:1, (1-11), Online publication date: 31-Jan-2022.
- Gao X, Xu W, Liao M and Chen G (2021). Trust Prediction for Online Social Networks with Integrated Time-Aware Similarity, ACM Transactions on Knowledge Discovery from Data, 15:6, (1-30), Online publication date: 28-Jun-2021.
- Mitzenmacher M and Seddighin S Dynamic algorithms for LIS and distance to monotonicity Proceedings of the 52nd Annual ACM SIGACT Symposium on Theory of Computing, (671-684)
- Han M, Guan N, Sun J, He Q, Deng Q and Liu W (2019). Response Time Bounds for Typed DAG Parallel Tasks on Heterogeneous Multi-Cores, IEEE Transactions on Parallel and Distributed Systems, 30:11, (2567-2581), Online publication date: 1-Nov-2019.
- D'emidio M, Forlizzi L, Frigioni D, Leucci S and Proietti G (2019). Hardness, approximability, and fixed-parameter tractability of the clustered shortest-path tree problem, Journal of Combinatorial Optimization, 38:1, (165-184), Online publication date: 1-Jul-2019.
- Wang J and Shah N Your 2 is My 1, Your 3 is My 9 Proceedings of the 18th International Conference on Autonomous Agents and MultiAgent Systems, (864-872)
- Anastasiadis E, Deng X, Krysta P, Li M, Qiao H and Zhang J (2019). Network Pollution Games, Algorithmica, 81:1, (124-166), Online publication date: 1-Jan-2019.
- Gainanov D, Kibzun A and Rasskazova V (2018). The Decomposition Problem for the Set of Paths in a Directed Graph and Its Application, Automation and Remote Control, 79:12, (2217-2236), Online publication date: 1-Dec-2018.
- Wu Y, Fang Y, Liu B and Zhao Z (2018). A novel service deployment approach based on resilience metrics for service-oriented system, Personal and Ubiquitous Computing, 22:5-6, (1099-1107), Online publication date: 1-Oct-2018.
- Tarafdar R and Han Y (2018). Finding majority for integer elements, Journal of Computing Sciences in Colleges, 33:5, (187-191), Online publication date: 1-May-2018.
- Zheng Y and Zhang L (2017). Reconciliation With Nonbinary Gene Trees Revisited, Journal of the ACM, 64:4, (1-28), Online publication date: 7-Sep-2017.
- Madhavan R, Kulal S and Kuncak V (2017). Contract-based resource verification for higher-order functions with memoization, ACM SIGPLAN Notices, 52:1, (330-343), Online publication date: 11-May-2017.
- Shokri R, Theodorakopoulos G and Troncoso C (2016). Privacy Games Along Location Traces, ACM Transactions on Privacy and Security, 19:4, (1-31), Online publication date: 3-Feb-2017.
- Chen W, Paik I and Li Z (2017). Cost-Aware Streaming Workflow Allocation on Geo-Distributed Data Centers, IEEE Transactions on Computers, 66:2, (256-271), Online publication date: 1-Feb-2017.
- Melani A, Bertogna M, Bonifaci V, Marchetti-Spaccamela A and Buttazzo G (2017). Schedulability Analysis of Conditional Parallel Task Graphs in Multicore Systems, IEEE Transactions on Computers, 66:2, (339-353), Online publication date: 1-Feb-2017.
- Madhavan R, Kulal S and Kuncak V Contract-based resource verification for higher-order functions with memoization Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages, (330-343)
- Liao M, Liu X, Gao X, Zhong J and Chen G iSim: An Efficient Integrated Similarity Based Collaborative Filtering Approach for Trust Prediction in Service-Oriented Social Networks Service-Oriented Computing, (501-516)
- Narodytska N, Petit T, Siala M and Walsh T (2016). Three generalizations of the FOCUS constraint, Constraints, 21:4, (495-532), Online publication date: 1-Oct-2016.
- Allouche D, Bessiere C, Boizumault P, de Givry S, Gutierrez P, Lee J, Leung K, Loudni S, Métivier J, Schiex T and Wu Y (2016). Tractability-preserving transformations of global cost functions, Artificial Intelligence, 238:C, (166-189), Online publication date: 1-Sep-2016.
- Riechert M, Höner zu Siederdissen C and Stadler P (2016). Algebraic dynamic programming for multiple context-free grammars, Theoretical Computer Science, 639:C, (91-109), Online publication date: 1-Aug-2016.
- Riley L, Atkinson K, Dunne P and Payne T A Synergy Coalition Group based Dynamic Programming Algorithm for Coalition Formation Proceedings of the 2016 International Conference on Autonomous Agents & Multiagent Systems, (588-596)
- Anastasiadis E, Deng X, Krysta P, Li M, Qiao H and Zhang J Network Pollution Games Proceedings of the 2016 International Conference on Autonomous Agents & Multiagent Systems, (23-31)
- Serrano M, Melani A, Bertogna M and Quinones E Response-time analysis of DAG tasks under fixed priority scheduling with limited preemptions Proceedings of the 2016 Conference on Design, Automation & Test in Europe, (1066-1071)
- Aronov B, Driemel A, Kreveld M, Löffler M and Staals F (2015). Segmentation of Trajectories on Nonmonotone Criteria, ACM Transactions on Algorithms, 12:2, (1-28), Online publication date: 12-Feb-2016.
- Levitin A (2016). Algorithm design strategies in CS curricula 2013, Journal of Computing Sciences in Colleges, 31:3, (78-84), Online publication date: 1-Jan-2016.
- Masson V (2015). Information, interaction and memory, International Journal of Game Theory, 44:4, (1015-1032), Online publication date: 1-Nov-2015.
- Perederieieva O, Ehrgott M, Raith A and Wang J (2015). A framework for and empirical study of algorithms for traffic assignment, Computers and Operations Research, 54:C, (90-107), Online publication date: 1-Feb-2015.
- Vegdahl S (2014). Visualizing NP-completeness through circuit-based widgets, Journal of Computing Sciences in Colleges, 30:1, (190-198), Online publication date: 1-Oct-2014.
- Parker M and Lewis C (2014). What makes big-O analysis difficult, Journal of Computing Sciences in Colleges, 29:4, (164-174), Online publication date: 1-Apr-2014.
- Vaidya N Iterative Byzantine Vector Consensus in Incomplete Graphs Proceedings of the 15th International Conference on Distributed Computing and Networking - Volume 8314, (14-28)
- Alwan N (2014). Performance analysis of dijkstra-based weighted sum minimization routing algorithm for wireless mesh networks, Modelling and Simulation in Engineering, 2014, (32-32), Online publication date: 1-Jan-2014.
- Parker M and Lewis C Why is big-O analysis hard? Proceedings of the 13th Koli Calling International Conference on Computing Education Research, (201-202)
- Hope D and Keller B MaxMax Proceedings of the 14th international conference on Computational Linguistics and Intelligent Text Processing - Volume Part I, (368-381)
- Libeskind-Hadas R A derivation-first approach to teaching algorithms Proceeding of the 44th ACM technical symposium on Computer science education, (573-578)
- Aronov B, Driemel A, van Kreveld M, Löffler M and Staals F Segmentation of trajectories on non-monotone criteria Proceedings of the twenty-fourth annual ACM-SIAM symposium on Discrete algorithms, (1897-1911)
- Shokri R, Theodorakopoulos G, Troncoso C, Hubaux J and Le Boudec J Protecting location privacy Proceedings of the 2012 ACM conference on Computer and communications security, (617-627)
- Vaidya N, Tseng L and Liang G Iterative approximate byzantine consensus in arbitrary directed graphs Proceedings of the 2012 ACM symposium on Principles of distributed computing, (365-374)
- Wijsen J (2012). Certain conjunctive query answering in first-order logic, ACM Transactions on Database Systems, 37:2, (1-35), Online publication date: 1-May-2012.
- Forišek M and Steinová M Metaphors and analogies for teaching algorithms Proceedings of the 43rd ACM technical symposium on Computer Science Education, (15-20)
- Konstantinidis S and Santean N Computing maximal Kleene closures that are embeddable in a given constrained DNA language Proceedings of the 17th international conference on DNA computing and molecular programming, (115-129)
- Rolfe T (2011). Optimizations generating Armstrong numbers, ACM Inroads, 2:2, (43-46), Online publication date: 1-Jun-2011.
- Ko J, Kwon S and Kim C (2011). Orthogonal signaling-based queue status investigation method in IEEE 802.11, Computer Communications, 34:8, (1033-1041), Online publication date: 1-Jun-2011.
- Ekárt A, Sharma D and Chalakov S Modelling human preference in evolutionary art Proceedings of the 2011 international conference on Applications of evolutionary computation - Volume Part II, (303-312)
- Silvestri F and Venturini R VSEncoding Proceedings of the 19th ACM international conference on Information and knowledge management, (1219-1228)
- Stein S, Gerding E and Jennings N Optimal Task Migration in Service-Oriented Systems Proceedings of the 2010 conference on ECAI 2010: 19th European Conference on Artificial Intelligence, (73-78)
- Lokshtanov D and Nederlof J Saving space by algebraization Proceedings of the forty-second ACM symposium on Theory of computing, (321-330)
- Haunert J and Brenner C Vehicle localization by matching triangulated point patterns Proceedings of the 17th ACM SIGSPATIAL International Conference on Advances in Geographic Information Systems, (344-351)
- Crichigno J, Xie C, Shu W, Wu M and Ghani N A multi-objective approach for throughput optimization and traffic engineering in WDM networks Proceedings of the 43rd Asilomar conference on Signals, systems and computers, (1043-1047)
- Liang Y, Ju L, Chakraborty S, Mitra T and Roychoudhury A Cache-aware optimization of BAN applications Proceedings of the 6th IEEE/ACM/IFIP international conference on Hardware/Software codesign and system synthesis, (149-154)
- Wu C, Shankari K, Kamar E, Katz R, Culler D, Papadimitriou C, Horvitz E and Bayen A Optimizing the diamond lane: A more tractable carpool problem and algorithms 2016 IEEE 19th International Conference on Intelligent Transportation Systems (ITSC), (1389-1396)
Index Terms
- Algorithms