Our systems are now restored following recent technical disruption, and we’re working hard to catch up on publishing. We apologise for the inconvenience caused. Find out more

Recommended product

Popular links

Popular links


Competitive Programming in Python

Competitive Programming in Python

Competitive Programming in Python

128 Algorithms to Develop your Coding Skills
Christoph Dürr, Sorbonne University
Jill-Jênn Vie, Inria
Greg Gibbons
Danièle Gibbons
February 2021
Paperback
9781108716826
$47.00
USD
Paperback
USD
eBook

    Want to kill it at your job interview in the tech industry? Want to win that coding competition? Learn all the algorithmic techniques and programming skills you need from two experienced coaches, problem setters, and jurors for coding competitions. The authors highlight the versatility of each algorithm by considering a variety of problems and show how to implement algorithms in simple and efficient code. Readers can expect to master 128 algorithms in Python and discover the right way to tackle a problem and quickly implement a solution of low complexity. Classic problems like Dijkstra's shortest path algorithm and Knuth-Morris-Pratt's string matching algorithm are featured alongside lesser known data structures like Fenwick trees and Knuth's dancing links. The book provides a framework to tackle algorithmic problem solving, including: Definition, Complexity, Applications, Algorithm, Key Information, Implementation, Variants, In Practice, and Problems. Python code included in the book and on the companion website.

    • Companion website provides additional pedagogical material and links to online judges for problems listed in the book
    • Ninety-three figures help readers directly visualize the definitions and principles, and also illustrate counterarguments to see why naive approaches fail
    • Written in a direct engaging style, avoiding tedious formal language, for deep understanding of underlying principles
    • Assumes basic knowledge of programming, data structures, complexity analysis, and discrete math

    Reviews & endorsements

    'This book guides the reader through a collection of interesting problems, teaching us many ideas that underlie efficient algorithms. The simplicity of Python helps highlight the beauty and accessibility of the ideas. I found it a most enjoyable and engaging book.' Anupam Gupta, Carnegie Mellon University

    See more reviews

    Product details

    December 2020
    Adobe eBook Reader
    9781108673808
    0 pages
    This ISBN is for an eBook version which is distributed on our behalf by a third party.

    Table of Contents

    • 1. Introduction
    • 2. Character strings
    • 3. Sequences
    • 4. Arrays
    • 5. Intervals
    • 6. Graphs
    • 7. Cycles in graphs
    • 8. Shortest paths
    • 9. Matching and flows
    • 10. Trees
    • 11. Sets
    • 12. Points and polygons
    • 13. Rectangles
    • 14. Numbers and matrices
    • 15. Exhaustive search
    • 16. Conclusion.
      Authors
    • Christoph Dürr , Sorbonne University

      Christoph Dürr is a senior researcher at the French National Center for Scientific Research (CNRS), affiliated with the Sorbonne University in Paris. After a PhD in 1996 at Paris-Sud University, he worked as for one year as a postdoc at the International Computer Science Institute in Berkeley and one year in the School of Computer Science and Engineering in the Hebrew University of Jerusalem in Israel. He has worked in the fields of quantum computation, discrete tomography, algorithmic game theory, and his current research activity focuses on algorithms and optimisation. From 2007 to 2014, he taught a preparation course for programming contests at the engineering school École Polytechnique, and acts regularly as a problem setter, trainer, or competitor for various coding competitions. In addition, he loves carrot cake.

    • Jill-Jênn Vie , Inria

      Jill-Jênn Vie is a research scientist at Inria in machine learning. He is an alumni from ENS Paris-Saclay, where he founded the algorithmic club of Paris-Saclay (CAPS) and coached several teams for the International Collegiate Programming Contest (ICPC). He published another book in theoretical computer science to help students prepare for prestigious French competitive exams such as Grandes Écoles or agrégation, and directed a TV show “Blame the Algorithm” about the algorithms that govern our lives. He is part of the advisory board of the French Computer Science Society (SIF), itself a member of the International Federation for Information Processing (IFIP).

    • Translators
    • Greg Gibbons
    • Danièle Gibbons