程序开发过程
程序开发就是根据面对的问题,最终得到一个可以解决问题的程序的工作过程。
- 分析阶段:弄清问题
- 设计阶段:设计解决问题的计算过程模型
- 计算中处理的「数据」
- 求解问题的计算方法「算法」
- 编码阶段
- 检查编译即阶段
- 测试/调试阶段
算法
三个基本概念
- 问题:一个问题W是需要解决的一个具体需求,描述的是一些列类似问题的集合,例如判断任一个正整数N是否为素数。问题W显示其所有实例的共性。
- 问题实例:问题W的一个实例w是该问题的一个具体例子,通常通过一组具体的参数设定。例如断定1013是否为素数。
- 算法:解决问题W的一个算法A,是对一种计算过程的严格描述。对W的任何一个实例w,实施算法A描述的计算过程,就能得到w的解。例如,一个判断素数的算法应该能给出1013是否为素数的判断,也能判断其他正整数是否为素数。
算法的性质
- 有穷性
- 能行性
- 确定性
- 终止性
- 输入/输出
算法设计模式
- 枚举法
- 贪心法
- 回溯发(搜索法)
- 动态规划法
- 分支界限法
典型数据结构
- 集合结构
- 序列结构
- 层次结构
- 树形结构
- 图结构
Python对象与数据结构
Python语言的变量存储是引用语义的,并且其实现过程是基于一套精心设计的的链接结构。
C语言是值语义,链接结构的另一种结构叫连续结构。
想要高效使用Python,需要关注两个方面的问题:
- 人们经常需要自己设计一些数据结构,这是需要考虑实现的效率问题,需要对构造的数据结构的基本技术有所了解。
- 使用语言本身踢狗的各种高级结构「list、dict等」,也需要对这些结构的基本性质,以及实现它们的基本原理有准确理解,才能正确有效地使用它们。
Pyhton 的几个标准数据类型
- List 表
- tuple 元组
- dict 字典