Data structures and algorithms with Python. With an introduction to multiprocessing
A*amortised complexityasymptotic notationB-treesbalanced binary treesbig-O notationbinary treesBloom filtersbreadth-first searchcomputational complexitydepth-first searchDijkstra's algorithmdistributed multiprocessinggraphshashingheapsheuristic searchhill climbingKruskal's algorithmmapsmemoisationminimaxparallelisationpoolingPython programmingqueuerecursionsearch treessequencesserialisationsetssortingsplay treesstacksynchronisationtreestrie datatypestwo-dimensional sequences
Introductory exposition (textbooks, tutorial papers, etc.) pertaining to computer science (68-01) Theory of programming languages (68N15) Data structures (68P05) Searching and sorting (68P10) Analysis of algorithms and problem complexity (68Q25) Graph theory (including graph drawing) in computer science (68R10) Problem solving in the context of artificial intelligence (heuristics, search strategies, etc.) (68T20) General topics in the theory of algorithms (68W01)
The textbook under review is a second edition consisting of two teaching modules, the first one being an introduction to data structures and the second one is on advanced data structures and algorithms; it is also a natural follow-up to the first author's [Python. Programming fundamentals. London: Springer (2011; Zbl 1213.68164)]. The book is divided into 14 chapters. Following an overview of Python as a programming environment (Chapter 1), the authors discuss the theoretical concept of computational complexity, focusing on big-O notations and proofs (Chapter 2). The next three chapters intertwine theoretical concepts and algorithms dealing with recursion (Chapter 3), sequences (Chapter 4), including canonical sorting algorithms, and sets and maps (Chapter 5). Chapters 6--11 handle graph-centric concepts, including classical concepts on trees (Chapter 6) and on generic graphs (Chapter 7), including Kruskal's and Dijkstra's algorithms. Next, Bloom filters and tries are presented in Chapter 8, and heaps are overviewed in Chapter 9. The graph section concludes with concepts on balanced binary search trees (Chapter 10) and B-trees (Chapter 11), with an emphasis on standard operations such as implementation, insertion and deletion. The last three chapters of the textbook focus on heuristic searches (Chapter 12, with a focus on DFS and BFS, contrasted with Hill Climbing, A* and minimax), parallel applications (Chapter 13), and distributed multiprocessing (Chapter 14, with a focus on serialisation, pooling and synchronisation). The authors also include extensive appendices overviewing standard operations and operators, e.g., with integers, floats, strings, etc. The textbook is structured in a systematic and pedagogical way, appealing to undergraduate and postgraduate students; it also boasts numerous examples and support information, ensuring a thorough overview of all concepts.
This page was built for publication: Data structures and algorithms with Python. With an introduction to multiprocessing
Report a bug (only for logged in users!)Click here to report a bug for this page (MaRDI item Q6535455)