用python语言讲解数据结构与算法总述(一)

 关于数据结构与算法讲解的书籍很多,但是用python语言去实现的不是很多,最近有幸看到一本这样的书籍,由Brad Miller and David Ranum编写的《Problem Solving with Algorithms and Data Structures Using Python》,地址为:http://interactivepython.org/runestone/static/pythonds/index.html是英文的,写的不错,里面代码的实现也很详细,很多有趣的例子,于是想把它翻译成中文,方便大家的阅读,也可以再温习一下这本书。后续博客会陆续更新这本书的翻译内容,本篇先把要写的所有的内容框架写下来,以便大家有个整体的认识。

========================================================正式内容开始分隔线

用Python讲解数据结构与算法

(Problem Solving with Algorithms and Data Structures Using Python)

一、简介(Introduction)

1.学习目标(Objectives)

2.开始学习(Getting Started)

3.什么是计算机科学(What is Computer Science)

4.Python基本知识回顾(Review of Basic Python)

5.总结(Summary)

6.关键术语(Key Terms)

7.问题讨论(Discussion Questions)

8.习题练习(Programming Exercises)

二、算法分析(Analysis)

1.学习目标(Objectives)

2.什么是算法分析(What is Algorithm Analysis)

3.Python内置数据结构性能分析(Performance of Python Data Structures)

4.总结(Summary)

5.关键术语(Key Terms)

6.问题讨论(Discussion Questions)

7.习题练习(Programming Exercises)

三、基本数据结构(Basic Data Structures)

1.学习目标(Objectives)

2.什么是线性数据结构(What Are Linear Structures)

3.栈(Stacks)

4.队列(Queues)

5.双端队列(Deques)

6.列表(Lists)

7.总结(Summary)

8.关键术语(Key Terms)

9.问题讨论(Discussion Questions)

10.习题练习(Programming Exercises)

四、递归(Recursion)

1.学习目标(Objectives)

2.什么是递归(What is Recursion)

3.栈帧实现递归(Stack Frames:Implementing Recursion)

4.可视化递归(Visualizing Recursion)

5.复杂递归问题(Complex Recursive Problems)

6.迷宫问题(Exploring a Maze)

7.动态规划(Dynamic Programming)

8.总结(Summary)

9.关键术语(Key Terms)

10.问题讨论(Discussion Questions)

11.习题练习(Programming Exercises)

五、排序与检索(Sorting and Searching)

1.学习目标(Objectives)

2.检索(Searching)

3.各种排序算法(Sorting)

4.总结(Summary)

5.关键术语(Key Terms)

6.问题讨论(Discussion Questions)

7.习题练习(Programming Exercises)

六、树与树相关的算法(Trees and Tree Algorithms)

1.学习目标(Objectives)

2.树相关实例(Examples of Trees)

3.树相关术语与定义(Vocabulary and Definitions)

4.实现树结构(Implementation)

5.二叉树(Binary Tree Aplications)

6.堆与优先队列(Priority Queues with Binary Heaps)

7.二叉搜索树(Binary Search Trees)

8.平衡二叉搜索树(Balanced Binary Search Trees)

9.总结(Summary)

10.关键术语(Key Terms)

11.问题讨论(Discussion Questions)

12.习题练习(Programming Exercises)

七、图与图相关的算法(Graphs and Graph Algorithms)

1.学习目标(Objectives)

2.图相关术语与定义(Vocabulary and Definitions)

3.图抽象数据结构(The Graph Abstract Data Type)

4.广度优先搜索(Breadth First Search)

5.深度优先搜索(Depth First Search)

6.拓扑排序(Topological Sorting)

7.强连通分量(Strongly Connected Components)

8.最短路径问题(Shortest Path Problems)

9.总结(Summary)

10.关键术语(Key Terms)

11.问题讨论(Discussion Questions)

12.习题练习(Programming Exercises)

转载于:https://www.cnblogs.com/captain_ccc/articles/4105219.html

# ================== 总述 ================== # 本课程回顾Python循环控制函数定义使用 # 循环解决重复执行问题,函数解决代码复用问题 # 两者结合可构建复杂程序逻辑 # ================== 分述 ================== # ===== 循环控制 ===== # 1. 什么是循环控制? # 通过重复执行代码块完成迭代操作的结构 # 包含for循环(已知次数)和while循环(未知次数) # 示例1:for循环遍历列表 fruits = ["apple", "banana", "cherry"] for fruit in fruits: print(f"I like {fruit}") # 示例2:for循环配合range() for i in range(3): print(f"第{i+1}次训练") # 示例3:while循环条件控制 count = 0 while count < 3: print(f"倒计时: {3-count}") count += 1 # 2. 为什么使用循环? # 避免代码重复、处理动态数据集、实现复杂算法 # 3. 如何使用循环? # - for循环用于已知次数的遍历 # - while循环用于条件驱动的循环 # - 注意避免无限循环 # ===== 函数定义使用 ===== # 1. 什么是函数? # 组织好的可重复使用的代码块 # 通过参数接收输入,通过返回值输出结果 # 示例1:基础函数定义 def greet(name): """向用户打招呼""" print(f"Hello, {name}!") greet("Alice") # 示例2:带返回值的函数 def add(a, b): return a + b result = add(3, 5) print(f"3+5的结果是{result}") # 示例3:默认参数函数 def power(base, exponent=2): return base ** exponent print(power(3)) # 9 print(power(3, 3)) # 27 # 2. 为什么使用函数? # 代码复用、逻辑封装、提高可维护性 # 3. 如何使用函数? # - 使用def关键字定义 # - 包含文档字符串说明 # - 合理使用参数类型(位置参数、默认参数) # ================== 总结 ================== # 循环控制和函数是Python编程的两大基石 # 示例:函数中嵌套循环 def print_table(n): """打印乘法表""" for i in range(1, n+1): for j in range(1, i+1): print(f"{j}*{i}={i*j}", end="\t") print() print_table(5) 回顾的粒度太粗了,要求每行都必须要有注释,并且要有定的拓展性,比如while 死循环, break,contiue 这些常用的肯定要讲
08-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值