基于Python介绍算法和数据结构的在线互动书,240页pdf

2021 年 2 月 4 日 专知



这本教科书是关于计算机科学的。它也是关于Python的。然而,还有更多。算法和数据结构的研究是理解计算机科学的核心。学习计算机科学与学习其他困难的学科没有什么不同。要想成功,唯一的方法就是有意识地、不断地接触基本思想。初学计算机的科学家需要实践,以便在继续学习课程中较复杂的部分之前有一个彻底的了解。此外,初学者需要获得成功的机会和获得信心。本教材旨在作为数据结构和算法的第一门课程的教材,通常作为计算机科学课程的第二门课程教授。虽然第二门课程被认为比第一门课程更高级,但本书假设你是这个水平的初学者。您可能还在努力学习第一门计算机科学课程的一些基本思想和技能,但已经准备好进一步探索这一学科并继续实践解决问题的方法。我们将介绍抽象数据类型和数据结构、编写算法和解决问题。我们将研究大量数据结构,并解决出现的经典问题。你在这里学到的工具和技术将会在你继续学习计算机科学的过程中不断地被应用。


  • 1. Introduction

    • 1.13.1. A Fraction Class

    • 1.13.2. Inheritance: Logic Gates and Circuits

    • 1.9.1. String Formatting

    • 1.8.1. Built-in Atomic Data Types

    • 1.8.2. Built-in Collection Data Types

    • 1.1. Objectives

    • 1.2. Getting Started

    • 1.3. What Is Computer Science?

    • 1.4. What Is Programming?

    • 1.5. Why Study Data Structures and Abstract Data Types?

    • 1.6. Why Study Algorithms?

    • 1.7. Review of Basic Python

    • 1.8. Getting Started with Data

    • 1.9. Input and Output

    • 1.10. Control Structures

    • 1.11. Exception Handling

    • 1.12. Defining Functions

    • 1.13. Object-Oriented Programming in Python: Defining Classes

    • 1.14. Summary

    • 1.15. Key Terms

    • 1.16. Discussion Questions

    • 1.17. Programming Exercises

  • 2. A Proper Class

    • 2.1.1. A Basic implementation of the MSDie class

    • 2.1. Writing a Proper Python Class

    • 2.2. Making your Class Comparable

  • 3. Analysis

    • 3.4.1. Solution 1: Checking Off

    • 3.4.2. Solution 2: Sort and Compare

    • 3.4.3. Solution 3: Brute Force

    • 3.4.4. Solution 4: Count and Compare

    • 3.1. Objectives

    • 3.2. What Is Algorithm Analysis?

    • 3.3. Big-O Notation

    • 3.4. An Anagram Detection Example

    • 3.5. Performance of Python Data Structures

    • 3.6. Lists

    • 3.7. Dictionaries

    • 3.8. Summary

    • 3.9. Key Terms

    • 3.10. Discussion Questions

    • 3.11. Programming Exercises

  • 4. Basic Data Structures

    • 4.23.1. Analysis of Linked Lists

    • 4.21.1. The Node Class

    • 4.21.2. The Unordered List Class

    • 4.14.1. Main Simulation Steps

    • 4.14.2. Python Implementation

    • 4.14.3. Discussion

    • 4.9.1. Conversion of Infix Expressions to Prefix and Postfix

    • 4.9.2. General Infix-to-Postfix Conversion

    • 4.9.3. Postfix Evaluation

    • 4.1. Objectives

    • 4.2. What Are Linear Structures?

    • 4.3. What is a Stack?

    • 4.4. The Stack Abstract Data Type

    • 4.5. Implementing a Stack in Python

    • 4.6. Simple Balanced Parentheses

    • 4.7. Balanced Symbols (A General Case)

    • 4.8. Converting Decimal Numbers to Binary Numbers

    • 4.9. Infix, Prefix and Postfix Expressions

    • 4.10. What Is a Queue?

    • 4.11. The Queue Abstract Data Type

    • 4.12. Implementing a Queue in Python

    • 4.13. Simulation: Hot Potato

    • 4.14. Simulation: Printing Tasks

    • 4.15. What Is a Deque?

    • 4.16. The Deque Abstract Data Type

    • 4.17. Implementing a Deque in Python

    • 4.18. Palindrome-Checker

    • 4.19. Lists

    • 4.20. The Unordered List Abstract Data Type

    • 4.21. Implementing an Unordered List: Linked Lists

    • 4.22. The Ordered List Abstract Data Type

    • 4.23. Implementing an Ordered List

    • 4.24. Summary

    • 4.25. Key Terms

    • 4.26. Discussion Questions

    • 4.27. Programming Exercises

  • 5. Recursion

    • 5.1. Objectives

    • 5.2. What Is Recursion?

    • 5.3. Calculating the Sum of a List of Numbers

    • 5.4. The Three Laws of Recursion

    • 5.5. Converting an Integer to a String in Any Base

    • 5.6. Stack Frames: Implementing Recursion

    • 5.7. Introduction: Visualizing Recursion

    • 5.8. Sierpinski Triangle

    • 5.9. Complex Recursive Problems

    • 5.10. Tower of Hanoi

    • 5.11. Exploring a Maze

    • 5.12. Dynamic Programming

    • 5.13. Summary

    • 5.14. Key Terms

    • 5.15. Discussion Questions

    • 5.16. Glossary

    • 5.17. Programming Exercises

  • 6. Sorting and Searching

    • 6.5.1. Hash Functions

    • 6.5.2. Collision Resolution

    • 6.5.3. Implementing the Map Abstract Data Type

    • 6.5.4. Analysis of Hashing

    • 6.4.1. Analysis of Binary Search

    • 6.3.1. Analysis of Sequential Search

    • 6.1. Objectives

    • 6.2. Searching

    • 6.3. The Sequential Search

    • 6.4. The Binary Search

    • 6.5. Hashing

    • 6.6. Sorting

    • 6.7. The Bubble Sort

    • 6.8. The Selection Sort

    • 6.9. The Insertion Sort

    • 6.10. The Shell Sort

    • 6.11. The Merge Sort

    • 6.12. The Quick Sort

    • 6.13. Summary

    • 6.14. Key Terms

    • 6.15. Discussion Questions

    • 6.16. Programming Exercises

  • 7. Trees and Tree Algorithms

    • 7.10.1. The Structure Property

    • 7.10.2. The Heap Order Property

    • 7.10.3. Heap Operations

    • 7.1. Objectives

    • 7.2. Examples of Trees

    • 7.3. Vocabulary and Definitions

    • 7.4. List of Lists Representation

    • 7.5. Nodes and References

    • 7.6. Parse Tree

    • 7.7. Tree Traversals

    • 7.8. Priority Queues with Binary Heaps

    • 7.9. Binary Heap Operations

    • 7.10. Binary Heap Implementation

    • 7.11. Binary Search Trees

    • 7.12. Search Tree Operations

    • 7.13. Search Tree Implementation

    • 7.14. Search Tree Analysis

    • 7.15. Balanced Binary Search Trees

    • 7.16. AVL Tree Performance

    • 7.17. AVL Tree Implementation

    • 7.18. Summary of Map ADT Implementations

    • 7.19. Summary

    • 7.20. Key Terms

    • 7.21. Discussion Questions

    • 7.22. Programming Exercises

  • 8. Graphs and Graph Algorithms

    • 8.1. Objectives

    • 8.2. Vocabulary and Definitions

    • 8.3. The Graph Abstract Data Type

    • 8.4. An Adjacency Matrix

    • 8.5. An Adjacency List

    • 8.6. Implementation

    • 8.7. The Word Ladder Problem

    • 8.8. Building the Word Ladder Graph

    • 8.9. Implementing Breadth First Search

    • 8.10. Breadth First Search Analysis

    • 8.11. The Knight’s Tour Problem

    • 8.12. Building the Knight’s Tour Graph

    • 8.13. Implementing Knight’s Tour

    • 8.14. Knight’s Tour Analysis

    • 8.15. General Depth First Search

    • 8.16. Depth First Search Analysis

    • 8.17. Topological Sorting

    • 8.18. Strongly Connected Components

    • 8.19. Shortest Path Problems

    • 8.20. Dijkstra’s Algorithm

    • 8.21. Analysis of Dijkstra’s Algorithm

    • 8.22. Prim’s Spanning Tree Algorithm

    • 8.23. Summary

    • 8.24. Key Terms

    • 8.25. Discussion Questions

    • 8.26. Programming Exercises


专知便捷查看

便捷下载,请关注专知公众号(点击上方蓝色专知关注)

  • 后台回复“P240” 可以获取《基于Python介绍算法和数据结构的在线互动书,240页pdf》专知下载链接索引

专知,专业可信的人工智能知识分发,让认知协作更快更好!欢迎注册登录专知www.zhuanzhi.ai,获取5000+AI主题干货知识资料!
欢迎微信扫一扫加入专知人工智能知识星球群,获取最新AI专业干货知识教程资料和与专家交流咨询
点击“ 阅读原文 ”,了解使用 专知 ,查看获取5000+AI主题知识资源
登录查看更多
0

相关内容

postfix 是Wietse Venema在IBM的GPL协议之下开发的MTA(邮件传输代理)软件。postfix是Wietse Venema想要为使用最广泛的sendmail提供替代品的一个尝试。
【经典书】数据结构与算法,770页pdf
专知会员服务
140+阅读 · 2021年4月15日
【干货书】面向计算科学和工程的Python导论,167页pdf
专知会员服务
41+阅读 · 2021年4月7日
专知会员服务
143+阅读 · 2020年12月28日
【耶鲁】数据结构与编程技术,572页pdf
专知会员服务
46+阅读 · 2020年12月27日
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
101+阅读 · 2020年10月11日
【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
81+阅读 · 2020年8月13日
算法与数据结构Python,369页pdf
专知会员服务
163+阅读 · 2020年3月4日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
.NET Core 原生DI+AOP实现注解式编程
DotNet
8+阅读 · 2019年9月9日
GitHub 热门:Python 算法大全,Star 超过 2 万
Python开发者
9+阅读 · 2019年4月27日
Coursera上Python课程(公开课)汇总推荐
AINLP
8+阅读 · 2018年3月11日
Coursera上Python课程(公开课)汇总
数据挖掘入门与实战
6+阅读 · 2017年12月27日
【学习】(Python)SVM数据分类
机器学习研究会
6+阅读 · 2017年10月15日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
【推荐】免费书(草稿):数据科学的数学基础
机器学习研究会
20+阅读 · 2017年10月1日
python pandas 数据处理
Python技术博文
4+阅读 · 2017年8月30日
AliCoCo: Alibaba E-commerce Cognitive Concept Net
Arxiv
13+阅读 · 2020年3月30日
Arxiv
15+阅读 · 2019年3月16日
Hierarchical Deep Multiagent Reinforcement Learning
Arxiv
8+阅读 · 2018年9月25日
Deep Learning
Arxiv
6+阅读 · 2018年8月3日
VIP会员
相关VIP内容
【经典书】数据结构与算法,770页pdf
专知会员服务
140+阅读 · 2021年4月15日
【干货书】面向计算科学和工程的Python导论,167页pdf
专知会员服务
41+阅读 · 2021年4月7日
专知会员服务
143+阅读 · 2020年12月28日
【耶鲁】数据结构与编程技术,572页pdf
专知会员服务
46+阅读 · 2020年12月27日
【2020干货书】Python3基础导论介绍,98页pdf
专知会员服务
101+阅读 · 2020年10月11日
【经典书】算法C语言实现,Algorithms in C. 672页pdf
专知会员服务
81+阅读 · 2020年8月13日
算法与数据结构Python,369页pdf
专知会员服务
163+阅读 · 2020年3月4日
【新书】Python编程基础,669页pdf
专知会员服务
194+阅读 · 2019年10月10日
相关资讯
.NET Core 原生DI+AOP实现注解式编程
DotNet
8+阅读 · 2019年9月9日
GitHub 热门:Python 算法大全,Star 超过 2 万
Python开发者
9+阅读 · 2019年4月27日
Coursera上Python课程(公开课)汇总推荐
AINLP
8+阅读 · 2018年3月11日
Coursera上Python课程(公开课)汇总
数据挖掘入门与实战
6+阅读 · 2017年12月27日
【学习】(Python)SVM数据分类
机器学习研究会
6+阅读 · 2017年10月15日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
【推荐】免费书(草稿):数据科学的数学基础
机器学习研究会
20+阅读 · 2017年10月1日
python pandas 数据处理
Python技术博文
4+阅读 · 2017年8月30日
相关论文
Top
微信扫码咨询专知VIP会员