This book is an introduction to data structures and algorithms for functional programming languages, with a focus on proofs. Starting with sorting and searching, it moves on to priority queues and advanced design and analysis techniques: dynamic programming, amortized analysis, splay trees, skew heaps and pairing heaps. The final part of the book covers a number of selected fun topics: graph algorithms, string search, Huffman's algorithm for generating optimal codes and alpha-beta pruning of game trees.
The book covers both correctness (does the algorithm do what it is supposed to do?) and running time analysis (does the algorithm terminate within a specified number of steps?). It does so in a unified manner with inductive proofs about functional programs and their running time functions.
What sets this book apart from existing books on algorithms is that all proofs have been machine-checked, by the proof assistant Isabelle. That is, in addition to the text in the book, which requires no knowledge of proof assistants!, the Isabelle definitions and proofs are available online. The structured nature of Isabelle proofs permits even novices to follow the high-level arguments.
This book is aimed at teachers and students (it has been classroom-tested for a number of years) but is also a reference work for programmers and researchers who are interested in the (verified!) details of some algorithm or proof.
Zahle einfach mit Karte, Klarna, Apple Pay oder Google Pay. Nicht zufrieden? Du hast immer ein 14-tägiges Widerrufsrecht. Lies mehr in unseren AGB. Hast du Fragen, schreib uns eine E-Mail an hello@memmo.org.
Memmo macht das Lernen einfacher – wo auch immer du bist. Bei uns findest du deine Kursbücher und smarte Lerntools an einem Ort: Zusammenfassungen, Quizzes, Podcasts und Lernkarten. Und Ted, dein Lernbuddy, beantwortet alles, was du wissen möchtest. Über 50.000 Studierende lernen bereits hier – gemacht, damit du schneller lernst und weniger Stress hast.