Python Data Structures and Algorithms : Implement Classic and Functional Data Structures and Algorithms Using Python
معرفی کتاب «Python Data Structures and Algorithms : Implement Classic and Functional Data Structures and Algorithms Using Python» نوشتهٔ Benjamin Baka، منتشرشده توسط نشر Packt Publishing در سال 2017. این کتاب در 5 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Python Data Structures and Algorithms : Implement Classic and Functional Data Structures and Algorithms Using Python» در دستهٔ بدون دستهبندی قرار دارد.
Key Features* A step by step guide, which will provide you with a thorough discussion on the analysis and design of fundamental Python data structures. * Get a better understanding of advanced Python concepts such as big-o notation, dynamic programming, and functional data structures. * Explore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Book DescriptionData structures allow you to organize data in a particular way efficiently. They are critical to any problem, provide a complete solution, and act like reusable code. In this book, you will learn the essential Python data structures and the most common algorithms. With this easy-to-read book, you will be able to understand the power of linked lists, double linked lists, and circular linked lists. You will be able to create complex data structures such as graphs, stacks and queues. We will explore the application of binary searches and binary search trees. You will learn the common techniques and structures used in tasks such as preprocessing, modeling, and transforming data. We will also discuss how to organize your code in a manageable, consistent, and extendable way. The book will explore in detail sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. By the end of the book, you will learn how to build components that are easy to understand, debug, and use in different applications. What you will learn* Gain a solid understanding of Python data structures. * Build sophisticated data applications. * Understand the common programming patterns and algorithms used in Python data science. * Write efficient robust code. About the Author**Benjamin Baka** works as a software developer and has over 10 years, experience in programming. He is a graduate of Kwame Nkrumah University of Science and Technology and a member of the Linux Accra User Group. Notable in his language toolset are C, C++, Java, Python, and Ruby. He has a huge interest in algorithms and finds them a good intellectual exercise. He is a technology strategist and software engineer at mPedigree Network, weaving together a dizzying array of technologies in combating counterfeiting activities, empowering consumers in Ghana, Nigeria, and Kenya to name a few. In his spare time, he enjoys playing the bass guitar and listening to silence. You can find him on his blog. Table of Contents1. Python objects, types and expressions 2. Python data types and structures 3. Principles of data structure design 4. Lists and pointer structures 5. Stacks and Queues 6. Trees 7. Hashing and symbol tables 8. Graphs and other algorithms 9. Searching 10. Sorting 11. Selction Algorithms 12. Design Ttechniques and Sstrategies 13. Implementations, applications and tools Cover Title Page Copyright Credits About the Author About the Reviewer www.PacktPub.com Customer Feedback Table of Contents Preface Chapter 1: Python Objects, Types, and Expressions Understanding data structures and algorithms Python for data The Python environment Variables and expressions Variable scope Flow control and iteration Overview of data types and objects Strings Lists Functions as first class objects Higher order functions Recursive functions Generators and co-routines Classes and object programming Special methods Inheritance Data encapsulation and properties Summary Chapter 2: Python Data Types and Structures Operations and expressions Boolean operations Comparison and Arithmetic operators Membership, identity, and logical operations Built-in data types None type Numeric Types Representation error Sequences Tuples Dictionaries Sorting dictionaries Dictionaries for text analysis Sets Immutable sets Modules for data structures and algorithms Collections Deques ChainMaps Counter objects Ordered dictionaries defaultdict Named tuples Arrays Summary Chapter 3: Principles of Algorithm Design Algorithm design paradigms Recursion and backtracking Backtracking Divide and conquer - long multiplication Can we do better? A recursive approach Runtime analysis Asymptotic analysis Big O notation Composing complexity classes Omega notation (Ω) Theta notation (Θ) Amortized analysis Summary Chapter 4: Lists and Pointer Structures Arrays Pointer structures Nodes Finding endpoints Node Other node types Singly linked lists Singly linked list class Append operation A faster append operation Getting the size of the list Improving list traversal Deleting nodes List search Clearing a list Doubly linked lists A doubly linked list node Doubly linked list Append operation Delete operation List search Circular lists Appending elements Deleting an element Iterating through a circular list Summary Chapter 5: Stacks and Queues Stacks Stack implementation Push operation Pop operation Peek Bracket-matching application Queues List-based queue Enqueue operation Dequeue operation Stack-based queue Enqueue operation Dequeue operation Node-based queue Queue class Enqueue operation Dequeue operation Application of queues Media player queue Summary Chapter 6: Trees Terminology Tree nodes Binary trees Binary search trees Binary search tree implementation Binary search tree operations Finding the minimum and maximum nodes Inserting nodes Deleting nodes Searching the tree Tree traversal Depth-first traversal In-order traversal and infix notation Pre-order traversal and prefix notation Post-order traversal and postfix notation. Breadth-first traversal Benefits of a binary search tree Expression trees Parsing a reverse Polish expression Balancing trees Heaps Summary Chapter 7: Hashing and Symbol Tables Hashing Perfect hashing functions Hash table Putting elements Getting elements Testing the hash table Using [] with the hash table Non-string keys Growing a hash table Open addressing Chaining Symbol tables Summary Chapter 8: Graphs and Other Algorithms Graphs Directed and undirected graphs Weighted graphs Graph representation Adjacency list Adjacency matrix Graph traversal Breadth-first search Depth-first search Other useful graph methods Priority queues and heaps Inserting Pop Testing the heap Selection algorithms Summary Chapter 9: Searching Linear Search Unordered linear search Ordered linear search Binary search Interpolation search Choosing a search algorithm Summary Chapter 10: Sorting Sorting algorithms Bubble sort Insertion sort Selection sort Quick sort List partitioning Pivot selection Implementation Heap sort Summary Chapter 11: Selection Algorithms Selection by sorting Randomized selection Quick select Partition step Deterministic selection Pivot selection Median of medians Partitioning step Summary Chapter 12: Design Techniques and Strategies Classification of algorithms Classification by implementation Recursion Logical Serial or parallel Deterministic versus nondeterministic algorithms Classification by complexity Complexity curves Classification by design Divide and conquer Dynamic programming Greedy algorithms Technical implementation Dynamic programming Memoization Tabulation The Fibonacci series The Memoization technique The tabulation technique Divide and conquer Divide Conquer Merge Merge sort Greedy algorithms Coin-counting problem Dijkstra's shortest path algorithm Complexity classes P versus NP NP-Hard NP-Complete Summary Chapter 13: Implementations, Applications, and Tools Tools of the trade Data preprocessing Why process raw data? Missing data Feature scaling Min-max scalar Standard scalar Binarizing data Machine learning Types of machine learning Hello classifier A supervised learning example Gathering data Bag of words Prediction An unsupervised learning example K-means algorithm Prediction Data visualization Bar chart Multiple bar charts Box plot Pie chart Bubble chart Summary Index Implement classic and functional data structures and algorithms using PythonAbout This Book* A step by step guide, which will provide you with a thorough discussion on the analysis and design of fundamental Python data structures.* Get a better understanding of advanced Python concepts such as big-o notation, dynamic programming, and functional data structures.* Explore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Who This Book Is ForThe book will appeal to Python developers. A basic knowledge of Python is expected. What You Will Learn* Gain a solid understanding of Python data structures.* Build sophisticated data applications.* Understand the common programming patterns and algorithms used in Python data science.* Write efficient robust code. In DetailData structures allow you to organize data in a particular way efficiently. They are critical to any problem, provide a complete solution, and act like reusable code. In this book, you will learn the essential Python data structures and the most common algorithms. With this easy-to-read book, you will be able to understand the power of linked lists, double linked lists, and circular linked lists. You will be able to create complex data structures such as graphs, stacks and queues. We will explore the application of binary searches and binary search trees. You will learn the common techniques and structures used in tasks such as preprocessing, modeling, and transforming data. We will also discuss how to organize your code in a manageable, consistent, and extendable way. The book will explore in detail sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. By the end of the book, you will learn how to build components that are easy to understand, debug, and use in different applications. Style and approachThe easy-to-read book with its fast-paced nature will improve the productivity of Python programmers and improve the performance of Python applications Implement classic and functional data structures and algorithms using Python About This Book A step by step guide, which will provide you with a thorough discussion on the analysis and design of fundamental Python data structures. Get a better understanding of advanced Python concepts such as big-o notation, dynamic programming, and functional data structures. Explore illustrations to present data structures and algorithms, as well as their analysis, in a clear, visual manner. Who This Book Is For The book will appeal to Python developers. A basic knowledge of Python is expected. What You Will Learn Gain a solid understanding of Python data structures. Build sophisticated data applications. Understand the common programming patterns and algorithms used in Python data science. Write efficient robust code. In Detail Data structures allow you to organize data in a particular way efficiently. They are critical to any problem, provide a complete solution, and act like reusable code. In this book, you will learn the essential Python data structures and the most common algorithms. With this easy-to-read book, you will be able to understand the power of linked lists, double linked lists, and circular linked lists. You will be able to create complex data structures such as graphs, stacks and queues. We will explore the application of binary searches and binary search trees. You will learn the common techniques and structures used in tasks such as preprocessing, modeling, and transforming data. We will also discuss how to organize your code in a manageable, consistent, and extendable way. The book will explore in detail sorting algorithms such as bubble sort, selection sort, insertion sort, and merge sort. By the end of the book, you will learn how to build components that are easy to understand, debug, and use in different applications. Style and Approach The easy-to-read book with its fast-paced nature will improve the productivity of Python programmers and improve the performance of Python applications Ogier Ghiselin de Busbecq (1522-92) was a Flemish herbalist, diplomat and writer. In 1554, Ferdinand I, soon to be Holy Roman Emperor, dispatched him to Suleiman the Magnificent's court as an ambassador to the Ottoman empire, where Busbecq spent years negotiating a border dispute between his employer and the sultan. While there, he also discovered important manuscripts and sent the first tulip bulbs to Europe. He returned to Vienna in 1562, where he acted as counsellor to Ferdinand, after whose death he continued to serve the Habsburgs. This two-volume work, first published in 1881, contains Busbecq's letters, edited and translated into English from Latin by two Cambridge scholars. Volume 1 contains a lengthy biography of Busbecq, written by the editors, and his famous Turkish Letters, which are a unique source of information on Ottoman court life in the sixteenth century. Volume 2 contains letters written in France to the Holy Roman Emperors Maximilian II and Rudolph II, and an index and appendix to both volumes, the latter including Busbecq's itineraries and a helpful outline of Hungarian history. --Back covers This two-volume work, first published in 1881, contains the translated letters of Ogier Ghiselin de Busbecq (1522–92), a Flemish herbalist, diplomat and writer who acted as Austrian ambassador to the Ottoman empire. Volume 2 contains letters written while Busbecq lived in France and an extensive appendix and index to both volumes.
دانلود کتاب Python Data Structures and Algorithms : Implement Classic and Functional Data Structures and Algorithms Using Python