This textbook explains the concepts and techniques required to write programs that can handle large amounts of data efficiently. Project-oriented and classroom-tested, the book presents a number of important algorithms supported by examples that bring meaning to the problems faced by computer programmers. The idea of computational complexity is also introduced, demonstrating what can and cannot be computed efficiently so that the programmer can make informed judgements about the algorithms they use. Features: includes both introductory and advanced data structures and algorithms topics, with suggested chapter sequences for those respective courses provided in the preface; provides learning goals, review questions and programming exercises in each chapter, as well as numerous illustrative examples; offers downloadable programs and supplementary files at an associated website, with instructor materials available from the author; presents a primer on Python for those from a different language background.
Inhaltsverzeichnis
1: Python Programming 101.- 2: Computational Complexity.- 3: Recursion.- Sequences.- 4: Sets and Maps.- 5: Trees.- 6: Graphs.- 7: Membership Structures.- 8: Heaps.- 9: Balanced Binary Search Trees.- 10: B-Trees.- 11: Heuristic Search.- Appendix A: Integer Operators.- Appendix B: Float Operators.- Appendix C: String Operators and Methods.- Appendix D: List Operators and Methods.- Appendix E: Dictionary Operators and Methods.- Appendix F: Turtle Methods.- Appendix G: TurtleScreen Methods.- Appendix H: Complete Programs.